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

Eva Wong ist die Technische Redakteurin und und leidenschaftliche Tüftlerin bei ZimaSpace. Eine lebenslange Geek mit einer Leidenschaft für Homelabs und Open-Source-Software, sie spezialisiert sich darauf, komplexe technische Konzepte in zugängliche, praktische Anleitungenzu übersetzen. Eva ist der Meinung, dass Self-Hosting Spaß machen und nicht einschüchternd sein sollte. Durch ihre Tutorials befähigt sie die Community, Hardware-Setups zu entmystifizieren, vom Bau ihres ersten NAS bis hin zur Beherrschung von Docker-Containern.

Eine wiederherstellbare Bereitstellung von Home Assistant als Container behandelt das Container-Image als austauschbar und den Zustand, die Konfiguration, Geheimnisse, Gerätez Zuordnungen, das Netzwerkverhalten und den Wiederherstellungsprozess als das eigentliche System.

Das Ziel besteht nicht lediglich darin, Docker Home Assistant neu starten zu lassen. Ziel ist es, den Dienst nach einem fehlgeschlagenen Update, einem verlorenen Datenträger oder dem Austausch des Hosts auf einem sauberen Host neu aufzubauen und innerhalb einer bekannten Zeit dieselben Benutzer, Integrationen, Automatisierungen, Funkgeräte, Datenbankzustände und die Netzwerkidentität wiederherzustellen.

Persistenten Zustand außerhalb des Container-Images speichern

Binde das vollständige Home-Assistant-Konfigurationsverzeichnis in persistenten Host-Speicher ein und sichere alles darin, einschließlich versteckter Verzeichnisse. Bei Migrationen aus der Community 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 werden. Ein Fehler bei der Containermigration zeigt, wie Shell-Globbing diese Punktdateien unbemerkt auslassen kann.

Halte die Compose-Datei, die Vorlage für Umgebungsvariablen, die Zeitzone, den Netzwerkmodus, Gerätez Zuordnungen, Bind-Mount-Pfade und alle erforderlichen Gruppenberechtigungen in versionierten Infrastruktur-Notizen fest. Speichere den individuellen Haushaltszustand nicht in einem benutzerdefinierten Image, sofern du nicht auch über einen reproduzierbaren Build und eine separate Wiederherstellungskopie verfügst.

Die vollständige Home-Assistant-Servertopologie von ZimaSpace liefert das übergeordnete Muster: Halte den Steuerungspfad klein, trenne persistenten Zustand vom Massenspeicher und platziere die Wiederherstellung außerhalb der aktiven Fehlerdomäne, bevor du weitere Dienstabhängigkeiten hinzufügst.

Zustand konsistent sichern, nicht nur häufig

Ein Backup ist nur dann nützlich, wenn seine Dateien einen konsistenten Zeitpunkt abbilden. Bei einer einfachen lokalen SQLite-Bereitstellung lässt sich das dauerhafte Konfigurationsvolume während eines Wartungsfensters stoppen und kopieren. Bei einer externen Datenbank solltest du die Datenbank mit einer datenbankkonsistenten Methode sichern und festhalten, zu welchem Home-Assistant-Konfigurationsbackup sie gehört.

Ein aktueller Workflow für Docker-Volume-Backups betont, dass man die Kopie wiederherstellen sollte, statt anzunehmen, ein erfolgreicher Archivierungsbefehl bedeute automatisch Wiederherstellbarkeit. Bewahre mindestens eine Generation außerhalb des Docker-Hosts auf, damit ein ausgefallenes SSD-Laufwerk, Dateisystem oder versehentliches Prune nicht sowohl Dienst als auch Backup löschen kann.

Dokumentiere das Alter des Backups, 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. Aufbewahrung ohne Wiederherstellungsmetadaten erzeugt lediglich 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, entspricht die Startreihenfolge der Container nicht der Dienstbereitschaft. Ein Prozess kann laufen, während sein Socket, Schema oder Health-Endpunkt noch nicht verfügbar ist. Ein Leitfaden zur Bereitschaft in Compose zeigt, wie Healthchecks und Abhängigkeitsbedingungen Startkonflikte reduzieren.

Gib jeder Abhängigkeit ein eigenes Gesundheitssignal und ein eigenes Fehlerverhalten. Home Assistant sollte eine gerade startende Datenbank erneut versuchen zu erreichen, aber eine wiederholt fehlerhafte Datenbank sollte als Problem sichtbar sein, statt durch endlose Neustarts verborgen zu werden. Verwende Neustartrichtlinien, um auf Prozessabbrüche zu reagieren, und Healthchecks sowie Monitoring, um zu entscheiden, ob der Dienst tatsächlich bereit ist.

