Installation
ScanPick supports three installation methods depending on your environment and requirements.
Single Binary (Recommended for Production)
Section titled “Single Binary (Recommended for Production)”The API ships as a standalone executable with the web dashboard embedded. No runtime dependencies beyond the database.
Download a Release
Section titled “Download a Release”Download the latest release from the GitHub releases page.
Available platforms:
| Platform | Package |
|---|---|
| Linux x64 | scanpick-{version}-linux-x64.tar.gz |
| macOS x64 | scanpick-{version}-osx-x64.tar.gz |
| macOS ARM | scanpick-{version}-osx-arm64.tar.gz |
| Windows x64 | scanpick-{version}-win-x64.zip |
# Extract the archivetar xzf scanpick-{version}-linux-x64.tar.gzcd scanpick
# Set required environment variablesexport DATABASE_CONNECTION_STRING="Host=localhost;Database=scanpick;Username=scanpick;Password=yourpassword"export JWT_SECRET="your-64-char-secret"export ASPNETCORE_URLS="http://+:5000"
# Run./ScanPick.ApiThe API will:
- Apply any pending database migrations on startup
- Start on port 5000
- Serve the web dashboard at
http://localhost:5000
Build Your Own Release
Section titled “Build Your Own Release”# Build for host platform./scripts/build-release.sh
# Build for a specific platform./scripts/build-release.sh v1.0.0 linux-x64
# Build all platforms and create git tag./scripts/build-release.sh --tagOutput goes to release/ directory.
Docker Compose (Evaluation / Demo)
Section titled “Docker Compose (Evaluation / Demo)”The recommended way for evaluation and demo environments.
# Clone the repositorygit clone https://github.com/timDeHof/scanpick.gitcd scanpick
# Configurecp .env.example .env# Edit .env with your secrets
# Start everythingdocker compose up --buildThis starts PostgreSQL 16, the API, and an nginx reverse proxy.
Dev Mode (Postgres only)
Section titled “Dev Mode (Postgres only)”For development with hot-reload:
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d postgres
# Run API nativelycd src/ScanPick.Api && dotnet run
# Run web dashboard nativelycd web && npm run devManual Setup
Section titled “Manual Setup”For custom deployment scenarios.
Prerequisites
Section titled “Prerequisites”- .NET 10 SDK
- Node.js 20+
- PostgreSQL 16
# 1. Build the .NET solutiondotnet build scanpick.slnx
# 2. Build the web dashboardcd web && npm install && npm run build && cd ..
# 3. Set environment variables (see Configuration page)export DATABASE_CONNECTION_STRING="..."export JWT_SECRET="..."
# 4. Rundotnet run --project src/ScanPick.ApiConfiguration
Section titled “Configuration”See the Configuration reference for all environment variables and their descriptions.