Jellyfin na VPS: instalacja własnego serwera multimediów

6 min czytania
Tropic
Jellyfin na VPS: instalacja własnego serwera multimediów

Language: pl

Jellyfin na VPS: jak utworzyć własny serwer multimediów

Folder pełen filmów rzadko przypomina wygodną bibliotekę multimediów: niespójne nazwy plików, osobne napisy i ręczne wyszukiwanie właściwego odcinka szybko utrudniają korzystanie. Jellyfin zamienia takie archiwum w osobistą usługę streamingową z plakatami, opisami, profilami użytkowników i zapamiętywaniem miejsca odtwarzania.

Jellyfin nie sprzedaje jednak subskrypcji ani nie udostępnia gotowego katalogu treści. Działa z własnymi plikami i może działać na komputerze domowym, serwerze NAS lub VPS. Poniżej omawiamy jego funkcje, wymagania serwera oraz instalację na Ubuntu z domeną i HTTPS.

Czym jest Jellyfin i do czego może się przydać

Jellyfin to bezpłatny serwer multimediów o otwartym kodzie źródłowym. Serwer indeksuje filmy, seriale, muzykę, zdjęcia i inne treści, a aplikacje klienckie odtwarzają je na telefonie, komputerze lub telewizorze.

Po przeskanowaniu folderów Jellyfin pobiera plakaty i opisy, porządkuje seriale według sezonów, zapamiętuje postęp odtwarzania i wyświetla sekcję „Kontynuuj oglądanie”. Możesz utworzyć osobne profile lokalne dla członków rodziny, ograniczyć dostęp do bibliotek i skonfigurować kontrolę rodzicielską. Quick Connect pozwala zalogować się na telewizorze za pomocą krótkiego kodu zamiast wpisywania długiego hasła.

Aplikacje klienckie są dostępne na Androida, iOS, Android TV, Roku, webOS, Tizen, Xbox oraz komputery stacjonarne. Jellyfin oferuje również interfejs webowy i integrację z Kodi.

Jellyfin obsługuje także muzykę, IPTV, tunery telewizyjne i nagrywanie telewizji na żywo. SyncPlay synchronizuje odtwarzanie dla wielu użytkowników, a wtyczki dodają napisy, nowe źródła metadanych i integracje.

Jellyfin samodzielnie nie wyszukuje ani nie pobiera filmów. Porządkuje i transmituje wyłącznie treści, które właściciel serwera już posiada.

Jellyfin a Plex: najważniejsze różnice

Oba rozwiązania zamieniają lokalną kolekcję w usługę multimedialną, ale opierają się na różnych modelach.

ParametrJellyfinPlex
Kod źródłowyOtwarte źródłoWłasnościowy
Funkcje premiumSerwer i oficjalne aplikacje nie mają płatnego poziomuNiektóre funkcje zależą od planu subskrypcji
Centralne kontoNie jest wymaganeWykorzystuje ekosystem dostawcy
Dostęp zdalnyWłaściciel konfiguruje domenę, reverse proxy lub VPNUdostępnia więcej gotowych mechanizmów
Kontrola nad danymiMaksymalnaCzęść infrastruktury jest kontrolowana przez dostawcę

Użytkownicy wybierają Jellyfin ze względu na niezależność, prywatność i brak subskrypcji. Plex może być wygodniejszy, gdy najważniejsza jest możliwie prosta konfiguracja oraz konsekwentnie dopracowane aplikacje na wszystkich urządzeniach.

Direct Play czy transkodowanie: co obciąża serwer

Wydajność Jellyfin zależy mniej od rozmiaru biblioteki niż od sposobu odtwarzania.

TrybCo się dziejeObciążenie
Direct PlaySerwer wysyła oryginalny plikNiskie
Direct StreamZmieniany jest kontener lub pojedyncza ścieżkaNiskie lub średnie
TranskodowanieKodek, rozdzielczość lub bitrate są zmieniane w locieWysokie

Jeśli telewizor obsługuje kodek pliku, dźwięk i napisy, serwer wykorzystuje niemal wcale procesora. Problemy zaczynają się, gdy klient nie radzi sobie z formatem, połączenie wymaga niższego bitrate albo napisy trzeba wtopić w obraz. Jellyfin uruchamia wtedy FFmpeg i transkoduje wideo w czasie rzeczywistym.

