flowplanDokumentationZur Startseite

Selbst hosten

Installation mit Docker

Flowplan läuft als ein einziger Container mit SQLite und einem Datenverzeichnis. Postgres, Redis oder ein separater Suchdienst werden nicht gebraucht.

Voraussetzungen

  • Ein Server mit Docker und einem dauerhaften Volume. Die Texterkennung gescannter PDFs braucht beim Hochladen kurzzeitig spürbar CPU.
  • Eine Domain mit HTTPS über einen Reverse Proxy (Traefik, Caddy, nginx, Coolify, Pangolin …).
  • Optional ein OpenID-Connect-Anbieter für Single Sign-on. Ohne ihn melden sich Personen mit E-Mail und Passwort oder Passkey an, siehe Anmeldung.
  • Optional: ein S3-kompatibler Speicher für Dateien und die laufende Datenbanksicherung, siehe Speicher, S3 und Sicherung.

Mit Docker Compose

Flowplan ist Open Source (AGPL-3.0). Das fertige Image liegt in der GitHub Container Registry, für linux/amd64 und linux/arm64:

TagInhalt
ghcr.io/yannicschuller/flowplan:latestNeueste Version (Release)
ghcr.io/yannicschuller/flowplan:1.2.3Feste Version, auch als :1.2 und :1
ghcr.io/yannicschuller/flowplan:betaNeuester Entwicklungsstand – zum Ausprobieren, nicht für den Betrieb

Compose-Datei und Beispielkonfiguration herunterladen:

mkdir flowplan && cd flowplan
curl -O https://raw.githubusercontent.com/yannicschuller/flowplan/main/compose.yaml
curl -o .env https://raw.githubusercontent.com/yannicschuller/flowplan/main/.env.example

In .env mindestens die öffentliche Adresse setzen:

APP_URL=https://flowplan.example.com

Für Single Sign-on zusätzlich OIDC_ISSUER, OIDC_CLIENT_ID, OIDC_CLIENT_SECRET und OIDC_ADMIN_GROUP (siehe Anmeldung); für E-Mails (Einladungen, Passwort vergessen) die SMTP_*-Werte aus der Konfiguration.

docker compose up -d

Der Container lauscht auf Port 3000 (in der Compose-Datei nur an 127.0.0.1 gebunden, damit der Proxy davor sitzt). Das Volume flowplan-data auf /app/data hält alle Inhalte unabhängig vom Container. Eine feste Version wählst du mit FLOWPLAN_VERSION=1.2.3 in der .env.

Image selbst bauen

Aus dem Quellcode (github.com/yannicschuller/flowplan):

git clone https://github.com/yannicschuller/flowplan.git && cd flowplan
cp .env.example .env
docker compose up -d --build

Oder ohne Compose:

docker build -t flowplan:latest .
docker run -d --name flowplan \
  -p 127.0.0.1:3000:3000 \
  -v flowplan-data:/app/data \
  --env-file .env \
  flowplan:latest

Das Image enthält Node, Litestream für die S3-Sicherung und curl für den Healthcheck. Es läuft als Benutzer node (UID 1000).

Erster Start

  1. https://flowplan.example.com/api/health aufrufen – die Antwort ist 200 mit "status":"ok".
  2. Die Adresse im Browser öffnen: Eine neue Instanz bietet Konto erstellen an. Dieses erste Konto verwaltet die Instanz. (Mit Single Sign-on: Mit SSO anmelden; Admin ist, wer in der Gruppe aus OIDC_ADMIN_GROUP ist.)
  3. In der Seitenleiste unter Administration Instanzname, Upload-Grenze, Registrierung und die weiteren Einstellungen setzen.

Aktualisieren

docker compose pull
docker compose up -d

Beim selbst gebauten Image stattdessen git pull und docker compose up -d --build.

Beim Start migriert Flowplan die Datenbank selbst. Vorher eine Sicherung anlegen (siehe Speicher, S3 und Sicherung); ein Zurückgehen auf eine ältere Version nach einer Migration ist nicht vorgesehen.

Ohne Docker

Node.js 22.13 oder neuer (Node 24 LTS empfohlen):

npm ci
npm run build
FLOWPLAN_DATA_DIR=/var/lib/flowplan npm start

Für die lokale Entwicklung reicht npm run dev. Der Entwicklungsmodus bietet zusätzlich Lokalen Arbeitsbereich öffnen an, ein gemeinsames Beispielkonto; im Produktionsmodus gibt es diesen Zugang nicht.

Weiter