Projekt serwera Jellyfin dla wspólnego gospodarstwa domowego

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Domowy serwer Jellyfin współdzielony przez gospodarstwo domowe powinien zapewniać przewidywalne odtwarzanie, oddzielne tożsamości użytkowników, ciche, stale dostępne miejsce na dane oraz możliwość odzyskania danych, zamiast skupiać się przede wszystkim na sprzęcie wybieranym pod kątem wyników testów.

Typowe gospodarstwo domowe łączy stałą dostępność z nierównomiernym obciążeniem: wieczornym oglądaniem telewizji, okazjonalnym korzystaniem z telefonu lub przeglądarki, skanowaniem nowych multimediów, kopiami zapasowymi i być może zdalnym strumieniowaniem. Zbuduj system wokół tych powtarzających się sytuacji. Serwer musi być wydajny tylko tam, gdzie rzeczywisty klient lub proces działający w tle przekracza określony limit; wszędzie indziej prostota i możliwość odzyskania danych są cenniejsze niż niewykorzystywany zapas mocy.

Zanim coś kupisz lub przeniesiesz, przygotuj mapę obciążenia gospodarstwa domowego

Wymień osoby korzystające z serwera, istotne pomieszczenia i urządzenia, pory, w których najczęściej może dochodzić do jednoczesnego oglądania, oraz procesy działające bez nadzoru. Uwzględnij skanowanie biblioteki, generowanie miniatur, kopie zapasowe, pobieranie i wszystkie inne kontenery współdzielące ten sam host.

Nie przeliczaj bezpośrednio „czterech osób” na „cztery transkodowania”. W jednym gospodarstwie mogą być cztery nowoczesne klienty, które niemal wszystko odtwarzają bezpośrednio; w innym jedna przeglądarka i jeden zdalny telewizor mogą regularnie wymuszać konwersję. Przydatną jednostką jest ścieżka odtwarzania tworzona przez każdą kombinację klienta i pliku.

Jako punkt odniesienia do wdrożenia strona wymagań sprzętowych Jellyfin przekłada oficjalne zalecenia na kontrole klienta, pamięci masowej, sieci i akceleracji, nie obiecując przy tym stałej liczby strumieni.

Utwórz profil dla każdej osoby, gdy różnią się stan lub uprawnienia

Utwórz oddzielne konta użytkowników, gdy domownicy potrzebują niezależnej historii oglądania, ulubionych, widoczności bibliotek, ograniczeń odtwarzania lub uprawnień dostępu zdalnego. Wspólne konto jest prostsze tylko wtedy, gdy wszyscy rzeczywiście chcą mieć identyczny stan i uprawnienia.

Oddziel dane uwierzytelniające administratora od codziennego odtwarzania. Konto używane do zmiany bibliotek, wtyczek, ustawień sieci i użytkowników nie musi być kontem zalogowanym na każdym telewizorze, zwłaszcza jeśli urządzenia te są współdzielone lub rzadko aktualizowane.

Testuj uprawnienia z poziomu klienta, a nie tylko w panelu serwera. Plan gospodarstwa domowego jest kompletny, gdy profil dziecka, zwykły profil osoby dorosłej i administrator widzą zamierzone biblioteki oraz funkcje na urządzeniach, z których faktycznie korzystają.

Zoptymalizuj ścieżkę odtwarzania w salonie pod kątem bezpośredniego odtwarzania

Klient w salonie jest często najczęściej używaną ścieżką, dlatego zadbaj o jej przewidywalność. W miarę możliwości wybierz stabilną sieć przewodową lub silną sieć lokalną, zgodne formaty multimediów oraz urządzenie odtwarzające obsługujące kodeki i formaty napisów powszechne w Twojej bibliotece.

Transkodowanie w Jellyfin zależy od klienta: serwer reaguje na profil możliwości i ograniczenia przesyłane przez odtwarzacz. Ulepszenie typowej ścieżki klienta może więc zmniejszyć obciążenie serwera bardziej niż dodanie ogólnej mocy obliczeniowej procesora.

Podłącz sam serwer do Ethernetu. Jeśli telewizor korzysta z sieci bezprzewodowej, w ścieżce pozostaje tylko jeden odcinek radiowy, zamiast narażać oba końce na konkurencję i zmienne warunki Wi-Fi.

