Zum Inhalt springen

Konfiguration

Eine selbst betriebene Installation wird über die .env neben der compose.yaml konfiguriert. Diese Seite ordnet die wichtigsten Variablen nach Zweck. Die vollständige, maßgebliche Tabelle steht im Abschnitt Configuration der README; jede Variable ist außerdem in der .env.example kommentiert.

Variable Pflicht Bedeutung
GW_APP_URL ja Adresse, unter der die App erreichbar ist. Anmeldelinks und der Passkey-Ursprung hängen daran.
GW_HOSTNAME für tls Name im Zertifikat, wird an Caddy durchgereicht.
GW_VERSION ja Image-Tag: latest oder eine feste Nummer wie 0.8.22. Steht in der Fußzeile und in /api/health.

GW_APP_URL muss genau die Adresse sein, die im Browser steht. Passt sie nicht, öffnen Anmeldelinks die falsche Adresse, und der Live-Editor bleibt ohne Verbindung.

Den Mailversand kannst du in der Oberfläche unter Mailversand einrichten (Mailversand) oder in der .env. Die Umgebung gewinnt pro Feld; die Oberfläche markiert solche Felder mit aus der Umgebung.

Variable Wann Bedeutung
GW_MAIL_TRANSPORT optional smtp, graph, console oder none. Leer: die Einstellungen in der Oberfläche gelten.
SMTP_URL / SMTP_URL_FILE mit smtp Relay-URL, direkt oder aus einer Datei
SMTP_FROM mit smtp Absenderadresse
GW_GRAPH_TENANT_ID mit graph Microsoft-365-Mandant, als Domain oder Verzeichnis-ID
GW_GRAPH_CLIENT_ID mit graph Anwendungs-ID der App-Registrierung
GW_GRAPH_CLIENT_SECRET / GW_GRAPH_CLIENT_SECRET_FILE mit graph Secret der Registrierung, direkt oder aus einer Datei
GW_GRAPH_SENDER mit graph Postfach, von dem aus verschickt wird

Für Microsoft Graph brauchst du eine App-Registrierung in Entra ID mit der Anwendungsberechtigung Mail.Send (nicht der delegierten) samt Administratorzustimmung.

Variable Standard Bedeutung
GW_RP_ID Host aus GW_APP_URL WebAuthn-Relying-Party-ID. Eine spätere Änderung macht jeden Passkey ungültig.
GW_SESSION_IDLE_DAYS 14 Nach wie vielen unbenutzten Tagen eine Sitzung abläuft
GW_TRUSTED_PROXIES 1 Anzahl der Proxys vor der App. Nur für Drosselung und Logs, nie für eine Berechtigung.

Nur für Installationen, die ein Skript aufsetzt. Der normale Weg ist /setup, siehe Installation.

Variable Bedeutung
GW_BOOTSTRAP_ADMIN_EMAIL Legt beim allerersten Start einen Admin an und druckt seinen Link
GW_BOOTSTRAP_ADMIN_FIRST_NAME Vorname, optional
GW_BOOTSTRAP_ADMIN_LAST_NAME Nachname, optional
Variable Standard Bedeutung
GW_TIMEZONE Europe/Berlin Zeitzone für Datumsangaben in der Oberfläche. Explizit setzen, damit Server und Browser gleich formatieren.
GW_SECRET_KEY / GW_SECRET_KEY_FILE wird erzeugt Verschlüsselt die in der Oberfläche eingegebenen Mail-Zugangsdaten. Gehört ins Backup.
GW_OPS_TOKEN leer Macht /api/health mit dem Header x-ops-token ausführlich: Version, Migrationsstand, Treiberfehler.
GW_MIGRATE_ON_START aus 1 lässt app vor dem Start migrieren, für Updater wie Watchtower
GW_PORT, GW_COLLAB_PORT 3000, 3001 Ports auf 127.0.0.1, falls die Standardwerte belegt sind
GW_COLLAB_URL, GW_COLLAB_INTERNAL_URL leer Nur nötig, wenn der Kollaborationsdienst nicht unter /collab auf demselben Host liegt

Ohne GW_OPS_TOKEN antwortet /api/health nur mit dem Status und den Namen der Prüfungen — der Endpunkt ist öffentlich erreichbar. Was es mit GW_SECRET_KEY und GW_MIGRATE_ON_START auf sich hat, steht unter Aktualisieren und sichern.

Nach einer Änderung an der .env bringst du den Stack erneut hoch:

Terminal-Fenster
docker compose --profile tls up -d

Ohne das Profil tls (eigener Proxy, SSH-Tunnel) lässt du --profile tls weg, siehe HTTPS und Reverse Proxy.