StatO als Docker-Stack bereitstellen
Diese Anleitung gilt für alle Umgebungen, die Docker-Compose-Stacks ausführen oder importieren können: eigener Linux-Server, Portainer, NAS-Systeme, Managed Hosting mit Container-Stack oder Plattformen wie Mittwald. Sie ist nicht an ein bestimmtes NAS oder Hosting-Produkt gebunden.
Was der Stack enthält
Die generierte Datei deploy.yaml definiert vier Dienste mit persistenten Docker-Volumes:
| Dienst | Aufgabe |
|---|---|
frontend | Stellt die StatO-Weboberfläche bereit und proxyt API-Anfragen intern. |
backend | Führt Anmeldung, Fachlogik und Datenzugriff aus. |
postgres | Speichert StatO-Daten dauerhaft. |
backup | Erstellt Sicherungen von Datenbank und Uploads. |
1. Deploy-Datei erzeugen
Öffne den Environment Generator. Er ist direkt in die Dokumentationsseite eingebettet und erzeugt im Browser:
- sichere Datenbank- und JWT-Secrets,
- die öffentliche StatO-Adresse,
- die gewünschte StatO-Image-Version,
- Einstellungen für Benutzerbereitstellung und optional SMTP,
- Branding, Zeitzone und Backup-Aufbewahrung.
Lade die Datei als deploy.yaml herunter. Sie enthält Secrets und darf weder in Git eingecheckt noch ungeschützt weitergegeben werden.
2. Adresse und Port festlegen
Bei einer direkten HTTP-Installation gibst du beispielsweise http://server.example.org:8088 und Port 8088 ein. Der gleiche Wert wird als öffentliche Adresse in die Backend-Konfiguration übernommen.
Wenn dein Hosting oder ein vorhandener Reverse Proxy TLS beendet, trägst du die spätere Browser-Adresse ein, etwa https://stato.example.org. Der Proxy muss Anfragen an den Frontend-Dienst auf Port 8080 weiterleiten; im Stack ist der von dir gewählte Host-Port darauf abgebildet.
3. Stack importieren oder starten
Je nach Plattform verwendest du eine der folgenden Varianten:
# Docker Compose auf einem eigenen Server
docker compose -f deploy.yaml up -d
# Portainer, Mittwald oder eine vergleichbare Plattform
Stack erstellen → deploy.yaml einfügen oder hochladen → deployen
Die Plattform muss persistente Docker-Volumes unterstützen. Für PostgreSQL, Uploads und Backups legt der Stack die Volumes postgres-data, backend-uploads und backup-data an.
4. Ersteinrichtung und Prüfung
- Öffne die konfigurierte StatO-Adresse im Browser.
- Schließe die Ersteinrichtung ab.
- Prüfe Containerstatus, Anmeldung und eine Testaktivität.
- Plane Backups und führe vor dem Go-live einen Restore-Test durch.
TLS und Reverse Proxy
Der generierte Stack ist bewusst portabel und erwartet für HTTPS einen vorhandenen Reverse Proxy oder die TLS-Funktion des Hostings. Für internes HTTPS mit dem im StatO-Release enthaltenen Caddy verwende stattdessen das Release-Bundle mit der Ausgabe stato.env im Generator.