Zum Inhalt springen
esc
Tippen zum Suchen. ↑ ↓ zum Navigieren, ↵ zum Öffnen.
Self-Hosting

Konfiguration

Jede Stellschraube ist eine Umgebungsvariable in der .env im Repo-Root, gelesen von Docker Compose, der Web-App und den Go-Diensten.

Aktualisiert am 10. Sept. 2026 beta 2 Min. Lesezeit

Datenbank #

VariableStandardHinweis
DATABASE_URL—Vollständiger Connection-String. Unter Compose leer lassen, dann wird er aus den Teilen unten gebaut; .env.example bringt einen Wert für die lokale Entwicklung mit, der geleert werden muss.
POSTGRES_USERappCompose provisioniert den db-Dienst daraus.
POSTGRES_PASSWORD—Pflicht.
POSTGRES_DBtrackr
POSTGRES_HOST POSTGRES_PORTlocalhost 5432Compose setzt den Host auf db. Unter Compose ändert POSTGRES_PORT nur den auf dem Host veröffentlichten Port; die Container nutzen immer 5432.

Routing und Auth #

VariableStandardHinweis
ORIGINungesetztHinter einem Proxy mit Forwarded-Headern ungesetzt lassen.
PROTOCOL_HEADER HOST_HEADERx-forwarded-proto x-forwarded-hostHeader-Namen, denen die App vertraut.
XFF_DEPTH1Anzahl der Proxies davor.
BETTER_AUTH_SECRET—Pflicht. 32+ Zeichen.
ROOT_EMAIL ROOT_NAMEroot@example.com RootAngelegtes Superadmin-Konto.
ROOT_PASSWORD—Pflicht beim ersten Start. 8+ Zeichen.

E-Mail #

Gelesen vom Worker.

VariableStandard
EMAIL_FROM— (Pflicht, sobald SMTP_HOST gesetzt ist)
SMTP_HOSTleer = in die Konsole loggen
SMTP_PORT587
SMTP_SECUREtrue bei SMTP_PORT 465, sonst false
SMTP_USER SMTP_PASS—
DIGEST_TZEurope/Berlin (Web-App und Worker; nicht weitergereicht)

Speicher #

Die STORAGE_*- und S3_*-Variablen stehen unter Docker Compose → Speicher. Die S3_*-Variablen werden von der ausgelieferten Compose-Datei nicht weitergereicht.

Worker #

VariableStandardHinweis
WORKER_CONCURRENCY4Parallele Jobs pro Worker.
WORKER_JOB_TIMEOUT4mFrist pro Job. Muss kürzer sein als WORKER_REAP_AFTER.
WORKER_POLL_INTERVAL1sFallback-Polling; LISTEN/NOTIFY weckt sofort.
WORKER_NOTIFYtruefalse deaktiviert LISTEN/NOTIFY, etwa hinter einem Pooler im Transaction-Modus.
WORKER_HEARTBEAT WORKER_REAP_AFTER30s 5mHängende Jobs werden nach dem Reap-Fenster neu eingereiht, solange Versuche übrig sind, sonst als fehlgeschlagen markiert. Der Heartbeat muss kürzer sein als das Reap-Fenster.
WORKER_BACKOFF_BASE WORKER_BACKOFF_CAP10s 10mExponentielles Backoff.
WORKER_JOB_TYPESalleKommagetrennte Liste, um einen Worker auf Job-Typen festzulegen.
WORKER_IDHostnameErscheint in den Log-Zeilen des Workers. Nicht weitergereicht.

Scheduler #

VariableStandardHinweis
SCHEDULER_POLL_INTERVAL5s
SCHEDULER_BATCH_SIZE100
SCHEDULER_IDHostnameNicht weitergereicht.

Webhooks und Push #

VariableStandardHinweis
WEBHOOKS_ENABLEDtrueWeb-App. Nicht weitergereicht.
WEBHOOK_TIMEOUT10sWorker. Nicht weitergereicht.
WEBHOOK_MAX_BODY2048Bytes des Antwort-Bodys, die pro Zustellversuch gespeichert werden. Worker. Nicht weitergereicht.
WEBHOOK_ALLOW_PRIVATE_URLSfalseNur für die Entwicklung; erlaubt auch reines http://. Web-App und Worker. Nicht weitergereicht.
PUSH_ENABLEDfalseLässt die Web-App push.send-Jobs einreihen. Die Zustellung braucht zusätzlich die APNS_*-Werte im Worker; ohne sie werden die Jobs übersprungen.
APNS_KEY APNS_KEY_ID APNS_TEAM_ID APNS_BUNDLE_ID—APNs-Zugangsdaten für die iOS-App. APNS_KEY akzeptiert PEM-Inhalt, einen Dateipfad oder Base64.
APNS_ENVproductiondevelopment für Sandbox-Pushes.
Diese Seite auf GitHub bearbeiten