So erstellen Sie eine wiederherstellbare Home-Assistant-Installation mit Containern

Eva Wong ist die technische Redakteurin und begeisterte Tüftlerin bei ZimaSpace. Als lebenslanger Geek mit einer Leidenschaft für Homelabs und Open-Source-Softwarehat sie sich darauf spezialisiert, komplexe technische Konzepte in verständliche, praxisnahe Anleitungenzu übersetzen. Eva ist überzeugt, dass Self-Hosting Spaß machen sollte und nicht einschüchternd sein darf. Mit ihren Tutorials hilft sie der Community dabei, Hardware-Setups zu durchschauen, vom Bau des ersten NAS bis zum sicheren Umgang mit Docker-Containern.

Bei einer wiederherstellbaren Home-Assistant-Container-Installation gilt das Container-Image als austauschbar; der Zustand, die Konfiguration, die Geheimnisse, die Gerätezuordnungen, das Netzwerkverhalten und das Wiederherstellungsverfahren bilden das eigentliche System.

Es geht nicht nur darum, Docker Home Assistant neu starten zu lassen. Ziel ist es, den Dienst nach einem fehlgeschlagenen Update, einem Festplattenverlust oder dem Austausch des Hosts auf einem sauberen Host neu aufzubauen und innerhalb einer festgelegten Zeit dieselben Benutzer, Integrationen, Automatisierungen, Funkgeräte, Datenbankzustände und Netzwerkidentität wiederherzustellen.

Persistenten Zustand außerhalb des Container-Images halten

Binden Sie das vollständige Home-Assistant-Konfigurationsverzeichnis in persistenten Host-Speicher ein und sichern Sie alles darin, einschließlich versteckter Verzeichnisse. Bei Community-Migrationen kommt es immer wieder zu Fehlern, wenn Betreiber sichtbare YAML-Dateien kopieren, aber .storage übersehen, wo UI-verwaltete Entitäten, Integrationen und andere Zustände gespeichert sind. Ein Fehler bei der Container-Migration zeigt, wie Shell-Globmuster diese Punktdateien unbemerkt auslassen können.

Halten Sie die Compose-Datei, die Vorlage für Umgebungsvariablen, die Zeitzone, den Netzwerkmodus, die Gerätezuordnungen, die Bind-Mount-Pfade und alle erforderlichen Gruppenberechtigungen in versionierten Infrastrukturhinweisen fest. Packen Sie keine individuellen Haushaltsdaten in ein benutzerdefiniertes Image, es sei denn, Sie verfügen auch über einen reproduzierbaren Build und eine separate Wiederherstellungskopie.

Die vollständige Home-Assistant-Servertopologie von ZimaSpace zeigt das umfassendere Muster: Halten Sie den Steuerungspfad klein, trennen Sie den persistenten Zustand vom Massenspeicher und legen Sie die Wiederherstellung außerhalb der aktiven Fehlerdomäne ab, bevor Sie weitere Dienstabhängigkeiten hinzufügen.

Zustand konsistent sichern, nicht nur häufig

Eine Sicherung ist nur dann nützlich, wenn ihre Dateien einen konsistenten Zeitpunkt widerspiegeln. Bei einer einfachen lokalen SQLite-Installation lässt sich eine Konfiguration, bei der der Dienst während eines Wartungsfensters gestoppt und das persistente Volume kopiert wird, leicht nachvollziehen. Bei einer externen Datenbank sollte die Datenbank mit einer konsistenten Methode gesichert und vermerkt werden, zu welcher Home-Assistant-Konfigurationssicherung sie gehört.

Ein aktueller Workflow zur Sicherung von Docker-Volumes betont, dass die Kopie wiederhergestellt werden sollte, statt davon auszugehen, dass ein erfolgreicher Archivierungsvorgang gleichbedeutend mit Wiederherstellbarkeit ist. Bewahren Sie mindestens eine Generation außerhalb des Docker-Hosts auf, damit ein ausgefallener SSD-Datenträger, ein Dateisystemfehler oder ein versehentliches Bereinigen nicht sowohl den Dienst als auch die Sicherung entfernen kann.

Erfassen Sie das Alter der Sicherung, die Anwendungsversion, die Datenbankversion, die Größe, die Prüfsumme, den Speicherort des Verschlüsselungsschlüssels und die Schritte zur Wiederherstellung auf einem sauberen Host. Eine Aufbewahrungsrichtlinie ohne Wiederherstellungsmetadaten ergibt einen Haufen Archive statt eines Wiederherstellungssystems.

Abhängigkeiten und Bereitschaft in Compose modellieren

Wenn Home Assistant von MQTT, einer externen Datenbank, einem Proxy oder einem anderen lokalen Dienst abhängt, ist die Startreihenfolge der Container nicht dasselbe wie die Dienstbereitschaft. Ein Prozess kann laufen, während sein Socket, Schema oder Health-Endpunkt noch nicht verfügbar ist. Ein Leitfaden zur Compose-Bereitschaft zeigt, wie Zustandsprüfungen und Abhängigkeitsbedingungen Startprobleme verringern.