-15% OFF

Rozdziel głośne zasoby i stan wrażliwy na opóźnienia

Serwery domowe przez większą część dnia pozostają bezczynne lub są lekko obciążone, dlatego znaczenie mają akustyka i zachowanie dysków w tle. Duże dyski HDD są opłacalne w przypadku multimediów, ale przeglądanie metadanych i bazy danych korzystają z niskich opóźnień SSD, dzięki czemu małe losowe odczyty nie muszą wybudzać każdego dysku pojemnościowego.

Jellyfin zaleca użycie SSD dla własnych plików, ponieważ są one odczytywane losowo, podczas gdy duże pliki multimedialne są przede wszystkim odczytywane sekwencyjnie. Przewodnik ZimaSpace dotyczący rozmieszczenia metadanych dodatkowo rozdziela bazy danych aplikacji, przenośne pliki dodatkowe, grafiki i możliwe do odtworzenia podglądy według ich znaczenia dla odzyskiwania danych.

Jeśli serwer stoi w pobliżu pomieszczeń mieszkalnych, zaplanuj intensywne importy i kopie zapasowe poza głównymi godzinami oglądania, zanim dodasz sprzęt. Zmiana pory wykonywania procesu może rozwiązać problemy z rywalizacją o zasoby i hałasem bez zmiany topologii.

Wybierz granicę dostępu zdalnego, którą gospodarstwo domowe rzeczywiście może utrzymywać

Jeśli nikt nie potrzebuje zdalnego strumieniowania, pozostaw Jellyfin w sieci lokalnej i usuń całą klasę problemów związanych z ekspozycją oraz planowaniem przepustowości. Jeśli zdalny dostęp jest wymagany, wybierz jedną świadomie zaplanowaną ścieżkę, na przykład VPN albo prawidłowo skonfigurowany odwrotny serwer proxy z HTTPS.

Przewodnik sieciowy Jellyfin stwierdza, że bezpośrednie przekierowanie portu do internetu nie jest zalecane, oraz opisuje podejścia oparte na odwrotnym serwerze proxy i VPN. Umożliwia także włączanie lub wyłączanie dostępu zdalnego dla poszczególnych użytkowników, co jest przydatne, gdy potrzebują go tylko niektórzy domownicy.

Udokumentuj zdalny adres URL, osobę odpowiedzialną za certyfikat lub VPN oraz procedurę odzyskiwania. Zdalna ścieżka, która działa tylko dlatego, że jedna osoba pamięta o nieudokumentowanej regule routera, nie jest trwałą usługą domową.

Stosuj prostą zasadę rozbudowy: dodawaj rolę tylko wtedy, gdy proces gospodarstwa domowego działa gorzej

Rozpocznij od jednego dobrze poznanego serwera, jeśli spełnia wymagania dotyczące mocy obliczeniowej, pamięci masowej i kopii zapasowych. Rozdziel role później, gdy pojawi się konkretny konflikt, taki jak ograniczenia rozbudowy dysków, okna tworzenia kopii zapasowych wpływające na odtwarzanie, potrzeba umieszczenia GPU lub konkurencja innej aplikacji z Jellyfin w godzinach szczytu.

Kompaktowy węzeł obliczeniowy, taki jak ZimaBoard 2, może pełnić rolę serwera aplikacji w rozdzielonym projekcie, podczas gdy większy system z wieloma kieszeniami może pełnić rolę pamięci masowej. Decyzja powinna wynikać z mapy obciążenia, a nie z założenia, że każde gospodarstwo domowe korzystające z Jellyfin potrzebuje dwóch urządzeń.

Na koniec przećwicz jeden scenariusz awarii: odtwórz stan Jellyfin, ponownie podłącz ścieżkę multimediów i sprawdź, czy zwykły użytkownik może wznowić odtwarzanie. Jeśli odzyskiwanie zakończy się powodzeniem, a szczytowe wykorzystanie przez gospodarstwo domowe pozostanie płynne, projekt osiągnął warunek zakończenia.

Konfiguracja NAS i serwera

Więcej do przeczytania

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.