Szczególnie wymagające są materiały 4K, HEVC, HDR oraz konwersja HDR do SDR. Zwykły VPS bez procesora graficznego może sobie nie poradzić, nawet jeśli ma wiele wirtualnych rdzeni CPU. Zgodne formaty i Direct Play mogą więc przynieść większe oszczędności niż przejście na wyższy plan serwera.

Jakiego serwera potrzebuje Jellyfin

Oficjalna rekomendacja dla typowej instalacji to około 8 GB RAM. Na Linuksie bez interfejsu graficznego mały serwer może działać z 4 GB. Potrzebny jest szybki dysk na system operacyjny, bazę danych, obrazy, cache i pliki tymczasowe; biblioteka multimediów jest przechowywana osobno i zwykle zajmuje większość miejsca.

ScenariuszKonfiguracja początkowaKomentarz
Muzyka i jeden strumień 1080p Direct Play2 vCPU, 4 GB RAMWażniejsze są sieć i szybkość dysku
Mała rodzinna biblioteka multimediów4 vCPU, 8 GB RAMPreferowane są zgodne formaty
Okazjonalne transkodowanie 1080p4–8 wysokowydajnych vCPU lub GPUObciążenie zależy od kodeka
Kilka strumieni 4K/HDRNowoczesne Intel iGPU lub karta graficznaZwykły VPS wyłącznie z CPU nie jest odpowiedni

Pamiętaj także o transferze: strumień 20 Mb/s przesyła około 9 GB danych na godzinę. Przy codziennym oglądaniu zużycie może szybko osiągnąć setki gigabajtów miesięcznie.

Serwer domowy czy VPS

Domowy mini-PC lub NAS jest bardziej opłacalny przy wieloterabajtowej kolekcji i regularnym transkodowaniu sprzętowym. Możesz zainstalować dyski o dużej pojemności i wybrać procesor z Intel Quick Sync, ale zdalny dostęp zależy od zasilania, domowego łącza internetowego i dostępności publicznego adresu IP.

VPS ma publiczny adres, stabilne połączenie i działa przez całą dobę. Jest wygodny do muzyki, małej biblioteki wideo, Direct Play i użytkowników w różnych lokalizacjach. Jego ograniczenia to koszt przestrzeni oraz brak GPU w standardowych planach.

Istnieje również wariant hybrydowy: pliki pozostają w domu, a VPS działa jako bezpieczny punkt wejścia. Takie rozwiązanie pomaga, gdy nie ma publicznego adresu IPv4, ale szybkość odtwarzania nadal ogranicza przepustowość wysyłania domowego łącza.

Instalacja Jellyfin na Ubuntu z Docker Compose

W poniższej konfiguracji Jellyfin i Caddy działają w tej samej sieci Docker. Port 8096 nie jest wystawiony do internetu; Caddy przyjmuje połączenia HTTPS i automatycznie pobiera certyfikat.

Najpierw skieruj rekord A domeny, na przykład media.example.com, na adres IP serwera.

1. Zainstaluj Dockera i utwórz katalogi

sudo apt update
sudo apt install -y docker.io docker-compose-v2
sudo systemctl enable --now docker

sudo mkdir -p /opt/jellyfin/{config,cache,caddy-data,caddy-config}
sudo mkdir -p /srv/media/{movies,series,music}
cd /opt/jellyfin

2. Utwórz /opt/jellyfin/compose.yaml

services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    container_name: jellyfin
    restart: unless-stopped
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /srv/media:/media:ro
    networks: [media]

  caddy:
    image: caddy:2
    container_name: jellyfin-caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-data:/data
      - ./caddy-config:/config
    networks: [media]

networks:
  media:

Opcja :ro montuje bibliotekę multimediów tylko do odczytu i chroni oryginalne pliki przed przypadkowym usunięciem przez Jellyfin.

3. Utwórz /opt/jellyfin/Caddyfile

media.example.com {
    reverse_proxy jellyfin:8096
}

Zastąp domenę własną, uruchom kontenery i otwórz wymagane porty:

sudo docker compose up -d

sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 443/udp
sudo ufw enable

Jeśli SSH korzysta z innego portu, dodaj dla niego osobną regułę przed uruchomieniem ufw enable.

Po wydaniu certyfikatu otwórz https://media.example.com. W ustawieniach sieci Jellyfin dodaj reverse proxy do listy zaufanych proxy, aby ograniczenia dostępu z zewnątrz działały prawidłowo.

