Przenieś Jellyfin, najpierw opisując jego bieżące działanie, następnie chroniąc trwały stan, a na końcu dodając usługi w odwracalnych, przetestowanych etapach.
Ta procedura dotyczy działającego kontenera Docker, który przerósł nieudokumentowane polecenie lub układ typu „wszystko w jednym”. Celem nie jest maksymalna liczba kontenerów, lecz odtwarzalna usługa Jellyfin z jawnymi punktami montowania, sieciami, urządzeniami, sygnałami kondycji, zakresem kopii zapasowych i możliwością wycofania zmian. Przechowuj media niezależnie od stanu aplikacji, zachowaj starą instancję do czasu pomyślnego przejścia testów akceptacyjnych i dodawaj tylko te zależności, którymi domownicy potrafią zarządzać.
Określ, co ma obejmować odporność
Wybierz awarie, które nowy stos powinien obsługiwać: awarię procesu Jellyfin, nieudaną aktualizację obrazu, utratę magazynu konfiguracji, niedostępność serwera proxy, ponowne uruchomienie hosta lub całkowitą utratę hosta. Każda z nich wymaga innego mechanizmu kontroli. Polityka automatycznego ponownego uruchamiania pomaga po zakończeniu procesu; nie odtworzy usuniętego woluminu ani nie naprawi niedostępnego montowania mediów.
Ustal mierzalne cele odzyskiwania dla konfiguracji, stanu oglądania i dostępności usługi. Zdecyduj, jaki czas przestoju i jaka utrata danych są akceptowalne, kto otrzyma alert oraz które elementy można odbudować. Taki zakres zapobiega temu, by niewielka migracja domowa gromadziła bazy danych, serwery proxy, pulpity i automatyzację, które nie zmniejszają żadnego zidentyfikowanego ryzyka.
Zinwentaryzuj działający kontener
Zapisz dokładne odwołanie do obrazu, polecenie, zmienne środowiskowe, opublikowane porty, sieci, politykę ponownego uruchamiania, identyfikatory użytkownika i grupy, mapowania urządzeń, ustawienia DNS, etykiety, montowanie konfiguracji, montowanie pamięci podręcznej, montowania mediów oraz sekrety. Zapisz również właścicieli i uprawnienia do każdej ścieżki na hoście. Zrzut ekranu interfejsu kontenera nie jest kompletną dokumentacją wdrożenia.
Przekształć ten spis w definicję Compose bez zmiany działania. Metoda przechodzenia krok po kroku przez poszczególne flagi w tym przewodniku migracji z Docker run do Compose jest wartościowa, ponieważ za pierwszy etap uznaje odtwarzalność, a nie rozszerzanie funkcji. Na potrzeby początkowego przełączenia przypnij skrót obrazu lub wersję aktualnie uruchomionego obrazu.
Oddziel trwały stan, pamięć podręczną i media
Przypisz konfigurację Jellyfin i stan bazy danych do wyraźnie nazwanej trwałej ścieżki. Umieść nietrwałą pamięć podręczną i fragmenty transkodowania w osobnej ścieżce, aby nie pomylić ich z krytycznymi danymi objętymi kopią zapasową. Montuj posiadane media niezależnie i w trybie tylko do odczytu, jeśli pozwala na to sposób pracy; odporna warstwa aplikacji nie powinna zacierać granicy ochrony dużej biblioteki multimediów.
Zatrzymaj Jellyfin lub wstrzymaj jego działanie przed pierwszym spójnym skopiowaniem stanu, chyba że metoda tworzenia kopii gwarantuje spójność aplikacji. Zapisz uprawnienia, sumy kontrolne lub liczbę plików, czas wykonania kopii oraz lokalizację przywracania. Nigdy nie zakładaj, że obraz kontenera zawiera dane użytkownika: definicja wdrożenia, sekrety, stan trwały i odwołania do mediów są osobnymi elementami potrzebnymi do odzyskania.
Sprawdź przywracanie przed zmianą sieci
Utwórz tymczasową lokalizację przywracania, skopiuj do niej chroniony stan aplikacji i uruchom przypiętą usługę Jellyfin na alternatywnym porcie, montując media w trybie tylko do odczytu. Sprawdź użytkowników, biblioteki, historię oglądania, metadane, wtyczki i odtwarzanie reprezentatywnych materiałów. Usuń tymczasową instancję i powtórz procedurę zgodnie z pisemną instrukcją, jeśli którykolwiek krok zależał od pamięci.
Praktyczna kopia zapasowa Compose musi zachowywać plik wdrożenia, dane wejściowe środowiska, woluminy oraz spójny dla aplikacji eksport bazy danych, jeśli jest potrzebny. Ten przewodnik po kopiach zapasowych i aktualizacjach Compose wyjaśnia, dlaczego skopiowanie wyłącznie obrazu lub plików aktywnej bazy danych nie stanowi kompletnej ścieżki odzyskiwania.
Przełącz się na deklaratywną usługę Jellyfin
Wybierz okno serwisowe, zatrzymaj stary kontener, wykonaj ostatnią spójną kopię stanu i uniemożliw automatyczne ponowne uruchomienie starej instancji. Uruchom równoważną usługę Compose z tymi samymi ścieżkami trwałymi i dostępem do urządzeń. Zachowaj niezmienioną trasę publiczną dopiero po pomyślnym przejściu lokalnych testów kondycji i odtwarzania.
Sprawdź kondycję kontenera, logi, widoczność biblioteki, dostęp do urządzeń sprzętowych, odtwarzanie bezpośrednie, jedno reprezentatywne transkodowanie, obsługę napisów i ponowne uruchomienie. Jeśli usługa nie widzi urządzenia lub montowania, zatrzymaj się i przywróć stary kontener zamiast pod presją edytować wiele warstw. Wycofanie zmian polega na użyciu poprzedniego przypiętego obrazu wraz ze stanem sprzed przełączenia i oryginalnymi parametrami uruchomienia.
Dodawaj sąsiednie usługi po jednej granicy naraz
Wprowadź serwer proxy tylko wtedy, gdy zdalny dostęp wymaga osobno zarządzanej trasy. Dodaj monitorowanie, gdy istnieje określony sygnał kondycji i ktoś będzie na niego reagować. Dodaj kanał alertów, gdy trzeba wykrywać pętle ponownych uruchomień, utratę magazynu lub nieudane kopie zapasowe. Każda usługa potrzebuje właściciela, decyzji dotyczącej stanu trwałego, zakresu sieci, metody aktualizacji oraz opisu skutków awarii.
Architektoniczne uzasadnienie tych granic omówiono osobno w wyjaśnieniu ZimaSpace dotyczącym wykorzystania stosów usług przez wdrożenia Jellyfin. Podczas migracji stosuj ten model zachowawczo: grupuj komponenty, które muszą odzyskiwać działanie razem, i unikaj uzależniania odtwarzania od opcjonalnych pulpitów lub automatyzacji.
Zapewnij obserwowalność kondycji, aktualizacji i kopii zapasowych
Definiuj kondycję na poziomie ścieżki użytkownika, a nie tylko jako działanie procesu. Sprawdzaj, czy Jellyfin odpowiada lokalnie, montowanie mediów jest dostępne, trasa publiczna prowadzi do właściwej usługi, gdy jest włączona, oraz czy można odczytać jeden znany plik. Kieruj nieudane kontrole do kanału powiadomień używanego już przez operatora, podając wystarczający kontekst, aby odróżnić awarię aplikacji od utraty magazynu lub sieci.
Wersjonuj definicję Compose, przechowuj sekrety poza repozytorium i przeglądaj zmiany obrazów przed wdrożeniem. Automatyzuj kopie zapasowe dopiero po pomyślnym ręcznym przywróceniu. Procedura opisana w tym przewodniku po kontrolach kondycji i monitorowaniu Jellyfin pokazuje, jak łączą się deklaracje, kontrole, alerty i kopie zapasowe; zachowaj punkt zatwierdzenia i możliwość wycofania zmian w przypadku aktualizacji, które mogą zmienić zapisany stan.
Przeprowadź ćwiczenia awaryjne przed wycofaniem starej ścieżki
Uruchom ponownie hosta, nieoczekiwanie zatrzymaj Jellyfin, wyłącz serwer proxy, odłącz testową ścieżkę mediów i przywróć stan aplikacji do czystej lokalizacji tymczasowej. Dla każdego ćwiczenia potwierdź oczekiwany alert, kolejność odzyskiwania i zachowanie widoczne dla użytkownika. Nie symuluj destrukcyjnej utraty magazynu na jedynej kopii mediów.
Zapisz czas odzyskiwania i wszelkie ręczne polecenia. Kontener, który szybko się uruchamia ponownie, ale wraca z pustą biblioteką, nie przeszedł testu usługi. Kopia zapasowa, która istnieje, lecz nie można jej przywrócić w docelowym czasie, nie przeszła testu odzyskiwania. Napraw te granice, zanim dodasz kolejne usługi.
Zakończ migrację stabilnym kontraktem operacyjnym
Wycofaj oryginalny kontener dopiero wtedy, gdy nowa usługa Jellyfin przetrwa normalne użytkowanie w domu, zaplanowaną aktualizację, ponowne uruchomienie hosta i próbę czystego przywracania. Zarchiwizuj stare parametry, końcową kopię zapasową sprzed przełączenia, bieżącą definicję Compose, metodę odzyskiwania sekretów, mapę montowań i kroki wycofania zmian zgodnie z wybraną polityką przechowywania.
Zakończ rozbudowę, gdy stos jest odtwarzalny, monitorowany, możliwy do odzyskania i zrozumiały dla operatora. Dodaj kolejny węzeł lub zależność tylko wtedy, gdy wymaga tego zmierzona potrzeba dotycząca wydajności, zaufania lub domeny awarii. Odporność wynika ze znanego stanu i przećwiczonego odzyskiwania, a nie z liczby kontenerów na schemacie.
Konfiguracja NAS i serwera
Więcej do przeczytania

Jak analiza i automatyzacja przypominające działanie AI zmieniają wymagania dotyczące pamięci masowej i mocy obliczeniowej Jellyfin
Automatyzacja i powiązana analiza AI dodają skanowanie, dane pochodne, obciążenie CPU/GPU, pamięć podręczną, przestrzeń roboczą oraz zadania w tle wykraczające poza zwykłe odtwarzanie w...

Jak zintegrować Jellyfin z siecią w małym mieszkaniu lub wynajmowanym lokalu
Zbuduj przyjazną najemcom sieć Jellyfin, opartą na stabilnej adresacji lokalnej, minimalnej liczbie przewodów, cichym sprzęcie, zdalnym dostępie uwzględniającym CGNAT oraz odwracalnych zmianach.

Ilu użytkowników i zadań w tle powinien obsługiwać jeden host Jellyfin?
Traktuj użytkowników Jellyfin i zadania w tle jako jedno wspólne obciążenie; pojemność kończy się, gdy opóźnienia odtwarzania, kolejki lub presja na zasoby zaczynają się...