Geben Sie jeder Abhängigkeit ein eigenes Gesundheitssignal und ein eigenes Verhalten im Fehlerfall. Home Assistant sollte es erneut versuchen, wenn eine Datenbank gerade startet. Eine wiederholt fehlerhafte Datenbank sollte jedoch als Störung erkennbar sein und nicht durch endlose Neustarts verborgen werden. Verwenden Sie Neustartrichtlinien, um sich von Prozessabbrüchen zu erholen, und verwenden Sie Zustandsprüfungen und Überwachung, um festzustellen, ob der Dienst tatsächlich bereit ist.

Halten Sie optionale Dienste nach Möglichkeit außerhalb der kritischen Startkette. Ein defekter Dashboard-Renderer, ein Medientool oder ein Metrikexporter sollte den Automatisierungscontroller nicht offline halten.

Single board computer zimaboard2

Änderungsgrenzen festlegen und ein Rollback-Paar aufbewahren

Erfassen Sie vor einem Update das aktuelle Home-Assistant-Image-Tag, die Compose-Definition, die Datenbankversion, die Konfigurationssicherung und alle Versionen von Zusatzdiensten, die am Startvorgang beteiligt sind. Ändern Sie immer nur eine Ebene auf einmal. Wenn ein Update fehlschlägt, kann es unsicher sein, nur das Container-Image zurückzusetzen, nachdem Konfigurations- oder Datenbankmigrationen den persistenten Zustand verändert haben.

Verwenden Sie eine Wiederherstellung in einer Staging-Umgebung oder ein geklontes Wiederherstellungsverzeichnis, um die Zielversion vor einer größeren Host- oder Datenbankmigration zu testen. Bewahren Sie das vorherige, nachweislich funktionierende Image und den unmittelbar vor dem Update erstellten Zustands-Snapshot als Paar auf. Löschen Sie dieses Paar erst, wenn die neue Version Automatisierungen, Verlauf, Funkgeräte, Dashboards, Benachrichtigungen und einen Neustarttest besteht.

Ein aktuellerer Artikel zum Home Assistant Docker Compose-Design behandelt Netzwerke, persistenten Speicher und Sicherungen als ausdrückliche Entscheidungen bei der Bereitstellung. Das ist das richtige Modell für ein Rollback: Bewahren Sie den Zustand und die Bereitstellungsdefinition auf, die ein Ersatzcontainer benötigt, nicht das vergängliche Container-Dateisystem selbst.

Stellen Sie die Bereitstellung auf einem sauberen Host wieder her, bevor Sie sie als wiederherstellbar bezeichnen

Wählen Sie einen Ersatzrechner, eine VM oder ein isoliertes Testverzeichnis und führen Sie die Wiederherstellung durch, ohne Dateien aus dem Dateisystem des laufenden Containers zu lesen. Installieren Sie die Container-Laufzeitumgebung, legen Sie die Compose-Definition ab, stellen Sie den persistenten Zustand wieder her, erstellen Sie Geheimnisse neu, schließen Sie Funkgeräte über stabile Gerätepfade an, starten Sie die erforderlichen Abhängigkeiten und starten Sie Home Assistant.

Überprüfen Sie Dateieigentümer und Berechtigungen, bevor Sie von einer fehlerhaften Sicherung ausgehen. Berechtigungsunterschiede nach der Migration können einen neuen Einrichtungsbildschirm verursachen, obwohl die Daten vorhanden sind. Ein Fall zur Wiederherstellung nach einer Docker-Migration zeigt, wie Berechtigungen und verborgener Zustand unabhängig voneinander verhindern können, dass die wiederhergestellte Installation angezeigt wird.

  1. Melden Sie sich mit dem vorhandenen Administratorkonto an.
  2. Überprüfen Sie Integrationen, Entitäten, Automatisierungen, Dashboards und den Verlauf.
  3. Prüfen Sie die Zuständigkeit für Zigbee, Z-Wave, Thread, Bluetooth oder andere Funkprotokolle.
  4. Trennen Sie die Internetverbindung und führen Sie eine wichtige lokale Automatisierung aus.
  5. Starten Sie den Host und alle erforderlichen Abhängigkeiten neu.
  6. Messen Sie die gesamte Wiederherstellungszeit vom leeren Host bis zur funktionierenden Steuerung im Haushalt.

Verwenden Sie für jede containerisierte Abhängigkeit einen Wiederherstellungsvertrag

Komponente Persistentes Objekt Wiederherstellungsnachweis
Home Assistant Vollständiger /config-Zustand Vorhandenes Konto und Automatisierungen werden wiederhergestellt
Datenbank Konsistente Datenbanksicherung Verlaufsabfragen und Recorder-Schreibvorgänge funktionieren
MQTT/Broker Konfiguration, Zugangsdaten, beibehaltener Zustand, falls erforderlich Geräte verbinden sich erneut und veröffentlichen Daten
Funkgeräte Geräteidentität, Netzwerkschlüssel, Zuordnung Koordinator verbindet sich ohne erneutes Pairing
Netzwerk/Proxy Ports, Namen, Zertifikate, Routen Lokale und vorgesehene Remote-Clients verbinden sich erneut

Eine wiederherstellbare Bereitstellung hat eine versionierte Definition, einen extern gespeicherten Zustand, bereite Abhängigkeiten, ein Rollback-Paar und eine zeitlich erfasste Wiederherstellung auf einem sauberen Host. Sobald diese Tests bestanden sind, sind Container das, was sie sein sollen: austauschbare Laufzeiteinheiten statt unersetzlicher Haustiere.

NAS- und Servereinrichtung

Mehr zum Lesen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.