Så bygger du en reproducerbar appstack med separat Compose-filer, hemligheter och beständiga data

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.

Bygg stacken kring tre separata tillgångar: versionshanterade Compose-definitioner, skyddade hemligheter och beständig data med en egen säkerhetskopierings- och återställningsväg.

På en hemserver eller server för ett mindre team bör operativsystemet och containrarna vara utbytbara. Compose-projektet beskriver önskade tjänster, hemlighetssystemet tillhandahåller inloggningsuppgifter vid driftsättning och namngivna datasökvägar innehåller tillstånd. Återställningen lyckas bara om dessa tre roller kan återförenas på en ren värd med hjälp av dokumentation som lagras utanför den havererade maskinen.

Definiera gränsen för återinstallation innan du skriver Compose

Betrakta värdoperativsystemet, containermiljön och nedladdade avbildningar som utbytbara. Hantera Compose-filer, anpassad konfiguration, inloggningsuppgifter, databaser, uppladdningar, certifikat och krypteringsnycklar utifrån deras faktiska roll vid återställning.

Skapa en inventeringsrad för varje tjänst: avbildning och version, portar, beroenden, hemlighetsnamn, beständiga sökvägar, säkerhetskopieringsmetod och återställningskontroll. Inventeringen synliggör tillstånd som annars döljer sig i ett containers filsystem.

Avbryt om något program lagrar data som inte kan återskapas i det skrivbara containlagret. Flytta den sökvägen till en uttrycklig volym eller bind mount innan du betraktar stacken som reproducerbar.

Versionshantera definitioner utan att spara hemligheter i kodförrådet

Lagra Compose-filer, icke-känslig konfiguration, hälsokontroller och driftsättningsanteckningar i versionshantering. Lås bildversioner eller digestar enligt din uppdateringspolicy, så att en nyinstallation inte i tysthet väljer en annan programversion.

Lägg inte riktiga lösenord, API-nycklar eller privata certifikat i Compose-filen eller kodförrådet. En praktisk genomgång av hur man håller Docker-hemligheter utanför källkoden förklarar varför inloggningsuppgifter behöver en separat distributionsväg.

Lägg in ett manifest över hemlighetsnamn med platshållare och förvara sedan värdena i en krypterad lösenordshanterare, krypterad fil eller hemlighetstjänst som kan återställas oberoende.

Ge beständig data tydliga ägare och sökvägar

Separera varje programs databas, användaruppladdningar, genererad cache och ersättningsbara miniatyrbilder. Säkerhetskopiera beständig data och dokumentera vilka cachefiler som kan återskapas, så att du slipper återställa onödigt mycket data.

Använd stabila, lättlästa sökvägar på värden eller noggrant dokumenterade namngivna volymer. Ange behörigheter med numeriska ID:n eller ett initieringssteg så att en ren värd inte är beroende av en gammal lokal användardatabas.

Samordna logiska dumpar eller programkonsistenta ögonblicksbilder för databaser i stället för att kopiera filer som används utan eftertanke. Lagra dumpfilen utanför programvolymen så att en trasig stack inte kan radera sin enda säkerhetskopia.

Utforma uppdateringar så att de kan återställas

Spara den aktuella Compose-revisionen, bildidentifierarna, konfigurationen och en ny återställningsbar kopia av ändrade data innan du uppdaterar. Att hämta en ny bild är ingen återställningsplan när programmet även migrerar databasen.

En guide till självhosting visar hur Compose samlar definitioner för flera containrar och driftskommandon på ett ställe. Använd det Compose-baserade distributionsmönstret och håll data och autentiseringsuppgifter utanför det utbytbara lagret.

Uppdatera en beroendegrupp i taget, kör hälso- och inloggningskontroller och anteckna sedan den senast fungerande revisionen. Om återställning kräver ett äldre databasformat ska du återställa till en separat sökväg och validera innan du växlar klienter.

Verifiera stacken på en ren återställningsvärd

Använd en tillfällig virtuell maskin eller en reservdator. Installera endast de dokumenterade förutsättningarna, klona definitionerna, återställ hemligheterna via den godkända kanalen, återställ data för ett program och starta beroendekedjan i rätt ordning.

Kontrollera mer än bara containrarnas status: logga in, läs en känd post, skapa och ta bort ett testobjekt, starta om värden och bekräfta att övervakningen av säkerhetskopior rapporterar den nya platsen. Dokumentera varje odokumenterad manuell korrigering som ett fel i byggprocessen.

Följ ZimaSpace-guiden för att separera Docker-hemligheter från Compose-filer när du väljer metod för överföring av autentiseringsuppgifter.

Slutlig regel för uppsättningen

Upplägget är godkänt när en ren värd kan återskapa tjänstdefinitioner, ta emot hemligheter utan att de exponeras i arkivet, återställa beständiga data och slutföra en validering på applikationsnivå. Utöka till orkestrering först när flera värdar behöver samma kontrollerade arbetsflöde.

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.