# AP11 – Betrieb | | | |---|---| | Status | in Arbeit (11a.1 erledigt); Schritte ab 11a.2 detailliert, warten auf Freigabe | | Aufwand | 0,5 PW (wir) + 1–1,5 PW (ITM-Entwickler) | | Zeitraum | KW 41–44 (Staging), KW 50–51 (Produktion), KW 3/2027 (Restore-Test) | | Meilenstein | M2 (Staging), M3 (Produktion), M4 (abgesichert) | | Freigabe | offen | ## Ziel Staging und Produktion laufen auf den Servern von ITM, werden reproduzierbar bereitgestellt, gesichert und überwacht. Ein Ausfall fällt auf, bevor BauIn ihn bemerkt. ## Umfang **Enthalten:** - **11a, wir:** - Server-Anforderungen - Vorlagen für Nginx, systemd und Cron - Deploy-Skript - Lebenszeichen- und Prüfbefehle - Backup-Skript - Betriebsdoku - **11b, ITM-Entwickler:** - Server aufsetzen, Domain und Zertifikat - Backup-Ziel, Überwachung - Restore-Test gemeinsam mit uns **Nicht enthalten:** Hochverfügbarkeit, mehrere Server. ## Voraussetzungen C10 (Ausstattung, Root-Zugang), B2 (Zugriff Internet/VPN), B3 (Domain, Mail), B5 und C10 (Backups), C12 (wer deployt). ## Entscheidungen | Nr. | Frage | Vorschlag | Entschieden | |---|---|---|---| | E11.1 | Deployment | Skript auf dem Server mit Versionsverzeichnissen (`releases/`, `current`), ausgelöst per SSH | offen | | E11.2 | Backup-Werkzeug | restic, verschlüsselt, Ziel von ITM | offen (B5) | | E11.3 | Alarmierung | E-Mail an dich und den ITM-Entwickler | offen | ## Schritte - [x] **11a.1** Server-Anforderungen `docs/server-anforderungen.md` - [ ] **11a.2** Vorlagen in `deploy/`: - Nginx-Server-Block, systemd-Units (Worker, Meilisearch), Cron-Zeile - Beispiel für `.env` ohne Werte - [ ] **11a.3** Deploy-Skript nach E11.1 mit Prüfungen (Migration, Caches, Neustart der Worker), zuerst gegen eine lokale Test-VM oder direkt auf Staging - [ ] **11a.4** Betriebsbefehle: - Lebenszeichen für Worker und Scheduler - Zählung fehlgeschlagener Jobs - Statusprüfung der KI-API (aus AP3) - Mail bei Problemen (E11.3) - [ ] **11b.1** Staging aufsetzen (ITM-Entwickler, KW 42–44), erstes Deployment gemeinsam - [ ] **11a.5** Backup-Skript nach E11.2 und Betriebsdoku `docs/betrieb.md`: - Deployment, Wiederherstellung, `APP_KEY` sicher aufbewahren - [ ] **11b.2** Produktion aufsetzen (KW 50–51) - [ ] **11a.6 / 11b.3** Restore-Test auf einem Ersatzsystem (KW 3), Protokoll in `docs/betrieb.md` ## Abnahmekriterien - Ein Deployment aus dem Gitea auf Staging klappt mit einem Befehl. - Ein absichtlich gestoppter Worker löst innerhalb von 10 Minuten eine Mail aus. - Der Restore-Test war erfolgreich und ist dokumentiert. ## Risiken - Antworten von ITM zu Zugang und Ausstattung kommen spät. Dann Staging per Bildschirmfreigabe gemeinsam aufsetzen.