Sunt utilizator de Plex Pass de foarte mulți ani. La început am avut o subscripție anuală, dar ulterior am trecut la subscripția pe viață cu o singură plată unică. Serverul de Plex este configurat pe un PC dedicat cu Windows 10 ca sistem de operare și placă video dedicată pentru a putea folosi funcția de transcoding hardware (HW) oferită membrilor Plex Pass.
În general, Plex este o soluție solidă ca server multimedia pentru fișierele proprii. De-a lungul anilor, și-a făcut treaba cu brio. Totuși, în ultima vreme, am început să caut alternative pentru a vedea ce alte soluții asemănătoare mai sunt disponibile, iar una dintre ele este Jellyfin.
De ce Jellyfin?
Deși am fost mulțumit de Plex, strategia din ultimii ani a companiei m-a determinat să caut alternative. Rezum câteva neajunsuri ale strategiei actuale a Plex:
- Conținut propriu de streaming – Este împins în față, deși este, în general, de slabă calitate și improbabil să fie vizionat de mulți utilizatori.
- Servicii de streaming integrate – Sunt promovate intens printr-o funcție de căutare care returnează servicii externe unde este disponibil conținutul respectiv. Aceasta funcționalitate nu este utilă pentru utilizatorii interesați doar de media serverul local.
- Necesitatea unui cont online – Deși media serverul este instalat în rețeaua proprie, accesul la acesta necesită un cont Plex online.
- Transcoding hardware limitat – Această funcție este disponibilă exclusiv pentru membrii plătitori.
Jellyfin, pe de altă parte, promite o experiență self-hosted, independentă de conturi online, cu mai multă intimitate, transcoding și fără interferențe din partea serviciilor online inutile.
Pentru configurarea Jellyfin, am folosit Ubuntu Server versiunea 22 și rularea prin container Docker.
Configurarea Ubuntu
După instalarea Ubuntu, primul pas este să permiteți comunicarea SSH pentru a vă putea conecta de la distanță. Acest lucru este util mai ales dacă rulați Ubuntu ca mașină virtuală sau dacă nu este conectat la un monitor.
Actualizați pachetele existente și faceți upgrade cu următoarea comandă:
1 | sudo apt update && sudo apt upgrade -y |
-y
: Acceptă automat upgrade-ul pachetelor fără să mai ceară confirmare de la tastatură.
Pentru a asigura un acces facil la serverul multimedia Jellyfin în rețeaua locală, este necesar să fie ușor de identificat. Acest lucru se poate realiza fie prin configurarea unui IP static direct pe Ubuntu Server, fie prin rezervarea unui IP pe baza adresei MAC în routerul de acasă. La fel ca în tutorialul despre PiVPN, și in acest caz, am optat pentru varianta rezervării de IP în router.
Maparea unui share de rețea
Când folosim media serverul Jellyfin, dorim să folosim fișierele noastre multimedia proprii. În cazul meu, le am stocate pe un share de rețea. Share-ul respectiv de rețea îl mapez în Ubuntu pentru a fi accesibil la configurarea Jellyfin.
Instalați pachetul necesar, pentru mapare:
1 | sudo apt install cifs-utils |
Creați directorul pentru atașarea partiției de rețea:
1 | sudo mkdir /mnt/media_drive |
Atașați share-ul de rețea:
1 | sudo mount -t cifs //10.0.0.9/media /mnt/media_drive -o username=user,password=parola |
Recomandare: Folosiți un user dedicat cu acces limitat doar la share-ul respectiv.
Faceți maparea persistentă adăugând următoarea linie în /etc/fstab
:
1 | sudo nano /etc/fstab |
Adăugați linia:
1 | //10.0.0.9/media /mnt/media_drive cifs username=user,password=parola 0 0 |
Puteți verifica maparea cu:
1 | mount | grep /mnt/media_drive |
Instalarea Docker
După cum am menționat la început, o să rulăm Jellyfin într-un container. Pentru asta, avem nevoie să instalăm Docker.
Actualizați lista de pachete:
1 | sudo apt-get update |
Instalăm certificatele pentru a putea descărca pachetele semnate de Docker cu cheia privată GPG:
1 | sudo apt-get install ca-certificates curl |
Creați directorul /etc/apt/keyrings
unde se salvează cheile GPG cu permisiunile -m 0755
, prin care owner-ul are drepturi de scriere, iar ceilalți utilizatori doar de citire și execuție.
1 | sudo install -m 0755 -d /etc/apt/keyrings |
Descarcați cheile GPG pentru Docker:
1 2 | sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc |
Pentru a putea actualiza Dockerul folosind managerul de aplicații, rulați următoarea comandă care îl va adăuga la lista de pachete sursă de sistem:
1 | echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null |
Instalați Docker și pluginurile recomandate:
1 | sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin |
Pentru a verifica instalarea, puteți rula următoarea comandă, care returnează versiunea de Docker instalată:
1 | sudo docker --version |
Sau descărcați un container de test care va afișa textul „Hello
” în prompt
1 | sudo docker run hello-world |
Instalarea Jellyfin
Descărcați imaginea oficială Jellyfin:
1 | sudo docker pull jellyfin/jellyfin |
În continuare, avem nevoie să creăm directoarele pentru a stoca fișierele de configurare și cache necesare. În documentația Jellyfin găsim două variante: fie le salvăm în Ubuntu, fie le salvăm în containerul Docker. Eu am ales varianta de a le salva în container. Astfel, ele rămân valabile dacă vreau să mut containerul.
1 2 | docker volume create jellyfin-config docker volume create jellyfin-cache |
Cu următoarea comandă, care rulează în Docker, legăm containerul la interfața de rețea a sistemului gazdă Ubuntu, setăm timezone-ul, definim locația directoarelor de config și cache create mai sus și configurăm maparea de rețea pentru locația cu fișierele multimedia pe care am definit-o la pașii precedenți.
1 2 3 4 5 6 7 8 9 10 | docker run -d \ --name jellyfinD \ --user $(id -u):$(id -g) \ --net=host \ --env TZ=Europe/Bucharest \ --volume jellyfin-config:/config \ --volume jellyfin-cache:/cache \ --volume /mnt/media_drive:/media \ --restart=unless-stopped \ jellyfin/jellyfin |
Dacă este necesar, configurați firewall-ul pentru a permite traficul pe porturile 8096 (HTTP) și 8920 (HTTPS).
Dacă totul a fost configurat corect, puteți accesa Jellyfin în browser folosind adresa:http://<IP-ul_static>:8096