Så bygger du en återställningsbar Home Assistant-installation med containrar

Eva Wong är teknisk skribent och händig hemmabyggare på ZimaSpace. Som tekniknörd sedan barnsben med ett brinnande intresse för hemlabb och programvara med öppen källkodspecialiserar hon sig på att göra komplexa tekniska koncept begripliga genom praktiska, praktiska guider. Eva tycker att självhosting ska vara roligt, inte avskräckande. Genom sina handledningar hjälper hon communityn att göra hårdvaruinstallationer mindre mystiska, från att bygga sin första NAS till att bemästra Docker-containrar.

En återställningsbar Home Assistant-containerinstallation behandlar containeravbildningen som förbrukningsbar och tillståndet, konfigurationen, hemligheterna, enhetsmappningarna, nätverksbeteendet och återställningsproceduren som det verkliga systemet.

Målet är inte bara att få Docker att starta om Home Assistant. Målet är att återskapa tjänsten på en ren värd efter en misslyckad uppdatering, en förlorad disk eller ett byte av värd och inom en känd tidsram återställa samma användare, integrationer, automatiseringar, radiosystem, databastillstånd och nätverksidentitet.

Förvara beständigt tillstånd utanför containeravbildningen

Montera hela Home Assistant-konfigurationskatalogen till beständig lagring på värden och säkerhetskopiera allt i den, inklusive dolda kataloger. Migreringar som rapporterats i communityn misslyckas gång på gång när operatörer kopierar synliga YAML-filer men missar .storage, där UI-hanterade entiteter, integrationer och annat tillstånd sparas. Ett misslyckat containermigreringsförsök visar hur skalets globbmönster kan utelämna dessa dolda filer utan att det märks.

Förvara Compose-filen, mallen för miljövariabler, tidszon, nätverksläge, enhetsmappningar, sökvägar för bind-monteringar och eventuella nödvändiga gruppbehörigheter i versionshanterade infrastrukturanteckningar. Bygg inte in unikt hushållstillstånd i en anpassad avbildning om du inte också har en reproducerbar byggprocess och en separat återställningskopia.

ZimaSpaces fullständiga Home Assistant-servertopologi visar den övergripande modellen: håll kontrollsökvägen liten, separera beständigt tillstånd från masslagring och placera återställningslösningen utanför den aktiva felzonen innan du lägger till fler tjänsteberoenden.

Säkerhetskopiera tillståndet konsekvent, inte bara ofta

En säkerhetskopia är bara användbar om filerna motsvarar en sammanhängande tidpunkt. För en enkel lokal SQLite-installation är det lätt att förstå förfarandet att stoppa tjänsten under ett underhållsfönster och kopiera den beständiga konfigurationsvolymen. För en extern databas ska du säkerhetskopiera databasen med en metod som säkerställer databasens konsistens och dokumentera vilken säkerhetskopia av Home Assistant-konfigurationen den hör ihop med.

Ett aktuellt arbetsflöde för säkerhetskopiering av Docker-volymer betonar att återställa kopian i stället för att anta att ett lyckat arkiveringskommando innebär att den går att återställa. Förvara minst en generation utanför Docker-värden, så att en trasig SSD, ett filsystemfel eller en oavsiktlig rensning inte kan ta bort både tjänsten och säkerhetskopian.

Dokumentera säkerhetskopians ålder, programversion, databasversion, storlek, kontrollsumma, krypteringsnyckelns plats och stegen för återställning på en ren värd. Lagring utan återställningsmetadata skapar en hög med arkiv i stället för ett återställningssystem.

Modellera beroenden och beredskap i Compose

När Home Assistant är beroende av MQTT, en extern databas, en proxy eller någon annan lokal tjänst är containerstartordningen inte detsamma som att tjänsterna är redo. En process kan köras samtidigt som dess socket, schema eller hälsoslutpunkt fortfarande är otillgänglig. En guide till beredskap i Compose visar hur hälsokontroller och beroendevillkor minskar startkonflikter.

