Skip to main content

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 noop for stateless runs).
  • The screenjson binary — either baked into the Greenlight image (the default Dockerfile copies it in) or mounted from SCREENJSON_BIN.

Docker Compose (fastest)

The provided docker-compose.yml boots:
  • Greenlight on :19000 (maps internal :8080)
  • Redis
  • MinIO on :9000 (S3 API) and :9001 (console)
Drop files into the MinIO greenlight/screenplays/input/ prefix — the worker picks them up.

Standalone backend

Watches backend/.env, config/tasks.yml, and any environment variables set before startup.

Frontend dev server

Runs on port 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:
Sizing: each worker runs one conversion at a time. MAX_WORKERS=4 per replica is a sensible starting point (matches the default). Scale replicas horizontally.

Health endpoints