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

3.9 KiB

Backup und Wiederherstellung

Athena

mike-ai-backup erzeugt alle fünf Stunden ein Archiv unter /data/docker-backups und behält 14 Tage. Gesichert werden:

  • /etc/mike-ai mit lokaler Konfiguration,
  • Router-Zustand und erzeugte Bilder,
  • der kanonische Stack als zusätzlicher Snapshot.

Nicht in das Archiv gehören die großen Modellgewichte unter /data/models. Sie bleiben auf der Daten-SSD oder werden anhand der gepinnten Angaben in config/install.env.example erneut geladen. Die Dashboard-Historie liegt dauerhaft unter /data/llama-dashboard.

Für FLUX.2 Klein 9B müssen vor einem erneuten Download die Bedingungen der beiden Black-Forest-Labs-Repositories im Hugging-Face-Konto akzeptiert sein. Außerdem muss die in HF_TOKEN_FILE angegebene Token-Datei wiederhergestellt oder neu erzeugt werden. Der Token selbst ist absichtlich nicht Bestandteil des Git-Repositories oder des Athena-Backups.

Portainers lokale Konfiguration liegt im Docker-Volume portainer_data und wird zusammen mit den übrigen nicht reproduzierbaren Volumes gesichert und wiederhergestellt.

Neuaufbau

  1. Debian installieren und /data wieder am bisherigen Pfad einhängen.

  2. Dieses Repository klonen.

  3. Installationsdatei ausfüllen und Installation starten:

    sudo ./install.sh --config /root/mike-ai-install.env
    
  4. Letztes Datenarchiv einspielen:

    sudo ./restore.sh --check /data/docker-backups/athena-latest.tar.gz
    sudo ./restore.sh /data/docker-backups/athena-latest.tar.gz
    sudo ./smoke-test.sh
    

--check liest das komplette gzip-Archiv und prüft dessen sichere /backup-Struktur sowie die benötigten Konfigurations- und Volume-Bäume, ohne Container oder Dateien zu verändern. Der reguläre Restore extrahiert und verwendet anschließend ausschließlich diesen einen geprüften Baum.

Das Restore verändert weder SSH noch LAN, WireGuard, Kernel, Partitionen oder Mounts.

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.