WORKLIST_IMAGE
The immutable self-hosted image reference supplied with your license bundle. Pin a tag and digest in production.
BILLING_MODE
Set to self_hosted. Self-hosted mode is loaded at startup and is not a runtime toggle.
SELF_HOSTED_LICENSE_PATH
Path inside the container to the signed license file. The Compose template uses /run/secrets/worklist_license.
SELF_HOSTED_ALLOW_PUBLIC_SIGNUP
Keep false for internet-reachable instances unless a separate access-control layer protects registration.
DATABASE_URL_FILE
Path to the PostgreSQL connection URL secret. Do not set both DATABASE_URL and DATABASE_URL_FILE.
AUTH_OPAQUE_SERVER_SETUP_B64_FILE
Generate once and preserve exactly as emitted by generate_opaque_setup; losing it can strand existing accounts.
AUTH_TOTP_ENCRYPTION_KEYS_B64
A stable standard-base64 32-byte verifier key. During rotation, keep the current key first and comma-separated historical decrypt keys after it. Back it up outside PostgreSQL.
AUTH_TOTP_ENROLLMENT_ENABLED
Keep false on initial deployment and upgrades. Enable first-time enrollment only after compatible clients and alert routing are verified; active factors remain enforced when false.
JWT_ACCESS_SECRET_FILE and JWT_REFRESH_SECRET_FILE
Stable production secrets generated separately with at least 32 characters each.
EMAIL_* URL templates
The example uses localhost for a local boot; set production values to your external HTTPS origin.
R2_BUCKET, R2_ENDPOINT, and R2_PUBLIC_ENDPOINT
Bucket name plus internal and browser-facing S3-compatible endpoints. The default stack points them at bundled MinIO.
MINIO_CORS_ALLOWED_ORIGIN
Local boot allows the localhost app origin. Production should set this to the SealTask app origin, using only scheme, host, and optional port.