Files
fotospiel-app/docs/ops/operations-manual.md
2025-11-20 12:31:21 +01:00

132 lines
8.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Betriebshandbuch & Ops-Startseite
sidebar_label: Betriebshandbuch
slug: /
---
Willkommen im Betriebshandbuch von Fotospiel. Dieses Dokument ist der Einstiegspunkt für alle, die die Plattform betreiben: InfrastrukturOps, OnCall, Support mit erweiterten Rechten und ProduktOwner, die Auswirkungen von Änderungen verstehen möchten.
Ziel ist, dass du von hier aus schnell zu den relevanten Runbooks und Referenzen springen kannst.
## 1. Systemübersicht & Verantwortlichkeiten
- **Rollen & Verantwortlichkeiten**
- Wer ist für welche Ebene zuständig? (AppVerfügbarkeit, Infrastruktur, Sicherheit, Abrechnung, Support.)
- Empfehlung: definiere mindestens _OnCall_, _PlattformOps_ und _Support (2nd Level)_ als feste Rollen diese Seite ist für alle drei.
- **Systemlandschaft (HighLevel)**
- Laravel App + Nginx + Redis + MySQL.
- AsyncPipeline: Queues (`default`, `media-storage`, `media-security`, `notifications`) und Horizon.
- Satelliten: PhotoboothFTP + ControlService, DocsSite (`/internal-docs`), Monitoring/Dokploy.
- Externe Dienste: Paddle (Billing), RevenueCat (MobileAbos), EMail Provider, Logging/Monitoring (Loki/Grafana o.ä.).
> TODO: Ergänze ein Architekturdiagramm aus Sicht des Betriebs (z.B. als PNG oder PlantUML) und verlinke es hier.
## 2. Deployments & Infrastruktur
Diese Kapitel erklären, wie die Plattform in Docker/Dokploy betrieben wird.
- **Docker-Deployment (ComposeStack)**
- `docs/ops/deployment/docker.md` Referenz für `docker-compose.yml`, Services, Volumes, Migrations und SchedulerSetup.
- **Dokploy-Deployment (PaaS)**
- `docs/ops/deployment/dokploy.md` Wie die gleichen Services als DokployComposeStacks betrieben werden, inkl. SuperAdminIntegration.
- **Join-Token-Analytics & Public API**
- `docs/ops/deployment/join-token-analytics.md` Konfiguration der AnalyticsPfade für JoinTokens.
- `docs/ops/deployment/public-api-incident-playbook.md` Runbook für PublicAPIStörungen (RateLimits, Abuse, Outages).
- **Lokale Podman/Dev-URLs**
- `docs/ops/deployment/lokale-podman-adressen.md` Übersicht über lokale Services/Ports bei PodmanSetups.
Fragen zur Infrastruktur (Netzwerk, TLS, DNS, Backups) sollten immer zuerst gegen diese Dokumente geprüft werden.
## 3. Queues, Storage & Medien-Pipeline
Fotos sind das Herz des Produkts entsprechend wichtig ist ein klarer Blick auf die MedienPipeline.
- **Queues & Worker**
- `docs/ops/queue-workers.md` Wie die WorkerContainer (`queue`, `media-storage-worker`, `media-security-worker`, `notifications`) gestartet, skaliert und überwacht werden.
- **Media Storage & Archivierung**
- `docs/ops/media-storage-spec.md` Detaillierte Beschreibung, wie Uploads in den „hot“Storage laufen, wie `event_media_assets` gepflegt werden und wie ArchiveJobs funktionieren.
- **Upload-Gesundheit & Notifications**
- `docs/ops/guest-notification-ops.md` Runbook für das NotificationCenter, PushRegistrierung und UploadHealthAlerts.
> TODO: Ergänze ein zentrales „Storage & Queues Monitoring“-Kapitel mit konkreten Schwellenwerten und Alarmierung (z.B. Einbindung von Horizon, RedisMonitoring, Log-Channels).
## 4. Photobooth-Pipeline
Die PhotoboothIntegration hat eigene Betriebsanforderungen:
- `docs/ops/photobooth/README.md` Überblick über PhotoboothSetup und Datenfluss.
- `docs/ops/photobooth/control_service.md` SteuerAPI (UserProvisionierung, Credentials, RateLimits).
- `docs/ops/photobooth/ops_playbook.md` Operatives Playbook für Aktivierung, Fehleranalyse und IncidentResponse rund um PhotoboothUploads.
> Prüfe vor großen Events mit gebuchten Photobooths diese Playbooks und stelle sicher, dass Volumes, Credentials und Scheduler korrekt konfiguriert sind.
## 5. Störungs- & Incident-Runbooks
Die folgenden Dokumente sind deine erste Anlaufstelle im IncidentFall:
- **Major Incidents & Eskalation**
- `docs/ops/incidents-major.md` genereller Rahmen (SEVLevels, Triage, Kommunikation, Postmortems) und Verweise auf die spezifischen Runbooks unten.
- **Public API Störungen**
- `docs/ops/deployment/public-api-incident-playbook.md` SchrittfürSchrittPlan bei Missbrauch, Fehlerspitzen oder Ausfällen der öffentlichen APIs.
- **Upload-/Medien-Probleme**
- `docs/ops/media-storage-spec.md` Referenz, welche Queues/Jobs beteiligt sind und wie man Fehlerzustände erkennt (z.B. lange „pending“-Assets, gescheiterte Archivierung).
- `docs/ops/guest-notification-ops.md` UploadAlerts und Gastbenachrichtigungen.
- **Photobooth-Incidents**
- `docs/ops/photobooth/ops_playbook.md` Vorgehen bei ausfallendem FTP, IngestFehlern oder Sicherheitsvorfällen (Credentials).
Zusätzlich gibt es kurze „Howto“-Runbooks für häufige Supportfälle:
- `docs/ops/howto-tenant-package-not-active.md` Zahlung erfolgreich, Paket nicht aktiv.
- `docs/ops/howto-guest-upload-failing.md` Gäste können nicht hochladen.
- `docs/ops/howto-photobooth-no-photos.md` PhotoboothUploads landen nicht im Event.
- `docs/ops/howto-dsgvo-delete-photo.md` DSGVOLöschung eines konkreten Fotos.
> TODO: Ergänze ein allgemeines „Major Incident“Kapitel (SEV1/2 Definition, Kommunikationskanäle, Vorlagen) und verlinke es hier.
## 6. Prozesse, Roadmap & Änderungen
Der Betreiber muss wissen, welche größeren Änderungen anstehen oder kürzlich live gegangen sind.
- **Prozess-Hub**
- `docs/process/README.md` erklärt Struktur von `changes/`, `todo/` und `roadmap.md`.
- **Roadmap & Epics**
- `docs/process/roadmap.md` Überblick über aktive Epics (z.B. Security Hardening, PaddleMigration, StreamingUploads) und kürzlich abgeschlossene Themen.
- `docs/process/todo/security-hardening-epic.md` SecurityHardeningPlan mit Bezug zu Ops (Signierte URLs, AV/EXIF, MonitoringWorkstreams).
- PaddleThemen: `docs/process/todo/paddle-migration.md`, `docs/process/todo/paddle-catalog-sync.md`.
- **Changes & Retro-Notizen**
- `docs/process/changes/*` SessionNotizen, RefactorPläne und Lessons Learned (z.B. CheckoutRefactor, RegistrierungFixes).
Als Betreiber lohnt es sich, bei größeren Deployments kurz in `roadmap.md` und den passenden `changes/*` zu schauen, um Seiteneffekte zu antizipieren.
## 7. Tests, Qualität & Releases
Stabile Releases sind Grundvoraussetzung für ruhigen Betrieb:
- **E2E-Tests & Qualität**
- `docs/testing/e2e.md` beschreibt, welche EndtoEndTests existieren und wie sie als SmokeSuite für Releases verwendet werden können.
- **Release-Prozess (Entwurf)**
- `docs/ops/releases.md` Checkliste für CIPipelines, StagingDeploy, ProdRollout, SmokeTests und RollbackÜberlegungen.
## 8. Nächste Schritte für das Betriebshandbuch
Die folgenden Kapitel sind als eigenständige Runbooks angelegt und sollten mit der Zeit weiter gefüllt werden:
- **Rollen & On-Call-Handbuch**
- `docs/ops/oncall-roles.md` definiert PlatformOps, OnCall, Support und Produktrollen sowie Eskalationswege.
- **On-Call Cheat Sheet**
- `docs/ops/oncall-cheatsheet.md` schnelle Übersicht über wichtige Kommandos, Logs und Dashboards für Incidents.
- **Support & Eskalation**
- `docs/ops/support-escalation-guide.md` beschreibt, welche Informationen Support von Kunden einsammeln sollte, bevor an Ops eskaliert wird.
- **Backup & Restore / Disaster Recovery**
- `docs/ops/backup-restore.md` Was gesichert werden muss, RestoreSzenarien und DRÜbungen.
- **DSGVO & Compliance-Operationen**
- `docs/ops/compliance-dsgvo-ops.md` Praktische Abläufe für Auskunfts/Löschanfragen, Retention und Dokumentation.
- **Billing & Zahlungs-Operationen**
- `docs/ops/billing-ops.md` Umgang mit Zahlungsproblemen, WebhookFehlern und PaketInkonsistenzen.
- **Monitoring & Observability**
- `docs/ops/monitoring-observability.md` Welche Signale, Metriken und Alerts es geben sollte.
- **Architektur-Diagramme**
- `docs/ops/diagrams.md` MermaidDiagramme für MediaPipeline und Checkout/BillingFlow.
Das Betriebshandbuch bleibt damit ein lebendes Dokument. Neue Runbooks sollten unter `docs/ops/` entstehen und hier verlinkt werden, damit Operatoren einen klaren Einstiegspunkt behalten.