Self-hosting
Configuration
Every knob is an environment variable in the repo-root .env, shared by docker compose, the web app and the Go services.
Updated 1 Sept 2026 beta 1 min read
Database #
| Variable | Default | Notes |
DATABASE_URL | — | Full connection string. Leave empty in production to build it from the parts below. |
POSTGRES_USER POSTGRES_PASSWORD POSTGRES_DB | trackr | Compose provisions the db service from these. |
POSTGRES_HOST POSTGRES_PORT | localhost 5432 | Compose overrides the host to db. |
Routing and auth #
| Variable | Default | Notes |
ORIGIN | unset | Keep unset behind a proxy that sets forwarded headers. |
PROTOCOL_HEADER HOST_HEADER | x-forwarded-proto x-forwarded-host | Header names the app trusts. |
XFF_DEPTH | 1 | Number of proxies in front. |
BETTER_AUTH_SECRET | — | Required. 32+ characters. |
ROOT_EMAIL ROOT_PASSWORD ROOT_NAME | — | Seeded superadmin account. |
Email #
| Variable | Default |
EMAIL_FROM | — |
SMTP_HOST | empty = log to console |
SMTP_PORT | 587 |
SMTP_SECURE | false |
SMTP_USER SMTP_PASS | — |
Storage #
See Docker Compose → Storage for the STORAGE_* and S3_* variables.
Worker #
| Variable | Default | Notes |
WORKER_CONCURRENCY | 4 | Parallel jobs per worker. |
WORKER_JOB_TIMEOUT | 4m | Per-job deadline. |
WORKER_POLL_INTERVAL | 1s | Fallback poll; LISTEN/NOTIFY wakes it instantly. |
WORKER_NOTIFY | true | Set to false to disable LISTEN/NOTIFY. |
WORKER_HEARTBEAT WORKER_REAP_AFTER | 30s 5m | Stale jobs are re-queued after the reap window. |
WORKER_BACKOFF_BASE WORKER_BACKOFF_CAP | 10s 10m | Exponential retry backoff. |
WORKER_JOB_TYPES | all | Comma-separated list to pin a worker to some job types. |
WORKER_ID | hostname | Shown in the jobs monitor. |
Scheduler #
| Variable | Default |
SCHEDULER_POLL_INTERVAL | 5s |
SCHEDULER_BATCH_SIZE | 100 |
SCHEDULER_ID | hostname |
Webhooks and push #
| Variable | Default | Notes |
WEBHOOKS_ENABLED | true | |
WEBHOOK_TIMEOUT | 10s | |
WEBHOOK_ALLOW_PRIVATE_URLS | false | Development only. |
PUSH_ENABLED | false | Enables APNs delivery. |
APNS_KEY APNS_KEY_ID APNS_TEAM_ID APNS_BUNDLE_ID APNS_ENV | — | APNs credentials for the iOS app. |
Edit this page on GitHub