Migrera Jellyfin genom att först deklarera dess nuvarande beteende, sedan skydda beständigt tillstånd och därefter lägga till tjänster i reversibla, testade steg.
Den här proceduren är avsedd för en fungerande Docker-container som har vuxit ur ett odokumenterat kommando eller en allt-i-ett-layout. Målet är inte att maximera antalet containrar, utan att skapa en reproducerbar Jellyfin-tjänst med tydliga monteringar, nätverk, enheter, hälsosignaler, säkerhetskopiering och återställning. Håll medielagringen åtskild från applikationens tillstånd, behåll den gamla instansen tills acceptanstesterna är godkända och lägg bara till beroenden som hushållet kan hantera.
Definiera vad motståndskraften ska omfatta
Välj vilka fel den nya stacken ska kunna hantera: en kraschad Jellyfin-process, en felaktig image-uppdatering, förlorad konfigurationslagring, en proxy som inte är tillgänglig, en omstart av värden eller ett fullständigt bortfall av värden. Varje fel kräver en annan åtgärd. En omstartspolicy hjälper efter att en process avslutas; den återställer inte en borttagen volym och reparerar inte en mediamontering som inte går att nå.
Sätt mätbara återställningsmål för konfiguration, visningsstatus och tjänstens tillgänglighet. Bestäm hur mycket driftstopp och dataförlust som är acceptabelt, vem som får en avisering och vilka delar som kan återskapas. Den här avgränsningen hindrar en liten hemmaservermigrering från att dra in databaser, proxytjänster, instrumentpaneler och automatisering som inte minskar en identifierad risk.
Inventera den körande containern
Dokumentera exakt image-referens, kommando, miljövariabler, publicerade portar, nätverk, omstartspolicy, användar- och grupp-ID:n, enhetsmappningar, DNS-inställningar, etiketter, konfigurationsmontering, cachemontering, mediamonteringar och hemligheter. Dokumentera också ägarskap och behörigheter för varje värdsökväg. En skärmbild av ett containergränssnitt är inte en fullständig driftsättningsdokumentation.
Översätt den inventeringen till en Compose-definition utan att ändra beteendet. Metoden där man går igenom flagga för flagga i den här migreringsguiden från Docker run till Compose är värdefull eftersom den ser reproducerbarhet, inte fler funktioner, som det första delmålet. Lås den aktuella image-digesten eller versionen vid den första övergången.
Separera beständigt tillstånd, cache och medier
Mappa Jellyfins konfiguration och databastillstånd till en tydligt namngiven beständig sökväg. Placera flyktig cache och transkodningssegment på en separat sökväg så att de inte misstas för kritiska säkerhetskopior. Montera egna medier separat och skrivskyddat där arbetsflödet tillåter det; ett robust applikationslager ska inte sudda ut skyddsgränsen för ett stort mediebibliotek.
Stoppa eller pausa Jellyfin före den första kopieringen av ett konsekvent tillstånd, såvida inte säkerhetskopieringsmetoden garanterar applikationskonsistens. Dokumentera behörigheter, kontrollsummor eller filantal, tidpunkt för säkerhetskopieringen och återställningsplats. Utgå aldrig från att användardata finns i containeravbildningen: distributionsdefinitionen, hemligheterna, det beständiga tillståndet och mediareferenserna är separata återställningsunderlag.
Verifiera återställningen innan du ändrar nätverket
Skapa en tillfällig målmiljö för återställning, kopiera den skyddade applikationens tillstånd dit och starta den låsta Jellyfin-tjänsten på en alternativ port med skrivskyddad mediamontering. Verifiera användare, bibliotek, visningshistorik, metadata, insticksprogram och representativ uppspelning. Förstör den tillfälliga instansen och upprepa processen utifrån den nedskrivna proceduren om något steg byggde på att du skulle komma ihåg hur det gjordes.
En praktisk Compose-säkerhetskopia måste bevara distributionsfilen, miljöindata, volymer och eventuell applikationskonsistent databasexport. Den här guiden för säkerhetskopiering och uppgradering av Compose förklarar varför det inte räcker att bara kopiera en avbildning eller aktiva databasfiler för att kunna återställa allt.
Gå över till den deklarativa Jellyfin-tjänsten
Välj ett underhållsfönster, stoppa den gamla containern, ta en slutlig säkerhetskopia av ett konsekvent tillstånd och förhindra att den gamla instansen startar om automatiskt. Starta motsvarande Compose-tjänst med samma beständiga sökvägar och enhetsåtkomst. Behåll den offentliga adressen oförändrad först när kontroller av lokal hälsa och uppspelning har lyckats.
Validera containerns hälsa, loggar, bibliotekens synlighet, åtkomst till maskinvaruenheter, direktuppspelning, en representativ omkodning, hantering av undertexter och en omstart. Om tjänsten inte kan se en enhet eller monteringspunkt ska du avbryta och återställa den gamla containern i stället för att redigera flera lager under tidspress. Återställningen innebär den tidigare låsta avbildningen samt tillståndet före övergången och de ursprungliga startparametrarna.
Lägg till närliggande tjänster en gräns i taget
Inför en omvänd proxy endast när inkommande trafik utifrån behöver en separat hanterad väg. Lägg till övervakning när det finns en definierad hälsosignal och någon kommer att agera på den. Lägg till en larmkanal när omstartsloopar, lagringsbortfall eller säkerhetskopieringsfel måste uppmärksammas. Varje tjänst behöver en ansvarig, ett beslut om beständig lagring, ett nätverksområde, en uppdateringsmetod och en beskrivning av konsekvenserna vid fel.
Det arkitektoniska skälet till dessa gränser behandlas separat i ZimaSpaces förklaring av varför Jellyfin-distributioner använder tjänstestackar. Under migreringen bör du tillämpa den modellen försiktigt: gruppera komponenter som måste återställas tillsammans och undvik att uppspelningen blir beroende av valfria instrumentpaneler eller automatisering.
Gör hälsa, uppdateringar och säkerhetskopior synliga
Definiera hälsa utifrån användarens åtkomstväg, inte bara utifrån om en process körs. Kontrollera att Jellyfin svarar lokalt, att mediamonteringen finns, att den publika vägen når rätt tjänst när den är aktiverad och att en känd fil går att läsa. Skicka aviseringar om misslyckade kontroller till en kanal som operatören redan använder, med tillräcklig information för att skilja ett programfel från ett lagrings- eller nätverksavbrott.
Versionshantera Compose-definitionen, håll hemligheter utanför kodarkivet och granska ändringar i avbildningar före driftsättning. Automatisera säkerhetskopior först när en manuell återställning fungerar. Arbetsflödet i den här guiden för hälsokontroller och övervakning av Jellyfin visar hur deklarationer, kontroller, aviseringar och säkerhetskopior hänger ihop; behåll en godkännande- och återgångspunkt för uppdateringar som kan ändra lagrat tillstånd.
Öva på fel innan du avvecklar den gamla lösningen
Starta om värden, stoppa Jellyfin oväntat, gör proxyn otillgänglig, koppla från en testmediesökväg och återställ applikationens tillstånd till en ren, tillfällig plats. Bekräfta för varje övning att aviseringen, återställningsordningen och beteendet som användaren ser är som förväntat. Simulera inte destruktiv lagringsförlust när det är den enda kopian av medierna.
Dokumentera återställningstiden och eventuella manuella kommandon. En container som startar om snabbt men kommer tillbaka med ett tomt bibliotek har inte klarat tjänstetestet. En säkerhetskopia som finns men inte kan återställas inom den avsedda tidsramen har inte klarat återställningstestet. Åtgärda de här bristerna innan du lägger till fler tjänster.
Slutför migreringen med ett stabilt driftavtal
Avveckla den ursprungliga containern först när den nya Jellyfin-tjänsten klarar normal användning i hushållet, en planerad uppdatering, en omstart av värden och en övning i att återställa från säkerhetskopia. Arkivera de gamla parametrarna, den sista säkerhetskopian före övergången, den aktuella Compose-definitionen, metoden för att återställa hemligheter, monteringskartan och stegen för återgång enligt den valda lagringspolicyn.
Sluta bygga ut när stacken går att återskapa, övervaka, återställa och förstå för den som sköter den. Lägg bara till en nod eller ett beroende när ett uppmätt krav på kapacitet, tillit eller felisolering kräver det. Motståndskraft bygger på känt tillstånd och övad återställning, inte på antalet containrar i diagrammet.
Installation av NAS och server
Mer att läsa

Kan en server i studentrummet vara tillräckligt tyst för sömn, studier och videosamtal?
Ja - en server i studentrummet kan vara diskret om hårdvaran har låg strömförbrukning, vibrationer från lagringsenheterna dämpas, tunga jobb schemaläggs och ljudnivån testas...

Ett studenthomelabb som kan flytta från studentrummet till den första lägenheten
Gör studentens hemlabb portabelt genom att skilja tjänsterna från nätverket i det enskilda rummet, minimera hårdvaran, säkerhetskopiera data och öva på en smidig flytt.

Så delar du en hemmaserver med rumskamrater utan att dela konton eller privata filer
Ge varje rumskamrat en namngiven identitet, privat lagring och endast de delade roller som hen behöver; håll administration, säkerhetskopiering och avslut av åtkomst åtskilda.



