Zum Inhalt
flowplanDokumentationCommunityMarketplaceZur Startseite

Konfiguration

Konfiguration: Speicher, Datenbank und Sicherheit

Die Umgebungsvariablen für S3 und Datenbanksicherung, PostgreSQL und Cluster, Verschlüsselung, gespeicherte Geheimnisse, Instanzumzug und Rechtliches.

3 Min. Lesezeit

Auf dieser Seite
  1. S3 und Datenbanksicherung
  2. Datenbank und Cluster
  3. Verschlüsselung
  4. Gespeicherte Geheimnisse
  5. Instanzumzug
  6. Rechtliches und Oberfläche

S3 und Datenbanksicherung

VariableStandardBedeutung
S3_BUCKETleerSchaltet S3 ein. Ohne diese Variable bleibt alles lokal.
S3_ENDPOINTAWSAPI-Adresse des Speichers, z. B. http://minio:9000.
S3_ACCESS_KEY_ID / S3_SECRET_ACCESS_KEY–Zugangsschlüssel mit Lese- und Schreibrecht auf den Bucket.
S3_REGIONus-east-1Region. Garage verlangt seinen eigenen Wert (oft garage).
S3_PREFIXflowplanOrdner im Bucket; Dateien unter <Präfix>/uploads/, Datenbank unter <Präfix>/db/.
FLOWPLAN_LITESTREAManoff: nur Dateien spiegeln, Datenbank nicht sichern.
LITESTREAM_SSE_C_KEYleerOptional: der Speicheranbieter verschlüsselt die Litestream-Kopie (SSE-C, 32 Bytes base64, nur über https und bei Anbietern, die SSE-C können).

Details: Speicher, S3 und Sicherung.

Datenbank und Cluster

Ohne diese Variablen nutzt Flowplan SQLite in einem Container. Kommentiert stehen sie auch in der .env.example (öffnet in neuem Tab). Alle Werte mit Standard und Erklärung stehen unter PostgreSQL und Cluster-Modus.

VariableStandardBedeutung
DATABASE_URLleerpostgres://… schaltet auf PostgreSQL um. Die Rolle darin sollte die Datenbank besitzen, aber kein Superuser sein (PostgreSQL).
FLOWPLAN_PG_SCHEMA, FLOWPLAN_PG_POOL, FLOWPLAN_PG_*_TIMEOUTpublic, 10, …Schema, Verbindungen je Instanz und Zeitlimits.
FLOWPLAN_PG_PREPAREanoff: Abfragen ohne Namen statt benannter Prepared Statements – für PgBouncer im Modus transaction ohne max_prepared_statements.
DATABASE_SESSION_URLDATABASE_URLDirekte Verbindung (oder Pool im Modus session) für Benachrichtigungen, die Leitung im Cluster und pg_dump/pg_restore, wenn DATABASE_URL auf PgBouncer im Modus transaction zeigt.
FLOWPLAN_BACKUP_FORMATpg_dumpsqlite: geplante Sicherungen auf PostgreSQL im portablen SQLite-Format.
FLOWPLAN_CLUSTERleer1: mehrere Instanzen; verlangt DATABASE_URL, REDIS_URL, S3_BUCKET, FLOWPLAN_ENCRYPTION_KEY (oder FLOWPLAN_SECRETS_KEY) und WEB_PUSH_PUBLIC_KEY/WEB_PUSH_PRIVATE_KEY.
REDIS_URLleerRedis für den Cluster-Modus, redis://… oder rediss://….
FLOWPLAN_READY_REQUIREalleWelche Prüfungen über /api/health/ready entscheiden.

Verschlüsselung

VariableStandardBedeutung
FLOWPLAN_ENCRYPTION_KEYleer32 Bytes, base64 (openssl rand -base64 32). Verschlüsselt Dateien im Bucket, geplante Sicherungen, Markdown-Exporte und die Instanzsicherung. Ohne Schlüssel ändert sich nichts.
FLOWPLAN_ENCRYPTION_KEY_FILEleerStatt der Variablen: Pfad zu einer Datei mit dem Schlüssel (Docker-Secret).
FLOWPLAN_ENCRYPTION_KEY_PREVIOUSleerFrühere Schlüssel, durch Komma getrennt – nur zum Lesen nach einem Schlüsselwechsel.

