Konfiguration
Konfiguration: E-Mail, Integrationen und Workflows
Die Umgebungsvariablen für Mailversand und E-Mail-Eingang, Integrationen wie GitHub und Kalender, Chat-Apps und Workflows.
6 Min. Lesezeit
E-Mail (SMTP)
| Variable | Standard | Bedeutung |
|---|---|---|
SMTP_HOST | leer | Schaltet den E-Mail-Versand ein: Einladungen und Zusammenfassungen ungelesener Benachrichtigungen. |
SMTP_PORT | 587 | Port. Bei 465 spricht Flowplan direkt TLS, sonst STARTTLS. |
SMTP_SECURE | nach Port | true/false erzwingt TLS ab Verbindungsbeginn. |
SMTP_USER / SMTP_PASSWORD | leer | Anmeldung am Mailserver. |
SMTP_FROM | Flowplan <SMTP_USER> | Absender, z. B. Flowplan <[email protected]>. |
Den Versand prüfst du unter Administration → E-Mail → Test-E-Mail senden.
E-Mail-Eingang (IMAP)
Für den E-Mail-Eingang per Webhook (Mailgun, Postmark, SendGrid, Cloudflare) ist nichts zu setzen. Ein eigenes Postfach fragt Flowplan alle zwei Minuten per IMAP ab:
| Variable | Standard | Bedeutung |
|---|---|---|
INBOUND_MAIL_DOMAIN | leer | Domain der Eingangsadressen, z. B. mail.example.com. Die Einstellungen zeigen dann je Adresse inbox+<token>@mail.example.com. |
INBOUND_IMAP_HOST | leer | Schaltet die IMAP-Abfrage ein (zusammen mit INBOUND_IMAP_USER). |
INBOUND_IMAP_PORT | 993 | Port (143, wenn INBOUND_IMAP_TLS=false). |
INBOUND_IMAP_USER / INBOUND_IMAP_PASSWORD | leer | Anmeldung am Postfach. Der Teil vor @ ist auch der Teil vor + in den Adressen. |
INBOUND_IMAP_FOLDER | INBOX | Ordner, der abgefragt wird. |
INBOUND_IMAP_TLS | true | false nur für einen Mailserver auf demselben Rechner oder im selben Netz (ohne Verschlüsselung). |
INBOUND_MAIL_AUTHSERV_ID | leer | Kennung (authserv-id) des eigenen empfangenden Mailservers oder Anbieters, mit der sein Authentication-Results-Header beginnt, z. B. mx.example.com. Gilt auch für den Eingang per Webhook. |
Der Mailserver muss Plus-Adressierung unterstützen (inbox+irgendwas@… landet in inbox@…); das tun z. B. Dovecot, Postfix, Gmail/Google Workspace und Microsoft 365 (dort einschalten). Flowplan markiert verarbeitete E-Mails als gelesen und löscht nichts.
Absenderprüfung: Ob ein Absender als geprüft gilt (SPF/DKIM/DMARC zur From-Domain bestanden), liest Flowplan aus dem Authentication-Results-Header. Den kann auch der Absender selbst mitschicken – deshalb zählt nur der oberste Header mit der Kennung aus INBOUND_MAIL_AUTHSERV_ID. Ohne die Variable gilt kein Absender als geprüft: Workflows mit Nur geprüfte Absender starten dann nie, die Standardeinstellung (alle außer durchgefallenen) läuft weiter. Die Kennung steht am Anfang des Headers, den dein Server in empfangene E-Mails schreibt (Authentication-Results: mx.example.com; spf=pass …).
Integrationen
| Variable | Standard | Bedeutung |
|---|---|---|
FLOWPLAN_WEBHOOK_ALLOW_PRIVATE | leer | true erlaubt Webhooks an interne Adressen und http:// – etwa Home Assistant oder n8n im selben Netz. Ohne diese Variable sind nur öffentliche HTTPS-Adressen erlaubt. |
SPACE_GIT_EXPORT | leer | true schaltet den Git-Export der Bereiche ein: Bereichseigentümer übertragen ihren Bereich täglich oder wöchentlich in ein eigenes Repository. |
SPACE_GIT_ALLOWED_HOSTS | leer | Erlaubte Git-Server dafür, durch Komma getrennt (z. B. git.example.org). Ohne die Variable ist jeder öffentliche https://-Server erlaubt; interne Adressen nie. |
SPACE_GIT_ALLOW_PRIVATE | leer | true erlaubt den in SPACE_GIT_ALLOWED_HOSTS genannten Servern auch interne Adressen – etwa ein Forgejo auf demselben Host, den der Container über --add-host git.example.org:host-gateway erreicht. Wirkt nur zusammen mit der Liste; alle anderen Server bleiben auf öffentliche Adressen beschränkt. |
ISSUE_SYNC_ALLOWED_HOSTS | leer | Eigene Server für die Synchronisierung von GitHub-, GitLab- und Forgejo-Issues, durch Komma getrennt (z. B. gitlab.example.org). github.com, gitlab.com und codeberg.org sind immer erlaubt; andere Server nur, wenn sie hier stehen. |
ISSUE_SYNC_ALLOW_PRIVATE | leer | true erlaubt den in ISSUE_SYNC_ALLOWED_HOSTS genannten Servern auch interne Adressen – etwa ein GitLab im selben Netz. Wirkt nur zusammen mit der Liste. |
NETBOX_ALLOW_PRIVATE | leer | true erlaubt den NetBox-Import auf Whiteboards auch interne Adressen und http:// – etwa ein NetBox im selben Netz. Ohne diese Variable nur öffentliche HTTPS-Adressen. Adresse und Token werden nie auf dem Server gespeichert. |
PLUGIN_ALLOWED_ORIGINS | leer | HTTPS-Ursprünge, von denen Eigentümer Block-Erweiterungen registrieren dürfen, durch Komma getrennt (z. B. https://plugins.example.org). Ohne die Variable nur, wenn die Administration Block-Erweiterungen von jeder HTTPS-Adresse einschaltet. Die Ursprünge werden auch in die frame-src der Content Security Policy aufgenommen. |
GIPHY_API_KEY / TENOR_API_KEY | leer | Schlüssel für die GIF-Suche auf Whiteboards bei GIPHY bzw. Tenor (ist beides gesetzt, gilt GIPHY). Ohne Schlüssel fehlt der Reiter GIFs. Gesucht wird über den Server; gewählte GIFs werden bis 8 MB auf dem Server gespeichert. |
EXPORT_GIT_* | leer | Veraltet: der Git-Export der ganzen Instanz, siehe In ein Git-Repository übertragen. Läuft weiter; besser ist der Git-Export der Bereiche. |
Kalender-Sync
Zwei-Wege-Synchronisierung von Datenbankansichten mit Google Kalender und Microsoft Outlook / 365. Jede Person verbindet ihr eigenes Konto; ohne Client-ID bleibt der jeweilige Anbieter ausgeblendet. Flowplan fragt alle zehn Minuten nach Änderungen (Push-Benachrichtigungen der Anbieter werden nicht genutzt – sie bräuchten eine öffentlich erreichbare, beim Anbieter bestätigte HTTPS-Adresse).
| Variable | Standard | Bedeutung |
|---|---|---|
GOOGLE_CALENDAR_CLIENT_ID / GOOGLE_CALENDAR_CLIENT_SECRET | leer | OAuth-Client (Typ „Webanwendung“) aus der Google Cloud Console, mit aktivierter Google Calendar API und dem Bereich …/auth/calendar. Weiterleitungs-URI: <APP_URL>/api/calendar-sync/callback/google. |
MS_CALENDAR_CLIENT_ID / MS_CALENDAR_CLIENT_SECRET | leer | App-Registrierung in Microsoft Entra ID (Web-Plattform) mit den delegierten Berechtigungen Calendars.ReadWrite und offline_access. Weiterleitungs-URI: <APP_URL>/api/calendar-sync/callback/microsoft. |
MS_CALENDAR_TENANT | common | common (Geschäfts- und private Konten), organizations oder die ID eines Mandanten. |
Die Aktualisierungs-Tokens der Personen liegen versiegelt in der Datenbank (wie alle gespeicherten Geheimnisse).
Chat-Apps
Benachrichtigungen an Telegram, Gotify, ntfy und Matrix. Alles lässt sich auch unter Administration → Chat-Apps einstellen; dort gespeicherte Werte haben Vorrang.
| Variable | Standard | Bedeutung |
|---|---|---|
FLOWPLAN_MESSENGERS | alle | Dienste, die Personen verbinden dürfen, durch Komma getrennt: telegram, gotify, ntfy, matrix; off für keinen. |
FLOWPLAN_TELEGRAM_BOT_TOKEN | leer | Token des Telegram-Bots der Instanz (von @BotFather). Damit verbinden Personen Telegram über einen Link mit Einmal-Code, ohne eigenen Bot. |
FLOWPLAN_TELEGRAM_API_URL | https://api.telegram.org | Adresse der Bot-API für den Bot der Instanz – ein selbst betriebener Telegram-Bot-API-Server (öffnet in neuem Tab) oder ein Relay/Proxy. Darf im eigenen Netz liegen und http:// sein. |
FLOWPLAN_MESSENGER_ALLOW_PRIVATE | wie FLOWPLAN_WEBHOOK_ALLOW_PRIVATE | true: Personen dürfen Server im eigenen Netz angeben (interne Adressen, http://) – etwa Gotify oder ntfy im Heimnetz. Sonst sind interne Adressen gesperrt, auch wenn ein Name später auf eine umgestellt wird. |
Bot der Instanz ohne öffentliche Adresse: Flowplan nutzt keinen Webhook, sondern fragt die Nachrichten des Bots mit getUpdates ab – nur solange ein Verbindungscode wartet (höchstens 15 Minuten). Ausgehendes HTTPS zur Bot-API genügt. Der Bot darf deshalb nicht gleichzeitig einen Webhook haben oder von einem anderen Programm abgefragt werden (Telegram meldet dann einen Konflikt, die Administration zeigt ihn an) – nimm einen eigenen Bot nur für Flowplan.
Ausgehende Verbindungen: zu api.telegram.org (oder der eigenen API-Adresse), ntfy.sh und den Servern, die Personen angeben. Sie laufen über dieselbe Prüfung wie Link-Vorschauen und Webhooks: Adresse auflösen, interne Adressen abweisen, genau die geprüfte Adresse verwenden, keine Weiterleitungen. Abgewiesene Versuche erscheinen als Sicherheitsereignis „Interne Adresse abgewiesen (SSRF)“.
Die Tokens der Personen und des Bots speichert Flowplan verschlüsselt wie andere gespeicherte Geheimnisse. Fehlt der Schlüssel nach einer Wiederherstellung, muss die Administration den Bot-Token neu eingeben; Verbindungen mit eigenem Token werden nach drei Fehlversuchen ausgeschaltet, und ihre Besitzer erfahren es im Posteingang.
Workflows
Standards für Workflows; die Administration kann sie überschreiben.
| Variable | Standard | Bedeutung |
|---|---|---|
FLOWPLAN_WORKFLOWS | on | Hauptschalter; off: keine neuen Workflow-Seiten, alle pausiert |
FLOWPLAN_WORKFLOW_RUNS_PER_MINUTE | 60 | Läufe je Minute und Workflow |
FLOWPLAN_WORKFLOW_WORKSPACE_RUNS_PER_MINUTE | 600 | Läufe je Minute und Arbeitsbereich |
FLOWPLAN_WORKFLOW_STEPS_PER_RUN | 200 | Schritte je Lauf |
FLOWPLAN_WORKFLOW_CASCADE_DEPTH | 5 | Tiefe gegenseitiger Auslösung |
FLOWPLAN_WORKFLOW_FOREACH_MAX | 100 | Elemente je „Für jedes“ |
FLOWPLAN_WORKFLOW_AI_TOKENS_PER_DAY | 100000 | KI-Tokens je Workflow und Tag (0 = KI-Knoten aus) |
FLOWPLAN_WORKFLOW_MAILS_PER_DAY | 100 | E-Mails je Workflow und Tag |
FLOWPLAN_WORKFLOW_RUN_DAYS | 30 | Aufbewahrung der Läufe in Tagen |
FLOWPLAN_WORKFLOW_MAX_WAIT_DAYS | 365 | längstes Warten bzw. Freigabefrist |
FLOWPLAN_WORKFLOW_ACTIVE_PER_WORKSPACE | 100 | aktive Workflows je Arbeitsbereich |
FLOWPLAN_WORKFLOW_WORKERS | 4 | gleichzeitige Schritte je Instanz |
FLOWPLAN_WORKFLOW_HTTP | on | HTTP-Knoten erlaubt |
FLOWPLAN_WORKFLOW_HTTP_HOSTS | leer | nur diese Hosts (kommagetrennt) |
FLOWPLAN_WORKFLOW_HTTP_ALLOW_PRIVATE | false | interne Adressen erlauben (Heimnetz, n8n) |
FLOWPLAN_WORKFLOW_EXTERNAL_MAIL | on | E-Mails an Adressen außerhalb der Mitglieder |
FLOWPLAN_WORKFLOW_TEST_RUNS_PER_MINUTE | 10 | Test- und Probeläufe je Person und Minute |
FLOWPLAN_WORKFLOW_PARALLEL_RUNS | 10 | gleichzeitig laufende Läufe je Workflow (1–100); weitere warten in der Warteschlange |
FLOWPLAN_WORKFLOW_RUNS_KEPT | 10000 | höchstens so viele Läufe je Workflow aufbewahren (100–1.000.000); ältere abgeschlossene werden täglich gelöscht, offene nie |
Nur für Entwicklung und Tests: FLOWPLAN_WORKFLOW_LEASE_MS (Standard 120000, die Lease eines Schritts), FLOWPLAN_WORKFLOW_POLL_MS (5000, wie oft jede Instanz nach fälligen Schritten sieht) und FLOWPLAN_WORKFLOW_SWEEP_MS (60000, wie oft abgelaufene Leases zurück in die Warteschlange kommen) verkürzen die Zeiten der Warteschlange in Millisekunden. Im Betrieb nicht setzen.