# 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 der bereitgestellten Checkouts, - die Volumes `router-images`, `router-state` und `portainer_data`. Der neue WebRTC-Sprachadapter liegt unter `/opt/mike-ai/stack/services/athena-realtime-voice`. Ein manueller Lauf der vorhandenen Backup-Software am 16. September 2026 um 15:02 Uhr hat ihn eingeschlossen: Im Archiv `athena-2026-09-16T13-02-56.tar.gz` wurden sowohl `compose.yaml` als auch `services/athena-realtime-voice/server.py` geprüft. Das OpenClaw-Plugin auf Unraid liegt außerhalb dieses Athena-Backups; seine Quelle ist im Git-Repository unter `integrations/openclaw-athena-talk` erfasst. Die produktiv installierte Version 1.3.0 liegt zusätzlich im persistenten OpenClaw-Appdata. Vor ihrer Installation wurde die bisherige Version als `/mnt/nvme-storage/appdata/OpenClaw/config/plugin-backups/athena-talk-1.2.1-before-streaming.tar.gz` gesichert. Für eine Neuinstallation ist der im Git dokumentierte Build mit `openclaw plugins install --force --accept-capabilities` zu installieren; eine Änderung an OpenClaw-Core-Dateien ist nicht erforderlich. Piper-Daten sind kein aktueller Sicherungsbestand. Modellgewichte unter `/data/models`, einschließlich Qwen3-ASR unter `/data/models/qwen3-asr-0.6b-q8`, gehören nicht zu diesen Backup-Mounts. Das frühere Whisper-Volume wurde am 25. September 2026 entfernt. Ein Backup ausschließlich auf `/data` schützt nicht vor einem Ausfall der Datenplatte. Das gilt auch für das reproduzierbare EmbeddingGemma-Gewicht unter `/data/models/embeddinggemma`; URL und SHA-256 stehen in `config/install.env.example`, sodass der Installer es erneut laden und prüfen kann. Auch die Qwen-Image-Gewichte und beide Prompt-Enhancer liegen unter `/data/models` und damit außerhalb des regulären Volume-Backups. Das Skript `scripts/prepare-qwen-image-21.sh` lädt sämtliche gepinnten Dateien anhand fester SHA-256-Prüfsummen erneut und legt Bildworker sowie Enhancer gestoppt an. Die verschlüsselten Notfallpakete über `athena-export-backup.timer` laufen ebenfalls im Fünf-Stunden-Takt; beim Abgleich war der Timer aktiv und der letzte Lauf am 16. September 2026 um 13:50 Uhr verzeichnet. Sie liegen unter `/data/emergency-backups`. Schutz vor Datenplattenausfall setzt eine außerhalb Athenas aufbewahrte Kopie voraus. Die lokale Rotation hält fünf verschlüsselte Generationen. Da ein Paket rund 46 GB umfasst, gibt das Exportscript bei bereits erreichter Aufbewahrungszahl vor dem Schreiben genau den ältesten Slot frei. Ohne diese Reihenfolge hätte der Lauf am 21. September bei nur noch 17 GB freiem Speicher die neue Datei nicht mehr vollständig schreiben können. Scheitert der neue Lauf danach, bleiben weiterhin vier gültige Generationen erhalten. Die externe Restic-Sicherung über `athena-disaster-backup.timer` ist derzeit nicht eingerichtet: Der Timer ist zwar aktiviert, aber `/etc/mike-ai/disaster-backup.env` fehlt. Bis ein externes Ziel konfiguriert und ein erfolgreicher Lauf geprüft 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 Die geprüften Quell- und Compose-Dateien liegen im Git; ein frischer Clone enthält jedoch keine Secrets, Modellgewichte, Trainingsdaten oder sonstigen persistenten Nutzerdaten. Die lokalen `/etc/mike-ai`-Werte und die Backup-Archive bleiben daher für eine vollständige Wiederherstellung nötig. Der Athena-Stack wurde beim Router-Audit am 20. September mit dem veröffentlichten Git-Stand synchronisiert; der separate Applio-Checkout bleibt unverändert. Siehe [Live-Stand](LIVE_STATE.md). 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 einen begrenzten Rückfall des Modellservers den aktuellen [Updatebericht](UPDATE_AUDIT_20260915.md) und die tatsächlich vorhandenen lokalen Images prüfen. Der [b10930-Bericht](LLAMA_B10930_UPDATE_20260912.md) beschreibt nur einen älteren Stand. ## 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:` 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: ```bash docker logs Hermes-Agent 2>&1 | grep cron-profile-root-fix docker exec Hermes-Agent hermes cron doctor ``` ## Kontrolle ```bash 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.