Skip to main content
Greenlight loads configuration from backend/.env (via godotenv), then overlays any shell environment. Copy env.example as a starting point.

Core

VariableDefaultDescription
UI_DIST_DIR/app/uiPath to the compiled Svelte frontend.
UI_ENABLEDtrueServe the SPA from the Go binary.
WORKER_IDautoOverrides the auto-generated worker id.
MAX_WORKERS4Worker pool size.
JOB_TIMEOUT30mPer-job timeout.
HTTP_PORT8080Listen port.

Authentication

Enable auth by setting any of these. Unset ⇒ open.
VariablePurpose
GREENLIGHT_USERNAME / GREENLIGHT_PASSWORDHTTP basic auth.
SHARED_API_SECRETEnables bearer token auth.
SHARED_API_KEYExpected token value.

ScreenJSON binary

VariableDefaultDescription
SCREENJSON_BIN/usr/local/bin/screenjsonPath to the screenjson CLI binary invoked per task.
PDFTOHTML_BINpdftohtmlPath to Poppler’s pdftohtml for PDF tasks.

Queue

VariableDefaultDescription
QUEUE_BACKENDredisQueue backend. Only redis currently supported.
REDIS_ADDRredis:6379Redis server.
REDIS_PASSWORDRedis auth.
REDIS_INPUT_QUEUEgreenlight_jobs_waitingRedis list for incoming jobs.
REDIS_RESULTS_QUEUEgreenlight_jobs_finishedRedis list for job results.
REDIS_RESULTS_TTL2 (hours)TTL on stored results.

Storage

VariableDefaultDescription
STORAGE_BACKENDminioOne of minio, s3, noop.
S3_ENDPOINThttp://minio:9000S3 API endpoint.
S3_REGIONus-west-2Region.
S3_USE_SSLfalseTLS.
S3_FORCE_PATH_STYLEtrueRequired for MinIO.
S3_ACCESS_KEY_IDminioadmin
S3_SECRET_ACCESS_KEYminioadmin
S3_INPUT_BUCKETgreenlightBucket watched for incoming files.
S3_OUTPUT_BUCKETgreenlightBucket for results.
S3_INPUT_PREFIXscreenplays/inputPrefix filter.
S3_OUTPUT_PREFIXscreenplays/outputOutput prefix.

Webhooks

VariableDefaultDescription
DEFAULT_WEBHOOKSComma-separated webhook names applied to every job.
DEFAULT_WEBHOOK_URLSComma-separated URLs applied to every job.
WEBHOOK_TIMEOUT15sOutbound request timeout.
WEBHOOK_MAX_RETRY4Retry cap.
WEBHOOK_RETRY_MIN_WAIT1sInitial back-off.
WEBHOOK_RETRY_MAX_WAIT30sBack-off cap.
WEBHOOK_SECRETsecretHMAC signing secret.

Notifications (optional multi-driver)

VariablePurpose
NOTIFY_QUEUE_SIZEInternal queue. Default 256.
NOTIFY_TIMEOUTPer-driver timeout. Default 8s.
NOTIFY_MAX_RETRYRetry cap. Default 4.
NOTIFY_RETRY_MIN_WAIT / NOTIFY_RETRY_MAX_WAITBack-off range.
NOTIFY_SLACK_WEBHOOK_URLSSlack webhook URLs (comma-separated).
NOTIFY_TEAMS_WEBHOOK_URLSMicrosoft Teams.
NOTIFY_DISCORD_WEBHOOK_URLSDiscord.
NOTIFY_FCM_SERVER_KEY / NOTIFY_FCM_DEVICE_TOKENSFirebase 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_ARNSAWS 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.