5.3 KiB
Vollständige Bare-Metal-Wiederherstellung
Dieses Dokument ist die verbindliche Anleitung für den Verlust der Athena- System-SSD. Wissen aus früheren Chats ist weder Voraussetzung noch gültige Dokumentation.
Was woher wiederkommt
| Bestandteil | Quelle beim Recovery |
|---|---|
| Plattform, Router, Profile, MCP-Builds und Patches | dieses Git-Repository, exakter Commit |
| Qwen-, Projektor- und Bildmodelle | dokumentierte URLs und SHA256 in config/install.env.example beziehungsweise der gesicherten Installationskonfiguration |
| Navidrome-MCP 2.2.0 samt llama.cpp-Schemafix | platform/mcp/Dockerfile.navidrome |
| OpenWebUI-Benutzer, Chats, Arbeitsbereichsmodelle, Filter und Verbindungen | verschlüsseltes Recovery-Bundle |
| Router-, WireGuard-, HA-, ARR-, Unraid- und Navidrome-Zugangsdaten | verschlüsseltes Recovery-Bundle |
| Last.fm API-Key | /etc/mike-ai/navidrome-mcp.env im verschlüsselten Bundle |
| Navidrome-Bibliothek und Benutzer | bleiben auf dem separaten Unraid-Server |
Das Last.fm Shared Secret wird nicht verwendet und daher nicht gesichert.
Modelldateien müssen nicht im Bundle liegen: Der Installer lädt sie erneut und
verifiziert jede Datei kryptografisch. Ein vorhandenes intaktes /data kann
den Download lediglich beschleunigen.
Einmalige Vorbereitung
Die geheime age-Identität muss außerhalb Athenas liegen, beispielsweise auf dem Mac und zusätzlich in einem Passwortmanager oder Offline-Datenträger:
age-keygen -o athena-recovery.agekey
age-keygen -y athena-recovery.agekey > athena-recovery.recipient
Nur die öffentliche Zeile aus athena-recovery.recipient wird auf Athena als
/etc/mike-ai/recovery.age-recipient mit Modus 0600 abgelegt. Die Datei
athena-recovery.agekey darf niemals auf Athena oder im Git liegen.
Sicherung erzeugen
Das Ziel muss nach einem SSD-Verlust noch existieren. Bevorzugt wird ein
gemountetes, ausschließlich für Backups beschreibbares Verzeichnis auf Unraid;
/data allein schützt nur vor dem Verlust der System-SSD, nicht vor Verlust
des gesamten Rechners.
sudo /opt/mike-ai/stack/platform/recovery/create-recovery-bundle.sh \
/PFAD/AUF/UNRAID/athena-recovery-$(date +%F).tar.age
Das Skript nimmt ausschließlich auf:
/etc/mike-aieinschließlich aller Fach-MCP-Secrets,/root/mike-ai-install.env,- das lokale
runraid-Binary, falls vorhanden, - das vollständige OpenWebUI-Datenvolume,
- Prüfsummen und den eingesetzten Git-Commit.
Der Klartext liegt nur in einem kurzlebigen root-only Verzeichnis unter
/tmp und wird beim Ende entfernt. Das Ergebnis ist vollständig mit age
verschlüsselt. Ohne erfolgreiche Ausgabe RECOVERY_BUNDLE_OK gilt die
Sicherung als fehlgeschlagen. Für ein konsistentes SQLite-Abbild verwendet das
Skript die Online-Backup-Schnittstelle der Datenbank. OpenWebUI, laufende
LLM-Profile und MCP-Dienste bleiben während der Sicherung verfügbar.
Wiederherstellung nach SSD-Verlust
- Debian 12 oder 13 installieren, Netzwerk herstellen und den administrativen Benutzer aus der Installationskonfiguration anlegen.
- Root-SSH-Zugriff mit dem vorhandenen Schlüssel herstellen.
- Dieses Repository klonen und exakt den in
METADATAdes Bundles genannten Commit auschecken. Normalerweise ist das der Commit, mit dem die Sicherung erzeugt wurde. - Recovery-Bundle und
athena-recovery.agekeytemporär auf den Host kopieren. - Einen Befehl ausführen:
sudo ./platform/recovery/restore-recovery-bundle.sh \
/root/athena-recovery-YYYY-MM-DD.tar.age \
/root/athena-recovery.agekey
Der Wiederhersteller:
- installiert nur die zum Entschlüsseln benötigten Basispakete,
- prüft Verschlüsselung, Archivstruktur, SHA256 und Git-Commit,
- stellt Installationskonfiguration und Secrets ohne Ausgabe ihrer Werte her,
- führt den idempotenten Hostinstaller aus,
- signalisiert einen notwendigen NVIDIA-/Netzwerk-Reboot mit Status 20/21; danach wird derselbe Befehl erneut ausgeführt,
- sichert den vorhandenen OpenWebUI-Stand als Rückfallarchiv und stellt dann das geprüfte OpenWebUI-Datenvolume wieder her,
- installiert die versionierten Modelleinstellungen, Filter und MCP- Verbindungen erneut,
- startet alle durch vorhandene Secret-Dateien freigegebenen Toolprofile,
- prüft Navidrome, sämtliche Werkzeug-Schemas, Last.fm und den OpenWebUI- Verbindungseintrag ohne Musik- oder Zugangsdaten auszugeben.
Erst die Ausgabe BARE_METAL_RECOVERY_OK bedeutet Erfolg.
Navidrome-Abnahmekriterium
Bei vorhandenem LASTFM_API_KEY müssen 45 Werkzeuge erscheinen, andernfalls
38. Playback-Werkzeuge dürfen auf Athena nicht auftauchen. Sämtliche Regex-
Patterns müssen für llama.cpp vollständig mit ^…$ verankert sein. Eine
öffentliche Last.fm-Trendabfrage muss funktionieren; Bibliothek, Playlists und
Hörverlauf werden während der Abnahme nicht gelesen.
Die Prüfung kann jederzeit wiederholt werden:
sudo /opt/mike-ai/stack/platform/mcp/verify-navidrome.sh
Regelmäßige Kontrolle
Mindestens nach jeder Änderung an OpenWebUI, WireGuard oder einem MCP-Secret wird ein neues Bundle erzeugt und außerhalb Athenas aufbewahrt. Quartalsweise wird ein Restore in einer isolierten Testinstallation durchgeführt. Eine Sicherung ohne getestete Entschlüsselung und Abnahmemarker ist nur eine Hoffnung, kein Backup.