Zum Inhalt

Technik & Betrieb

Diese Seite richtet sich an die technische Verantwortung und beschreibt, wie das Admin-Backend betrieben und geprüft wird. Die Bedienung der einzelnen Bereiche ist in den anderen Admin-Seiten erklärt.

Systemversionen

  • Python 3.14 als Laufzeit
  • Docker-Image auf Alpine-Basis; die Produktionsstufe läuft nicht als Root
  • ffmpeg ist im Image enthalten und dient der Audioumwandlung (HLS)
  • SQLite als Datenbank: eine Hauptdatenbank plus je eine eigene Datenbank pro Plugin
  • Zeitzone im Image UTC; gespeicherte Zeitstempel sind UTC

Deployment

  • Push auf main: automatische Prüfungen, Build des Images und Deployment in die Testumgebung.
  • Git-Tag (z. B. v1.0.0): nur das Produktions-Deployment mit dem bereits in der Testumgebung verifizierten Image; kein neuer Build.
  • Plugins sind eigenständige Repositories und liegen in einem persistenten Volume unter /app/plugins. Ein neues Backend-Image ersetzt installierte Plugins nicht; Plugin-Updates erfolgen über die Plugin-Verwaltung im Admin-Backend oder eine gesonderte Aktualisierung des Volumes.

Vor einem Produktionsupgrade die Datenbanken sichern und das Update in der Testumgebung prüfen. Eine Wiederherstellung aus einer Sicherung verwirft alle Änderungen seit dem Sicherungszeitpunkt.

Qualitätssicherung

Bei jedem Push auf main laufen automatisch Lint/Format, Typprüfung, Unit-/API-Tests für Backend und Plugins sowie Chromium-Browserprüfungen gegen isolierte App-Instanzen (Anmeldung, Rechte, 2FA, Benutzerverwaltung, Plugin-Oberflächen). Alle Prüfungen nutzen wegwerfbare Testdaten; produktive Daten und Secrets werden nicht eingebunden.

Entwicklungsdetails, Prüfbefehle und Release-Nachweise stehen im Backend-Repository (README.md, CHANGELOG.md), nicht in diesem Handbuch.

Wichtige Betriebshandlungen

  • Ersten Administrator anlegen: python scripts/create_admin.py (es werden keine Standardkonten erzeugt)
  • Migrationen in der Testumgebung anwenden: docker compose --profile dev exec app-dev alembic upgrade head
  • Testumgebung starten: docker compose --profile dev up -d
  • Produktion starten: docker compose --profile prod up -d

Keine Secrets oder Kundendaten ins Git-Repository oder Image aufnehmen. Laufzeitdaten und Zertifikate werden getrennt bereitgestellt; Deployment-Secrets liegen in SOPS-verschlüsselten Terraform-Dateien.