Skip to content

Installation

ScanPick supports three installation methods depending on your environment and requirements.

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 the latest release from the GitHub releases page.

Available platforms:

PlatformPackage
Linux x64scanpick-{version}-linux-x64.tar.gz
macOS x64scanpick-{version}-osx-x64.tar.gz
macOS ARMscanpick-{version}-osx-arm64.tar.gz
Windows x64scanpick-{version}-win-x64.zip
Terminal window
# Extract the archive
tar xzf scanpick-{version}-linux-x64.tar.gz
cd scanpick
# Set required environment variables
export 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.Api

The API will:

  1. Apply any pending database migrations on startup
  2. Start on port 5000
  3. Serve the web dashboard at http://localhost:5000
Terminal window
# 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 --tag

Output goes to release/ directory.

The recommended way for evaluation and demo environments.

Terminal window
# Clone the repository
git clone https://github.com/timDeHof/scanpick.git
cd scanpick
# Configure
cp .env.example .env
# Edit .env with your secrets
# Start everything
docker compose up --build

This starts PostgreSQL 16, the API, and an nginx reverse proxy.

For development with hot-reload:

Terminal window
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d postgres
# Run API natively
cd src/ScanPick.Api && dotnet run
# Run web dashboard natively
cd web && npm run dev

For custom deployment scenarios.

  • .NET 10 SDK
  • Node.js 20+
  • PostgreSQL 16
Terminal window
# 1. Build the .NET solution
dotnet build scanpick.slnx
# 2. Build the web dashboard
cd web && npm install && npm run build && cd ..
# 3. Set environment variables (see Configuration page)
export DATABASE_CONNECTION_STRING="..."
export JWT_SECRET="..."
# 4. Run
dotnet run --project src/ScanPick.Api

See the Configuration reference for all environment variables and their descriptions.