Ge varje beroende en egen hälsosignal och ett eget beteende vid fel. Home Assistant bör försöka igen när en databas håller på att starta, men en databas som upprepade gånger rapporterar ohälsa bör synas som ett fel i stället för att döljas bakom oändliga omstarter. Använd omstartspolicyer för att återhämta tjänsten efter processavslut; använd hälsokontroller och övervakning för att avgöra om tjänsten faktiskt är redo.

Håll valfria tjänster utanför den kritiska uppstartskedjan när det är möjligt. En trasig instrumentpanelsrenderare, ett medieverktyg eller en metrikexportör ska inte hålla automatiseringsstyrenheten offline.

Single board computer zimaboard2

Begränsa ändringar och bevara ett återställningspar

Före en uppdatering dokumenterar du den aktuella Home Assistant-avbildningstaggen, Compose-definitionen, databasversionen, konfigurationssäkerhetskopian och eventuella versioner av kompletterande tjänster som deltar i uppstarten. Ändra ett lager i taget. Om en uppdatering misslyckas kan det vara osäkert att endast återställa containeravbildningen efter att konfigurations- eller databasmigreringar har ändrat beständigt tillstånd.

Använd en stagingåterställning eller en klonad återställningskatalog för att testa målversionen före en större migrering av värden eller databasen. Bevara den tidigare fungerande avbildningen och tillståndsögonblicksbilden som skapades precis före uppdateringen som ett par. Ta bort paret först när den nya versionen klarar tester av automatiseringar, historik, radioenheter, instrumentpaneler, aviseringar och omstart.

En nyare artikel om Home Assistant Docker Compose-design behandlar nätverk, beständig lagring och säkerhetskopior som uttryckliga beslut i driftsättningen. Det är rätt modell för återställning: bevara tillståndet och driftsättningsdefinitionen som en ersättningscontainer behöver, inte själva utbytbara containerfilsystemet.

Bygg om på en ren värd innan du kallar driftsättningen återställningsbar

Välj en reservmaskin, virtuell maskin eller isolerad testkatalog och genomför återställningen utan att läsa filer från det aktiva containersystemet. Installera containermiljön, placera Compose-definitionen, återställ beständigt tillstånd, återskapa hemligheter, anslut radioenheter med stabila enhetssökvägar, starta nödvändiga beroenden och starta Home Assistant.

Kontrollera filägarskap och behörigheter innan du antar att en säkerhetskopia är felaktig. Skillnader i behörigheter efter migrering kan visa en ny konfigurationsskärm även när data finns där. Ett fall om återställning efter Docker-migrering visar hur behörigheter och dolt tillstånd var för sig kan hindra den återställda installationen från att visas.

  1. Logga in med det befintliga administratörskontot.
  2. Verifiera integrationer, entiteter, automatiseringar, instrumentpaneler och historik.
  3. Bekräfta ägarskapet över Zigbee, Z-Wave, Thread, Bluetooth eller annan radioteknik.
  4. Koppla bort internet och kör en kritisk lokal automatisering.
  5. Starta om värden och alla nödvändiga beroenden.
  6. Mät den totala återställningstiden från tom värd till fungerande styrning av hushållet.

Använd ett återställningsavtal för varje containeriserat beroende

Komponent Beständigt objekt Återställningsbevis
Home Assistant Fullständigt /config-tillstånd Befintligt konto och automatiseringar återställs
Databas Konsekvent databassäkerhetskopia Historikförfrågningar och Recorder-skrivningar lyckas
MQTT/mäklare Konfiguration, inloggningsuppgifter, bevarat tillstånd om det krävs Enheter återansluter och publicerar
Radioenheter Enhetsidentitet, nätverksnycklar, mappning Samordnaren återansluter utan ny parkoppling
Nätverk/proxy Portar, namn, certifikat, rutter Lokala och avsedda fjärrklienter återansluter

En återställningsbar driftsättning har en versionshanterad definition, tillstånd utanför värden, redo beroenden, ett återställningspar och en tidsatt återställning på en ren värd. När testerna har godkänts blir containrar vad de är tänkta att vara: utbytbara körningsenheter i stället för oersättliga husdjur.

Installation av NAS och server

Mer att läsa

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.