Restore OpenWebUI with its matching image

This commit is contained in:
Mikei386
2026-08-21 14:28:44 +02:00
parent 0c21aed7af
commit 934a4d8ced
3 changed files with 85 additions and 1 deletions
+14
View File
@@ -50,6 +50,7 @@ sudo ./platform/migration/restore-reference-backup.sh \
Das Skript prüft zuerst die Archiv-Hashes und übernimmt ausschließlich:
- die persistente OpenWebUI-Datenbank samt Einstellungen und Uploads,
- das zur Datenbank passende, gesicherte OpenWebUI-Container-Image,
- den dazugehörigen WebUI- und Router-Schlüssel,
- die freigegebenen HA-, ARR- und Unraid-Secrets,
- `runraid`, dessen privaten Schlüssel, Zertifikat und Known-Hosts-Datei.
@@ -59,5 +60,18 @@ Experimentdienste oder `.before-*`-Altstände. Vor dem Ersetzen des frischen
OpenWebUI-Volumes wird unter `/data/open-webui-before-restore-*.tar.gz` eine
Rückfallsicherung erstellt. Secret-Werte werden nicht ausgegeben.
OpenWebUI-Datenbanken sind nicht beliebig vor- oder rückwärtskompatibel. Das
Restore-Skript lädt deshalb bewusst das im Backup inventarisierte Original-
Image, versieht es lokal mit dem Tag `mike-ai/openwebui:reference` und trägt
diesen Tag sowohl in `stack.env` als auch – falls vorhanden – in
`/root/mike-ai-install.env` ein. Dadurch bleibt auch ein späterer, idempotenter
Installerlauf versionsgleich. Ein Upgrade auf eine neuere OpenWebUI-Version
erfolgt erst danach kontrolliert und mit einer eigenen Datenbanksicherung.
Falls ein älteres Image-Archiv trotz seines Namens das OpenWebUI-Image nicht
enthält, verwendet das Skript ausschließlich den im Docker-Inventar gesicherten
unveränderlichen Registry-Digest. Es fällt niemals auf `latest` zurück.
Da lokale Docker-Image-IDs beim Wiederherstellen von einem Registry-Digest
abweichen können, verifiziert es zusätzlich die gesicherte OCI-Build-Revision.
Der alte Host bleibt bis zum bestandenen Abnahmetest unverändert und dient nur
als Referenz. Es werden keine Caches oder unbekannten Altverzeichnisse kopiert.
+7
View File
@@ -185,6 +185,13 @@ experimentelle Altcontainer zurückzubringen. Der Leerhost-Probelauf wird auf
Athena praktisch protokolliert und seine Korrekturen fließen direkt in den
Installer zurück.
Ein Container-Backup gilt nur dann als vollständig, wenn nach `docker save`
nicht bloß das Archiv und seine Prüfsumme existieren: Ein isolierter
Probeimport muss außerdem jede erwartete Image-ID beziehungsweise den
unveränderlichen Registry-Digest und die OCI-Build-Revision bestätigen. Die
OpenWebUI-Datenbank wird immer zusammen mit genau diesem geprüften Image
gesichert und wiederhergestellt.
Jeder Schritt muss wiederholbar, einzeln prüfbar und bei Fehlern abbrechbar
sein. Ein fehlgeschlagener Schritt darf keinen halb aktivierten Dienst
hinterlassen.