Een herstelbare Home Assistant-implementatie met containers bouwen

Eva Wong is de technisch schrijver en vaste knutselaar bij ZimaSpace. Als levenslange geek met een passie voor homelabs en open-sourcesoftwareis ze gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva vindt dat self-hosting leuk moet zijn en niet intimiderend. Met haar tutorials helpt ze de community om hardware-installaties te doorgronden, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Bij een herstelbare Home Assistant-containerimplementatie is de containerimage wegwerpmateriaal; de gegevens, configuratie, geheimen, apparaatkoppelingen, netwerkwerking en herstelprocedure vormen het echte systeem.

Het doel is niet alleen Docker Home Assistant opnieuw te laten starten. Het doel is de service opnieuw op te bouwen op een schone host na een mislukte update, een verloren schijf of de vervanging van de host, en binnen een bekende tijd dezelfde gebruikers, integraties, automatiseringen, radio's, databasestatus en netwerkidentiteit te herstellen.

Bewaar permanente gegevens buiten de containerimage

Koppel de volledige configuratiemap van Home Assistant aan permanente opslag op de host en maak een back-up van alles wat erin staat, inclusief verborgen mappen. Migraties binnen de community mislukken herhaaldelijk wanneer beheerders zichtbare YAML-bestanden kopiรซren maar .storage missen, waar door de gebruikersinterface beheerde entiteiten, integraties en andere gegevens worden bewaard. Een mislukte containermigratie laat zien hoe shell-globbing die verborgen bestanden ongemerkt kan overslaan.

Leg het Compose-bestand, de sjabloon voor omgevingsvariabelen, de tijdzone, de netwerkmodus, apparaatkoppelingen, bind-mountpaden en eventuele vereiste groepsmachtigingen vast in geversioneerde infrastructuurnotities. Bak unieke huishoudelijke gegevens niet in een aangepaste image in, tenzij je ook een reproduceerbare build en een afzonderlijke herstelkopie hebt.

De complete Home Assistant-servertopologie van ZimaSpace biedt het bredere patroon: houd het controlepad klein, scheid permanente gegevens van bulkopslag en plaats herstel buiten het actieve foutdomein voordat je meer serviceafhankelijkheden toevoegt.

Maak consistente back-ups, niet alleen frequente

Een back-up is alleen nuttig als de bestanden een samenhangend momentopname weergeven. Bij een eenvoudige lokale SQLite-installatie is het makkelijk te begrijpen: stop de service tijdens een onderhoudsvenster en kopieer het permanente configuratievolume. Maak bij een externe database een back-up met een databaseconsistente methode en noteer bij welke back-up van de Home Assistant-configuratie deze hoort.

Een recente workflow voor back-ups van Docker-volumes benadrukt dat je de kopie moet herstellen in plaats van aan te nemen dat een geslaagde archiefopdracht betekent dat herstel mogelijk is. Bewaar minstens รฉรฉn generatie buiten de Docker-host, zodat een defecte SSD, bestandssysteem of onbedoelde opschoning niet zowel de service als de back-up kan verwijderen.

Leg de ouderdom van de back-up, toepassingsversie, databaseversie, grootte, controlesom, locatie van de encryptiesleutel en de stappen voor herstel op een schone host vast. Bewaren zonder herstelmetadata levert een stapel archieven op in plaats van een herstelsysteem.

Afhankelijkheden en gereedheid modelleren in Compose

Wanneer Home Assistant afhankelijk is van MQTT, een externe database, een proxy of een andere lokale service, betekent de startvolgorde van containers niet dat de services gereed zijn. Een proces kan actief zijn terwijl de socket, het schema of het gezondheidseindpunt nog niet beschikbaar is. Een Compose-gids voor gereedheid laat zien hoe statuscontroles en afhankelijkheidsvoorwaarden opstartproblemen helpen beperken.

Geef elke afhankelijkheid een eigen statussignaal en gedrag bij storingen. Home Assistant moet een database die aan het opstarten is opnieuw proberen te bereiken, maar een database die herhaaldelijk ongezond is, moet zichtbaar zijn als storing en niet verborgen blijven achter eindeloze herstarts. Gebruik herstartbeleid om te herstellen van procesbeรซindigingen; gebruik statuscontroles en monitoring om te bepalen of de service daadwerkelijk gereed is.

