Docker Compose
Docker Compose is the simplest way to deploy JITSudo for production or evaluation.
Quick Start
Section titled “Quick Start”git clone https://github.com/jitsudo/jitsudo.gitcd jitsudomake compose-upServices
Section titled “Services”The compose file starts five services:
| Service | Image | Description |
|---|---|---|
| postgres | postgres:17-alpine | PostgreSQL database with persistent volume |
| dex | ghcr.io/dexidp/dex:v2.41.1 | Local OIDC provider (development only) |
| migrate | Built from source | Runs goose migrations, exits after completion |
| server | Built from source | HTTP API server on port 8080 |
| worker | Built from source | Background job processor |
Dependencies are managed automatically: migrate waits for postgres health check, server and worker wait for migrate to complete.
Volumes
Section titled “Volumes”postgres-data— persists database across restartsgo-modules/go-build-cache— caches Go dependencies for faster rebuilds
Configuration
Section titled “Configuration”Environment variables are set in the compose file. For production, override them:
DATABASE_URL=postgres://jitsudo:jitsudo@postgres:5432/jitsudo?sslmode=disableOIDC_ISSUER_URL=http://dex:5556/dexOIDC_CLIENT_ID=jitsudo-localOIDC_CLIENT_SECRET=local-secretJWT_SECRET=change-me-in-productionLOG_LEVEL=infoFrontend
Section titled “Frontend”The frontend runs separately:
make dev-web # Development server with hot reloadmake build-web # Production buildStop Services
Section titled “Stop Services”make compose-down # Stops containers and removes volumes