Halte optionale Dienste möglichst außerhalb der kritischen Startkette. Ein defekter Dashboard-Renderer, ein Medientool oder ein Metrikexporter sollte den Automatisierungscontroller nicht offline halten.

-15% OFF

Änderungsgrenzen festlegen und ein Rollback-Paar bewahren

Dokumentiere vor einem Update das aktuelle Home-Assistant-Image-Tag, die Compose-Definition, die Datenbankversion, das Konfigurationsbackup und alle Versionen von Begleitdiensten, die am Start beteiligt sind. Ändere jeweils nur eine Ebene. Wenn ein Update fehlschlägt, kann ein Rollback allein auf das Container-Image unsicher sein, nachdem Konfigurations- oder Datenbankmigrationen den persistenten Zustand verändert haben.

Verwende eine Testwiederherstellung oder ein geklontes Wiederherstellungsverzeichnis, um die Zielversion vor einer größeren Host- oder Datenbankmigration zu testen. Bewahre das zuvor bekannte funktionierende Image und den unmittelbar vor dem Update erstellten Zustandsschnappschuss als Paar auf. Lösche dieses Paar erst, nachdem die neue Version Automatisierungen, Verlauf, Funkgeräte, Dashboards, Benachrichtigungen und einen Neustarttest bestanden hat.

Ein aktuellerer Artikel zum Design von Home Assistant mit Docker Compose behandelt Netzwerk, persistenten Speicher und Backups als ausdrückliche Bereitstellungsentscheidungen. Das ist das richtige Modell für ein Rollback: Bewahre den Zustand und die Bereitstellungsdefinition auf, die ein Ersatzcontainer benötigt, nicht das austauschbare Dateisystem des Containers selbst.

Auf einem sauberen Host neu aufbauen, bevor du die Bereitstellung als wiederherstellbar bezeichnest

Wähle einen Ersatzrechner, eine VM oder ein isoliertes Testverzeichnis und führe die Wiederherstellung durch, ohne Dateien aus dem laufenden Container-Dateisystem zu lesen. Installiere die Container-Laufzeitumgebung, lege die Compose-Definition ab, stelle den persistenten Zustand wieder her, erstelle Geheimnisse neu, verbinde Funkgeräte über stabile Gerätepfade, starte die erforderlichen Abhängigkeiten und starte Home Assistant.

Prüfe Dateieigentümer und Berechtigungen, bevor du ein fehlerhaftes Backup annimmst. Berechtigungsunterschiede nach einer Migration können einen neuen Einrichtungsbildschirm erzeugen, selbst wenn die Daten vorhanden sind. Ein Fall zur Wiederherstellung nach einer Docker-Migration zeigt, wie Berechtigungen und versteckter Zustand unabhängig voneinander verhindern können, dass die wiederhergestellte Installation angezeigt wird.

  1. Melde dich mit dem vorhandenen Administratorkonto an.
  2. Prüfe Integrationen, Entitäten, Automatisierungen, Dashboards und Verlauf.
  3. Bestätige die Zuordnung und Besitzverhältnisse von Zigbee, Z-Wave, Thread, Bluetooth oder anderen Funkgeräten.
  4. Trenne das Internet und führe eine kritische lokale Automatisierung aus.
  5. Starte den Host und jede erforderliche Abhängigkeit neu.
  6. Miss die gesamte Wiederherstellungszeit vom leeren Host bis zur funktionierenden Steuerung des Haushalts.

Für jede containerisierte Abhängigkeit einen Wiederherstellungsvertrag verwenden

Komponente Persistentes Objekt Nachweis der Wiederherstellung
Home Assistant Vollständiger Zustand von /config Vorhandenes Konto und Automatisierungen sind wieder verfügbar
Datenbank Konsistentes Datenbankbackup Verlaufsabfragen und Recorder-Schreibvorgänge funktionieren
MQTT/Broker Konfiguration, Zugangsdaten und erforderlicher beibehaltener Zustand Geräte verbinden sich erneut und veröffentlichen Daten
Funkgeräte Geräteidentität, Netzwerkschlüssel und Zuordnung Der Koordinator verbindet sich ohne erneutes Koppeln
Netzwerk/Proxy Ports, Namen, Zertifikate und Routen Lokale und vorgesehene Remote-Clients verbinden sich erneut

Eine wiederherstellbare Bereitstellung verfügt über eine versionierte Definition, Zustand außerhalb des Hosts, bereite Abhängigkeiten, ein Rollback-Paar und eine zeitlich erfasste Wiederherstellung auf einem sauberen Host. Sobald diese Tests bestanden sind, werden Container zu dem, 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.