Add guarded Linux deployment updater

This commit is contained in:
Nico committed 2026-10-24 18:37:13 +02:00
1 parent c4225ebf04
commit 33603db9bd
3 files changed
+214 -6

No files matched your search

+24 -6
View File
@@ -275,14 +275,32 @@ deren separate Serverschlüsseldatei unter `runtime/integration-secrets`. Dieses
Verzeichnis ist kein beliebig löschbarer Cache. Für eine einfache konsistente
Dateisicherung beide Dienste anhalten. Zugriffe auf Backups mit Secrets schützen.
Für ein bewusstes Codeupdate im root-eigenen Checkout beispielsweise:
Für reguläre Codeupdates steht ein Update-Skript bereit:
```sh
sudo systemctl stop viano-bug-analysis-worker.service viano-bug-analysis-api.service
cd /opt/viano-bug-analysis
sudo git pull --ff-only
sudo .venv/bin/python -m pip install '.[api,research]'
sudo systemctl start viano-bug-analysis-api.service viano-bug-analysis-worker.service
sudo python3 /opt/viano-bug-analysis/deploy/update.py
```
Eine Vorschau ohne Netzwerkzugriff oder Änderungen ist mit `--dry-run` möglich.
Das Skript benötigt root und einen sauberen, root-eigenen Checkout mit Tracking-Branch.
Es holt den Remote-Stand, prüft Fast-forward, stoppt zuerst den Worker kontrolliert
und danach die API, installiert das aktualisierte Paket in die vorhandene venv
und startet nur die zuvor aktiven Dienste. Deren Startprüfungen testen die
Bereitschaft ohne LLM-Aufruf. Vorher inaktive Dienste werden nicht aktiviert.
Auch bei identischem Commit wird das Paket erneut installiert, etwa nach einem
vorherigen manuellen Pull. Parallele Updates sind gesperrt.
Konfigurationen, Zugangsdaten, Fallakten, Apache, Source-Checkout und Capture-Worker
werden nicht verändert. Das Skript erstellt keine Datensicherung und führt keine
projektspezifischen Migrationen aus.
Scheitert Installation oder Dienststart, bleiben beide Dienste gestoppt. Es gibt
keinen automatischen Rollback von Code oder Daten. Nach Behebung der Ursache das
Paket erneut installieren (auch mit diesem Skript möglich) und die gewünschten
Dienste ausdrücklich starten. Falls das Skript im bisherigen Checkout noch fehlt,
einmal vorab den folgenden Befehl ausführen und danach das Skript starten:
```sh
sudo git -C /opt/viano-bug-analysis pull --ff-only
```
Releasehinweise und geänderte Konfigurations-/Unit-Vorlagen vorher prüfen.