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.
| Parametr | Jellyfin | Plex |
|---|---|---|
| Kod źródłowy | Otwarte źródło | Własnościowy |
| Funkcje premium | Serwer i oficjalne aplikacje nie mają płatnego poziomu | Niektóre funkcje zależą od planu subskrypcji |
| Centralne konto | Nie jest wymagane | Wykorzystuje ekosystem dostawcy |
| Dostęp zdalny | Właściciel konfiguruje domenę, reverse proxy lub VPN | Udostępnia więcej gotowych mechanizmów |
| Kontrola nad danymi | Maksymalna | Część 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.
| Tryb | Co się dzieje | Obciążenie |
|---|---|---|
| Direct Play | Serwer wysyła oryginalny plik | Niskie |
| Direct Stream | Zmieniany jest kontener lub pojedyncza ścieżka | Niskie lub średnie |
| Transkodowanie | Kodek, rozdzielczość lub bitrate są zmieniane w locie | Wysokie |
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.
| Scenariusz | Konfiguracja początkowa | Komentarz |
|---|---|---|
| Muzyka i jeden strumień 1080p Direct Play | 2 vCPU, 4 GB RAM | Ważniejsze są sieć i szybkość dysku |
| Mała rodzinna biblioteka multimediów | 4 vCPU, 8 GB RAM | Preferowane są zgodne formaty |
| Okazjonalne transkodowanie 1080p | 4–8 wysokowydajnych vCPU lub GPU | Obciążenie zależy od kodeka |
| Kilka strumieni 4K/HDR | Nowoczesne Intel iGPU lub karta graficzna | Zwykł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/jellyfin2. 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 enableJeś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.mkvUtwó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 jellyfinPrzenieś archiwum poza VPS. Kopie plików multimedialnych twórz osobno.
Aby zaktualizować system, uruchom:
sudo docker compose pull
sudo docker compose up -dNie 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.
