Skip to content

Docker Compose

Docker Compose is the simplest way to deploy JITSudo for production or evaluation.

Terminal window
git clone https://github.com/jitsudo/jitsudo.git
cd jitsudo
make compose-up

The compose file starts five services:

ServiceImageDescription
postgrespostgres:17-alpinePostgreSQL database with persistent volume
dexghcr.io/dexidp/dex:v2.41.1Local OIDC provider (development only)
migrateBuilt from sourceRuns goose migrations, exits after completion
serverBuilt from sourceHTTP API server on port 8080
workerBuilt from sourceBackground job processor

Dependencies are managed automatically: migrate waits for postgres health check, server and worker wait for migrate to complete.

  • postgres-data — persists database across restarts
  • go-modules / go-build-cache — caches Go dependencies for faster rebuilds

Environment variables are set in the compose file. For production, override them:

Terminal window
DATABASE_URL=postgres://jitsudo:jitsudo@postgres:5432/jitsudo?sslmode=disable
OIDC_ISSUER_URL=http://dex:5556/dex
OIDC_CLIENT_ID=jitsudo-local
OIDC_CLIENT_SECRET=local-secret
JWT_SECRET=change-me-in-production
LOG_LEVEL=info

The frontend runs separately:

Terminal window
make dev-web # Development server with hot reload
make build-web # Production build
Terminal window
make compose-down # Stops containers and removes volumes