Documentation Index
Fetch the complete documentation index at: https://docs.screenjson.com/llms.txt
Use this file to discover all available pages before exploring further.
Greenlight loads configuration from backend/.env (via godotenv), then overlays any shell environment. Copy env.example as a starting point.
Core
| Variable | Default | Description |
|---|
UI_DIST_DIR | /app/ui | Path to the compiled Svelte frontend. |
UI_ENABLED | true | Serve the SPA from the Go binary. |
WORKER_ID | auto | Overrides the auto-generated worker id. |
MAX_WORKERS | 4 | Worker pool size. |
JOB_TIMEOUT | 30m | Per-job timeout. |
HTTP_PORT | 8080 | Listen port. |
Authentication
Enable auth by setting any of these. Unset ⇒ open.
| Variable | Purpose |
|---|
GREENLIGHT_USERNAME / GREENLIGHT_PASSWORD | HTTP basic auth. |
SHARED_API_SECRET | Enables bearer token auth. |
SHARED_API_KEY | Expected token value. |
ScreenJSON binary
| Variable | Default | Description |
|---|
SCREENJSON_BIN | /usr/local/bin/screenjson | Path to the screenjson CLI binary invoked per task. |
PDFTOHTML_BIN | pdftohtml | Path to Poppler’s pdftohtml for PDF tasks. |
Queue
| Variable | Default | Description |
|---|
QUEUE_BACKEND | redis | Queue backend. Only redis currently supported. |
REDIS_ADDR | redis:6379 | Redis server. |
REDIS_PASSWORD | — | Redis auth. |
REDIS_INPUT_QUEUE | greenlight_jobs_waiting | Redis list for incoming jobs. |
REDIS_RESULTS_QUEUE | greenlight_jobs_finished | Redis list for job results. |
REDIS_RESULTS_TTL | 2 (hours) | TTL on stored results. |
Storage
| Variable | Default | Description |
|---|
STORAGE_BACKEND | minio | One of minio, s3, noop. |
S3_ENDPOINT | http://minio:9000 | S3 API endpoint. |
S3_REGION | us-west-2 | Region. |
S3_USE_SSL | false | TLS. |
S3_FORCE_PATH_STYLE | true | Required for MinIO. |
S3_ACCESS_KEY_ID | minioadmin | — |
S3_SECRET_ACCESS_KEY | minioadmin | — |
S3_INPUT_BUCKET | greenlight | Bucket watched for incoming files. |
S3_OUTPUT_BUCKET | greenlight | Bucket for results. |
S3_INPUT_PREFIX | screenplays/input | Prefix filter. |
S3_OUTPUT_PREFIX | screenplays/output | Output prefix. |
Webhooks
| Variable | Default | Description |
|---|
DEFAULT_WEBHOOKS | — | Comma-separated webhook names applied to every job. |
DEFAULT_WEBHOOK_URLS | — | Comma-separated URLs applied to every job. |
WEBHOOK_TIMEOUT | 15s | Outbound request timeout. |
WEBHOOK_MAX_RETRY | 4 | Retry cap. |
WEBHOOK_RETRY_MIN_WAIT | 1s | Initial back-off. |
WEBHOOK_RETRY_MAX_WAIT | 30s | Back-off cap. |
WEBHOOK_SECRET | secret | HMAC signing secret. |
Notifications (optional multi-driver)
| Variable | Purpose |
|---|
NOTIFY_QUEUE_SIZE | Internal queue. Default 256. |
NOTIFY_TIMEOUT | Per-driver timeout. Default 8s. |
NOTIFY_MAX_RETRY | Retry cap. Default 4. |
NOTIFY_RETRY_MIN_WAIT / NOTIFY_RETRY_MAX_WAIT | Back-off range. |
NOTIFY_SLACK_WEBHOOK_URLS | Slack webhook URLs (comma-separated). |
NOTIFY_TEAMS_WEBHOOK_URLS | Microsoft Teams. |
NOTIFY_DISCORD_WEBHOOK_URLS | Discord. |
NOTIFY_FCM_SERVER_KEY / NOTIFY_FCM_DEVICE_TOKENS | Firebase Cloud Messaging. |
NOTIFY_APNS_* | Apple Push Notification service — key id, team id, bundle id, private key / key file, device tokens, production toggle. |
NOTIFY_SNS_REGION / NOTIFY_SNS_TOPIC_ARNS | AWS SNS. |
NOTIFY_WEBPUSH_* | WebPush — subject, VAPID public / private keys, subscription JSON. |
Configuration dump
Every deployment logs a CONFIG DUMP banner on startup containing the resolved values (secrets are logged as their presence, not content). Check the first 200 lines of the container log after boot.