Początkowa konfiguracja biblioteki multimediów

W kreatorze konfiguracji wybierz język, utwórz administratora i dodaj biblioteki:

  • filmy — /media/movies;
  • seriale — /media/series;
  • muzyka — /media/music.

Stosuj czytelne nazwy, aby zapewnić dokładne rozpoznawanie:

/media/movies/Movie Title (2024)/Movie Title (2024).mkv
/media/series/Series Title (2024)/Season 01/Series Title S01E01.mkv

Utwórz osobny standardowy profil do oglądania i ukryj konto administratora na ekranie logowania. Przyznawaj użytkownikom dostęp tylko do potrzebnych bibliotek i nie zezwalaj na usuwanie plików, jeśli nie jest to konieczne.

Aktualizacje i kopie zapasowe

Konfiguracja Jellyfin zawiera użytkowników, ustawienia, bazę danych i postęp odtwarzania. Przed aktualizacją zatrzymaj kontener i zapisz katalog config:

cd /opt/jellyfin
sudo docker compose stop jellyfin
sudo tar -czf /root/jellyfin-config-$(date +%F).tar.gz config
sudo docker compose start jellyfin

Przenieś archiwum poza VPS. Kopie plików multimedialnych twórz osobno.

Aby zaktualizować system, uruchom:

sudo docker compose pull
sudo docker compose up -d

Nie wystawiaj bezpośrednio portu 8096. Korzystaj z HTTPS lub VPN, regularnie instaluj aktualizacje i monitoruj wolne miejsce na dysku.

Jellyfin na VPS od tropic.host

W przypadku małej biblioteki multimediów, która korzysta głównie z Direct Play, możesz zacząć od linuksowego VPS z 4 GB RAM. Dla kilku użytkowników, dużej bazy danych i dodatkowych usług rozsądniejszym wyborem będzie 8 GB.

Wybierając VPS od tropic.host, osobno oceń pojemność dysku, miesięczny transfer i potrzebę transkodowania. Serwer wirtualny jest wygodnym, zawsze dostępnym punktem końcowym z publicznym adresem IP i HTTPS, ale nie zastępuje serwera z GPU. Jeśli potrzebujesz kilku strumieni 4K/HDR z konwersją formatu, lepszy będzie serwer domowy z Intel iGPU, serwer dedykowany lub specjalistyczny plan z kartą graficzną.

Możesz zacząć od małej kolekcji, sprawdzić udział sesji Direct Play w panelu Jellyfin, a dopiero potem zwiększać CPU, RAM lub przestrzeń zgodnie z rzeczywistym obciążeniem.

Podsumowanie

Jellyfin zamienia własną kolekcję w osobistą usługę streamingową bez obowiązkowej subskrypcji i centralnego konta. Aby wdrożenie przebiegło pomyślnie, z wyprzedzeniem oszacuj przestrzeń dyskową, transfer oraz prawdopodobieństwo transkodowania.

Mały serwer korzystający z Direct Play często może działać z 4–8 GB RAM. Regularne odtwarzanie 4K/HDR wymaga sprzętowego przetwarzania wideo. Niezależnie od konfiguracji chroń dostęp z zewnątrz za pomocą HTTPS lub VPN oraz twórz osobne kopie ustawień i biblioteki multimediów.

FAQ

Czy Jellyfin jest całkowicie bezpłatny?

Tak. Serwer i aplikacje klienckie są dostępne bez planu premium. Płacisz jedynie za sprzęt, VPS, dyski, domenę i transfer.

Czy Jellyfin zawiera gotowe filmy i seriale do oglądania?

Nie. Użytkownicy dodają własne pliki multimedialne.

Czy Jellyfin może działać na VPS bez karty graficznej?

Tak, pod warunkiem że większość plików jest odtwarzana przez Direct Play. Częste transkodowanie 4K i HDR wymaga serwera z odpowiednim iGPU lub kartą graficzną.

Ile pamięci RAM potrzebuje Jellyfin?

Mały serwer linuksowy może działać z 4 GB RAM. Dla rodzinnej biblioteki multimediów i kilku użytkowników lepszym celem będzie 8 GB.

Jak bezpiecznie uzyskać dostęp do Jellyfin przez internet?

Użyj domeny i HTTPS przez reverse proxy albo skorzystaj z VPN. Nie wystawiaj bezpośrednio portu 8096 i twórz osobne konta użytkowników z minimalnymi uprawnieniami.