Details: Verschlüsselung.

Gespeicherte Geheimnisse

Schlüssel von KI-Anbietern, die Schlüssel der Authenticator-Apps (Zwei-Faktor-Anmeldung) die Zugangstokens des Git-Exports der Bereiche und die Tokens der Chat-Apps speichert Flowplan nur verschlüsselt (AES-256-GCM, an ihren Platz gebunden). Der Schlüssel dafür kommt, in dieser Reihenfolge, aus:

QuelleBedeutung
FLOWPLAN_ENCRYPTION_KEYWenn gesetzt, verschlüsselt er auch die gespeicherten Geheimnisse.
FLOWPLAN_SECRETS_KEY / FLOWPLAN_SECRETS_KEY_FILEEin eigener Schlüssel nur dafür: 32 Bytes, base64 oder hex (openssl rand -base64 32), oder Pfad zu einer Datei (Docker-Secret).
secrets.key im DatenordnerOhne die beiden Variablen legt Flowplan diese Datei beim ersten Bedarf selbst an (nur für den Besitzer lesbar).
Wichtig

Die Instanzsicherung enthält secrets.key bewusst nicht – sie gehört nicht neben die Daten, die sie schützt. Sichere die Datei getrennt oder setze den Schlüssel als Variable. Fehlt er nach einer Wiederherstellung, geben Admins und Nutzer ihre KI-Schlüssel und Chat-App-Tokens neu ein, und für die Zwei-Faktor-Anmeldung helfen Wiederherstellungscodes oder ein Zurücksetzen durch die Administration. Das Umzugswerkzeug nimmt secrets.key dagegen mit, denn es zieht die ganze Instanz um.

Instanzumzug

VariableStandardBedeutung
FLOWPLAN_MOVE_ALLOW_PRIVATEleerAuf der neuen Instanz: true erlaubt, eine Instanz unter einer internen Adresse (LAN, VPN, localhost) und über http:// zu übernehmen – etwa einen Heimserver. Ohne diese Variable nur öffentliche HTTPS-Adressen. Nach dem Umzug wieder entfernen.

Details: Instanz umziehen.

Rechtliches und Oberfläche

VariableStandardBedeutung
IMPRINT_URLleerLink zum Impressum, z. B. https://example.com/impressum. Erscheint auf der Anmeldeseite, unter geteilten Seiten und Formularen und im Kontomenü (auf dem Telefon unter Mehr in der Seitenleiste) – nur, wenn gesetzt.
PRIVACY_URLleerLink zur Datenschutzerklärung, an denselben Stellen und ebenfalls nur, wenn gesetzt.
FLOWPLAN_SOURCE_URLGitHub-Repository von FlowplanAdresse des Quellcodes, der auf dieser Instanz läuft (http oder https). Die AGPL-3.0 verlangt: Wer eine veränderte Fassung für andere betreibt, bietet ihnen deren Quellcode an (§ 13). Gesetzt, verlinken Einstellungen → Über Flowplan und die Anmeldeseite (Fußzeile „Quellcode“) diese Adresse statt github.com/yannicschuller/flowplan; der Commit ist dann nicht mehr auf GitHub verlinkt.
DRAWIO_URLhttps://embed.diagrams.netAdresse des draw.io-Editors für den Block /drawio, z. B. ein eigener Container jgraph/drawio. Nur https (http nur für localhost); ein ungültiger Wert schaltet draw.io aus. Beim Ansehen wird draw.io nie geladen.
FLOWPLAN_HIDE_SPONSORfalsetrue blendet unter Einstellungen → Über Flowplan nur den Teil Flowplan unterstützen ♥ (Link zu GitHub Sponsors) aus. Lizenz und Quellcode bleiben immer sichtbar. In den Apps für iPhone, iPad und Android ist der Link unabhängig davon nie zu sehen; in Browsern und der Desktop-App schon.
War das hilfreich?
JaDanke!
Nein – sag uns, was fehlt

Fehler gefunden oder etwas fehlt?Auf GitHub bearbeiten