Houd optionele services waar mogelijk buiten de kritieke opstartketen. Een defecte dashboardrenderer, mediatool of metriekexporteur mag de automatiseringscontroller niet offline houden.

Single board computer zimaboard2

Beperk wijzigingsgrenzen en bewaar een terugrolpaar

Leg vรณรณr een update de huidige Home Assistant-imagetag, Compose-definitie, databaseversie, configuratieback-up en versies van eventuele aanvullende services die betrokken zijn bij het opstarten vast. Wijzig รฉรฉn laag tegelijk. Als een update mislukt, kan alleen de containerimage terugzetten onveilig zijn nadat migraties van de configuratie of database de persistente status hebben gewijzigd.

Gebruik een stagingherstel of een gekloonde herstelmap om de doelversie te testen vรณรณr een grote migratie van de host of database. Bewaar de vorige bekende goede image samen met de momentopname van de status die direct vรณรณr de update is gemaakt. Verwijder dit paar pas nadat de nieuwe versie automatiseringen, geschiedenis, radio's, dashboards, meldingen en een herstarttest heeft doorstaan.

Een recenter artikel over het ontwerp van Home Assistant Docker Compose behandelt netwerken, persistente opslag en back-ups als expliciete deploymentkeuzes. Dat is het juiste model voor rollback: behoud de status en deploymentdefinitie die een vervangende container nodig heeft, niet het wegwerpbare bestandssysteem van de container zelf.

Bouw opnieuw op een schone host voordat je de deployment herstelbaar noemt

Kies een reservemachine, VM of geรฏsoleerde testmap en voer het herstel uit zonder bestanden van het bestandssysteem van de live container te lezen. Installeer de container-runtime, plaats de Compose-definitie, herstel de persistente status, maak geheimen opnieuw aan, koppel radio's met stabiele apparaatpaden, start de vereiste afhankelijkheden op en start Home Assistant.

Controleer bestandseigenaarschap en machtigingen voordat je uitgaat van een slechte back-up. Verschillen in machtigingen na een migratie kunnen een nieuw installatiescherm veroorzaken, zelfs als de gegevens aanwezig zijn. Een herstelgeval bij een Docker-migratie laat zien hoe machtigingen en verborgen status er onafhankelijk van elkaar voor kunnen zorgen dat de herstelde installatie niet verschijnt.

  1. Meld je aan met het bestaande beheerdersaccount.
  2. Controleer integraties, entiteiten, automatiseringen, dashboards en geschiedenis.
  3. Controleer het eigenaarschap van Zigbee, Z-Wave, Thread, Bluetooth of andere radio's.
  4. Verbreek de internetverbinding en voer een kritieke lokale automatisering uit.
  5. Herstart de host en alle vereiste afhankelijkheden.
  6. Meet de totale hersteltijd vanaf een lege host tot de huishoudelijke bediening weer werkt.

Gebruik voor elke gecontaineriseerde afhankelijkheid een herstelcontract

Component Persistent object Herstelbewijs
Home Assistant Volledige status van /config Bestaand account en automatiseringen zijn terug
Database Consistente databaseback-up Geschiedenisopvragingen en Recorder-schrijfacties slagen
MQTT/broker Configuratie, inloggegevens, behouden status indien vereist Apparaten maken opnieuw verbinding en publiceren
Radio's Apparaatidentiteit, netwerksleutels, mapping De coรถrdinator maakt opnieuw verbinding zonder opnieuw te koppelen
Netwerk/proxy Poorten, namen, certificaten, routes Lokale en beoogde externe clients maken opnieuw verbinding

Een herstelbare deployment heeft een versiebeheerdefinitie, statusopslag buiten de host, gereedheid van afhankelijkheden, een rollback-paar en een getimede hersteltest op een schone host. Zodra die tests slagen, zijn containers wat ze horen te zijn: vervangbare runtime-eenheden in plaats van onvervangbare huisdieren.

NAS- en serverconfiguratie

Meer om te lezen

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.