Prerequisites
- Docker (for the compose path) or Go 1.22+ and Node 20+ (for source builds).
- Redis instance reachable by every worker.
- S3-compatible object store (AWS S3, MinIO, or
noopfor stateless runs). - The
screenjsonbinary — either baked into the Greenlight image (the default Dockerfile copies it in) or mounted fromSCREENJSON_BIN.
Docker Compose (fastest)
docker-compose.yml boots:
- Greenlight on
:19000(maps internal:8080) - Redis
- MinIO on
:9000(S3 API) and:9001(console)
greenlight/screenplays/input/ prefix — the worker picks them up.
Standalone backend
backend/.env, config/tasks.yml, and any environment variables set before startup.
Frontend dev server
5173 (Vite default). The production Svelte build lives at backend/greenlight/ (the UI_DIST_DIR) and is served by the Go binary in one process.
Kubernetes
Greenlight scales horizontally. Each replica pulls from the shared Redis queue. Recommended pattern:MAX_WORKERS=4 per replica is a sensible starting point (matches the default). Scale replicas horizontally.
Health endpoints
| Path | Purpose |
|---|---|
GET /up | Liveness — returns 200 as long as the HTTP server is up. |
GET /setup | Configuration snapshot. |
GET /workers | Per-worker live status. |
GET /tail | Recent log lines. |