Files
AI-Profile-Router/docs/RECOVERY.md
T

4.7 KiB
Raw Blame History

Backup und Wiederherstellung

Athena – geprüfter Sicherungsstand vom 16. September 2026

mike-ai-backup läuft und sichert im Fünf-Stunden-Takt nach /data/docker-backups (14 Tage Aufbewahrung). Die aktuell geprüften Mounts sichern:

  • /etc/mike-ai einschließlich lokaler Konfiguration und Secrets,
  • /opt/mike-ai einschließlich des bereitgestellten, teilweise uncommitteten Stacks,
  • die Volumes router-images, router-state und portainer_data.

Piper-Daten sind kein aktueller Sicherungsbestand. Modellgewichte unter /data/models und das reproduzierbare Whisper-Volume gehören nicht zu diesen Backup-Mounts. Ein Backup ausschließlich auf /data schützt nicht vor deren Ausfall.

Die verschlüsselten Notfallpakete über athena-export-backup.timer laufen ebenfalls im Fünf-Stunden-Takt; der letzte geprüfte Lauf war erfolgreich. Sie liegen unter /data/emergency-backups. Schutz vor Datenplattenausfall setzt eine außerhalb Athenas aufbewahrte Kopie voraus.

Die externe Restic-Sicherung über athena-disaster-backup.timer ist derzeit nicht eingerichtet: /etc/mike-ai/disaster-backup.env fehlt. Bis ein externes Ziel konfiguriert und die Sicherung aktiviert wurde, darf diese Ebene nicht als vorhandener Schutz eingeplant werden. Ein vollständiger Restore wurde in diesem Auftrag nicht ausgeführt.

Applio-Stimmen

Die verschlüsselten Notfallpakete enthalten die selbst trainierten Applio-Stimmen vollständig:

  • /data/voice/applio/logs: .pth-Gewichte, .index-Dateien und Trainings-Zwischenstände,
  • /data/voice/applio/datasets: verwendete Trainingsdaten,
  • /data/voice/applio/mikes-applio-ui: Auftragsdatenbank der Oberfläche,
  • /data/voice/applio/models/pretraineds/custom: benutzerdefinierte Pretrain-Dateien.

Erneut ladbare Predictor-, Embedder- und Standard-Pretrain-Caches bleiben ausgeschlossen. Die breite externe Restic-Sicherung umfasst, sobald sie konfiguriert und aktiviert ist, ohnehin das gesamte Verzeichnis /data/voice.

Wiederherstellung und Versionsgrenze

Der bereitgestellte Quellstand muss aus der Sicherung erhalten bleiben: Ein frischer Git-Clone enthält noch nicht sämtliche Live-Anpassungen und Spezialdienste, siehe Live-Stand. Vor einem Restore sind Archivinhalt, Aktualität und Kompatibilität der zugehörigen Restore-Skripte zu prüfen. Bestehende lokale Änderungen niemals blind überschreiben.

Die Host-Regel gilt unverändert: Athena niemals herunterfahren oder neu starten und ihre Erreichbarkeit nicht gefährden. Eine Neuinstallation ist keine normale Wartungsmaßnahme am erreichbaren Remote-Host. Für den begrenzten Rückfall des Modellservers stehen altes Image und gesicherte Startkonfiguration im b10930-Updatebericht.

Unraid

Hermes und die Fach-MCPs sind kein Bestandteil des Athena-Backups. Sie werden durch das vorhandene Unraid-Appdata-Backup gesichert:

  • /mnt/nvme-storage/appdata/Hermes-Agent
  • die jeweiligen Appdata-Verzeichnisse der MCP-Container
  • DockerMan-Templates unter /boot/config/plugins/dockerMan/templates-user/

Container-Images stammen aus den dokumentierten Registries beziehungsweise den eigenen Gitea-Repositories. Damit besteht die Wiederherstellung aus Appdata-Restore plus Neuerstellung über die jeweilige Template-XML.

Hermes Cron/Bot-Chat auf Unraid

Der offizielle Hermes-Build 0.21.0 mit Upstream-Stand 4b30b917 entfernt im Cron-Zustellprozess fälschlich HERMES_HOME. Bei einem Docker-Datenverzeichnis unter /opt/data findet deliver=bot-chat:<profil> dadurch vorhandene Profile nicht. Bis zur Übernahme des Upstream-Fixes bindet die Unraid-Vorlage dieses idempotente Startskript ein:

  • Host: /mnt/nvme-storage/appdata/Hermes-Agent/patches/025-cron-profile-root-fix
  • Container: /etc/cont-init.d/025-cron-profile-root-fix (read-only)
  • Quelle: platform/hermes/025-cron-profile-root-fix

Das Skript entfernt nur die bekannte fehlerhafte Zeile. Ist sie in einem neuen Image nicht mehr vorhanden, bleibt der Workaround automatisch wirkungslos. Es stellt außerdem /usr/local/bin/hermes wieder her, weil der offizielle Container den vom eigenen Doctor erwarteten CLI-Link derzeit nicht anlegt.

Nach einem Restore die Datei mit Modus 0755 ins Appdata kopieren, den Mount in der DockerMan-Vorlage kontrollieren und den Container neu erstellen. Prüfung:

docker logs Hermes-Agent 2>&1 | grep cron-profile-root-fix
docker exec Hermes-Agent hermes cron doctor

Kontrolle

docker compose --env-file /etc/mike-ai/stack.env ps
sudo ./restore.sh --check /data/docker-backups/athena-latest.tar.gz
curl -fsS http://192.168.1.212:8099/health
sudo ./smoke-test.sh

Anschließend einen Hermes-Chat, einen Router-Aufruf und je eine kleine read-only-Abfrage der benötigten MCPs testen.