4.5 KiB
Rollback Guide - Homelab
Dieses Dokument beschreibt den sicheren Rueckweg im aktuellen GitOps-Betrieb.
Grundprinzip
Rollback bedeutet in diesem Setup:
- auf einen bekannten funktionierenden Git-Stand zurueckgehen
- den Zustand sauber nach Gitea bringen
- Komodo gezielt auf diesen Stand deployen lassen
master wird dabei nicht per push --force umgeschrieben, solange es keinen ausdruecklich abgestimmten Ausnahmefall gibt.
Standard-Rollback ueber Git
Bevorzugter Weg:
- den letzten funktionierenden Commit identifizieren
- lokal einen sauberen Ruecknahme-Commit erzeugen (
git revertoder gezielte Rueckaenderung) - nach Gitea pushen
- Komodo-Deploy und Funktion pruefen
Warum so:
- die Historie bleibt nachvollziehbar
- Webhooks und Team-Workflow bleiben stabil
- es gibt keinen verdeckten History-Rewrite auf
master
Rollback ueber Komodo
Komodo ist der operative Deploy-Consumer, nicht die Quelle der Wahrheit.
Vorgehen:
- Git-Stand in Gitea auf den gewuenschten Sollzustand bringen
- betroffenen Stack in Komodo oeffnen
- Redeploy auf Basis dieses Git-Stands ausloesen
- Logs, Health und Erreichbarkeit pruefen
Wichtig:
- kein manuelles Ueberschreiben im Komodo-Web-Editor
- wenn Komodo und Git abweichen, gewinnt Git
Ausnahmefall: harter Git-Rollback
Ein git reset --hard mit anschliessendem erzwungenem Push auf master ist kein Standardverfahren.
Das kommt nur in Frage, wenn:
- der Fall bewusst abgestimmt ist
- klar ist, welche Webhook-/Deploy-Seiteneffekte ausgeloest werden
- keine sauberere Ruecknahme ueber
git revertmehr sinnvoll ist
Borg / Backup-bezogener Rollback
Bei Problemen mit Borg UI oder Dump-Automatisierung:
- auf den letzten funktionierenden Git-Stand zurueckgehen
borg-uiueber Komodo redeployen- Persistenz unter
/mnt/user/appdata/borg-ui/und/mnt/user/backups/borg/dumps/nicht blind loeschen - Restore zuerst in einen Testpfad schreiben, nicht direkt in Produktivpfade
BentoPDF / Stirling-PDF Rollback
Bei Problemen mit BentoPDF:
- Git-Stand auf die letzte funktionierende Stirling-PDF-Compose zuruecknehmen oder gezielt
apps/bentopdfwieder durchapps/stirling-pdfersetzen - Commit + Push nach Gitea
- betroffenen Stack in Komodo redeployen
https://pdf.kaleschke.infopruefen
Die alte Stirling-PDF-Persistenz unter /mnt/user/appdata/stirling-pdf nicht loeschen, solange der BentoPDF-Ersatz nicht fachlich abgenommen ist.
Grafana / InfluxDB Rollback
Vor dem ersten produktiven Einsatz reicht es, den vorbereiteten Stack nicht zu deployen oder per Ruecknahme-Commit aus dem Repo zu entfernen.
Nach einem Deploy:
ops/grafana-influxdbin Komodo stoppen oder den letzten Git-Stand ohne diesen Stack deployen- Persistenz unter
/mnt/user/appdata/grafanaund/mnt/user/appdata/influxdb3unangetastet lassen - Secrets unter
/mnt/user/appdata/secrets/grafana_admin_password.txt,/mnt/user/appdata/secrets/grafana_influxdb_token.txtund/mnt/user/appdata/secrets/influxdb3_admin_token.jsonnur nach bewusstem Entscheid entfernen - Grafana-Domain und InfluxDB-Zugriff testen, bis klar ist, dass keine produktiven Dashboards oder Writer mehr davon abhaengen
Monitoring-Zielstack Rollback
Der Zielzustand ist monitoring/ als einziger Observability-Stack. Bei Problemen nach der Migration:
monitoringin Komodo stoppen oder auf den letzten funktionierenden Commit zurueckgehen- bei Bedarf die abgeloesten Altstaende
ops/lokiund/oderops/grafana-influxdbwieder starten - named volumes
prometheus_data,loki_data,promtail_positions,grafana_datasowie/mnt/user/appdata/influxdb3nicht blind loeschen - Secrets
monitoring_grafana_admin_password.txt,monitoring_grafana_influxdb_token.txtundinfluxdb3_admin_token.jsonnur nach bewusstem Entscheid entfernen - Home Assistant Writer erst wieder umstellen, wenn
curl -i http://192.168.178.58:8181/erwartbar401 Unauthorizedliefert - Grafana-Datasources
Prometheus,LokiundInfluxDB 3 Coretesten
Daten-Rollback
Bevorzugte Quellen:
- Borg-Restore
- erzeugte PostgreSQL-/MariaDB-Dumps
- bekannte Appdata-Snapshots
Beispiele:
cp -r /mnt/user/appdata/<service> /mnt/user/backup/
pg_dumpall > /mnt/user/backup/pg_dump_$(date +%Y%m%d).sql
Betriebsregeln
- immer nur eine aenderungsrelevante Massnahme gleichzeitig
- vor jedem Rollback pruefen, ob ein aktuelles Backup existiert
- nach jedem Rollback Funktion, Logs und Erreichbarkeit pruefen
- wenn etwas unklar ist: stoppen, Zustand analysieren, dann gezielt eingreifen