- A Jellyfin hivatalos képfájlja leegyszerűsíti a telepítést és elszigetelten tartja a függőségeket.
- Az állandó kötetek megőrzik a konfigurációt, a gyorsítótárat és a metaadatokat, amikor a konténer újra létrejön.
- A multimédiás mappák írásvédettként is csatlakoztathatók a véletlen módosítások elkerülése érdekében.
- Az UID, a GID és az engedélyek határozzák meg, hogy a Jellyfin olvashat-e fájlokat.
Jellyfin telepítése Dockerrel Lehetővé teszi, hogy egy kompatibilis számítógépet, otthoni szervert vagy NAS-t privát platformmá alakíts filmek, tévéműsorok, zene és fényképek lejátszására. A fájlok továbbra is az Ön felügyelete alatt maradnak, és tévékről, mobiltelefonokról, webböngészőkről és más kompatibilis eszközökről is elérheti őket.
A Docker egy konténeren belül tartja a Jellyfint és annak függőségeit, leegyszerűsítve a telepítést, a karbantartást és a frissítéseket. A konfigurációt, a gyorsítótárazást és a metaadatokat azonban külön konténerben kell tárolni. állandó kötetek hogy ne tűnjenek el, amikor a konténert újra létrehozzák.
Ez az útmutató a következőt használja: Ubuntu szerver Docker Composite-tal és a hivatalos Jellyfin kép. Az eljárás más Linux disztribúciókhoz is adaptálható, bár a telepítési parancsok és az engedélyek kezelése eltérhet.
Amire szükséged van a Jellyfin Dockerrel történő telepítéséhez

Mielőtt elkezdené, a következő összetevőkre lesz szüksége:
- Egy kompatibilis Linux disztribúcióval rendelkező szerver vagy számítógép.
- Docker Engine és a Docker Compose bővítmény.
- Statikus IP-cím vagy DHCP-foglalás a szerver számára.
- Elegendő hely a konfigurációhoz, a gyorsítótárazáshoz és az ideiglenes átkódoláshoz.
- Olvasási hozzáférés azokhoz a mappákhoz, ahol a multimédiás fájlok tárolva vannak.
- Stabil hálózati kapcsolat, lehetőleg Etherneten keresztül.
A konténeres telepítés hivatalosan Linuxra van tervezve. Bár a Docker Desktop lehetővé teszi a konténerek futtatását Windows és macOS rendszereken, a Jellyfin figyelmeztet, hogy egyes funkciók, különösen a hardveres gyorsítású átkódolásLehetséges, hogy ezeken a rendszereken nem működnek megfelelően.
Milyen hardverre van szüksége egy Jellyfin szervernek?
A követelmények kevésbé függenek a könyvtár méretétől, mint inkább a lejátszási típustól. Amikor a kliens eszköz támogatja a fájl formátumát, kodekjét, hangját, feliratait és bitrátáját, a Jellyfin használhatja közvetlen lejátszásEbben az esetben a szerver alig dolgozza fel a videót, és szerény eszközökön is futtatható.
A munkaterhelés megnő, amikor a Jellyfinnek valós időben kell tartalmat konvertálnia. Ez előfordulhat inkompatibilis kodek, beágyazandó feliratok, túlzott bitráta vagy a HDR SDR-re konvertálásának szükségessége miatt. Ezért nincs egyetlen olyan magszám vagy elegendő memória, amely minden felhasználónak megfelelne.
Több egyidejű átkódolási folyamathoz ajánlott egy integrált Intel GPU-t használni, amely támogatja a Quick Sync-et, egy NVIDIA GPU-t, amely támogatja az NVENC-et, vagy bizonyos AMD modelleket. A feltöltési sávszélességet is figyelembe kell venni, ha... Hozzáférés a Jellyfinhez otthonon kívül.
Ha még mindig a hardvert és a tárhelyet választod, gondold át, hogy dedikált számítógépre, mini PC-re vagy egy… Otthoni NAS.
Hogyan telepítsük a Docker Engine-t Ubuntu szerverre

Először frissítsd a rendszercsomagokat:
sudo apt update
sudo apt upgrade -y
Telepítsd a szükséges eszközöket és add hozzá a hivatalos Docker kulcsot:
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
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
Ezután konfigurálja a hivatalos adattárat:
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
Telepítsd a Docker Engine-t és a Compose bővítményt:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
Ellenőrizd, hogy mindkét komponens elérhető-e:
sudo docker run --rm hello-world
sudo docker compose version
Opcionálisan hozzáadhatja a felhasználóját a csoporthoz. docker parancsok végrehajtása anélkül, hogy sudo:
sudo usermod -aG docker "$USER"
Jelentkezzen ki, majd jelentkezzen be újra a módosítás érvénybe léptetéséhez. Ne feledje, hogy A Docker csoporthoz való tartozás az adminisztrátori jogosultságokkal egyenértékű jogosultságokat biztosít. a rendszerről. Ne adjon hozzá olyan felhasználókat, akik nem megbízhatóak.
Hogyan készítsünk elő állandó mappákat
Hozz létre egy külön mappát a kompozíciós fájlnak, a konfigurációnak és a gyorsítótárnak:
sudo mkdir -p /opt/jellyfin/config
sudo mkdir -p /opt/jellyfin/cache
sudo chown -R "$(id -u)":"$(id -g)" /opt/jellyfin
cd /opt/jellyfin
A médiamappák lehetnek egy másik meghajtón. Ez egy egyszerű struktúra lenne:
/srv/media/
├── peliculas/
├── series/
└── musica/
Ezen útvonalak használata nem kötelező. A lényeg az, hogy különbséget tegyünk a ... között. meglévő elérési út a gazdagépen és az utat, amelyet Jellyfin később látni fog a konténer belsejében.
Szerezd meg a Jellyfint futtató felhasználó UID-ját és GID-jét:
id -u
id -g
Hozz létre egy fájlt, melynek neve .env belül /opt/jellyfin és elmenti a kapott értékeket:
JELLYFIN_UID=1000
JELLYFIN_GID=1000
Cseréli 1000 a rendszer tényleges értékein alapul. Ennek a felhasználónak képesnek kell lennie az összes multimédiás könyvtár olvasására és a mappákba való írásra. config y cache.
A Jellyfin Docker Compose fájl konfigurálása

Hozza létre a fájlt /opt/jellyfin/docker-compose.yml ezzel a konfigurációval:
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
user: "${JELLYFIN_UID}:${JELLYFIN_GID}"
ports:
- "8096:8096/tcp"
- "7359:7359/udp"
volumes:
- type: bind
source: ./config
target: /config
- type: bind
source: ./cache
target: /cache
- type: bind
source: /srv/media/peliculas
target: /media/peliculas
read_only: true
- type: bind
source: /srv/media/series
target: /media/series
read_only: true
- type: bind
source: /srv/media/musica
target: /media/musica
read_only: true
restart: unless-stopped
A kikötő 8096/TCP Hozzáférést biztosít a webes felülethez. A port 7359/UDP A helyi hálózaton belüli automatikus felderítésre szolgál, és eltávolítható, ha nincs szüksége erre a funkcióra.
A multimédiás fájlok a következőképpen vannak csatolva: csak olvashatóEz csökkenti a véletlen módosítások kockázatát, de megakadályozza, hogy a Jellyfin NFO fájlokat, képeket vagy más adatokat írjon az adathordozó mellé. Ha ezeket a funkciókat használni szeretné, távolítsa el a read_only: true csak a szükséges mappákban.
A szolgáltatás indítása előtt ellenőrizze a szintaxist:
docker compose config
Ha a parancs nem mutat hibákat, töltse le a képet és indítsa el a tárolót:
docker compose pull
docker compose up -d
Ellenőrizd az állapotát és tekintsd meg a rekordokat:
docker compose ps
docker compose logs -f jellyfin
Sajtó Ctrl+C a naplók nézetből való kilépéshez a konténer leállítása nélkül.
A kezdeti beállítás elvégzése
Nyisson meg egy böngészőt a hálózat bármelyik számítógépéről, és írja be:
http://IP_DEL_SERVIDOR:8096
A kezdeti beállító varázsló lehetővé teszi a nyelv kiválasztását, rendszergazdai fiók létrehozását és könyvtárak hozzáadását. Használjon erős jelszót, és ezt a fiókot tartsa fenn adminisztratív feladatokhoz.
Médiamappák hozzáadásakor ki kell választania a belső konténer útvonalak:
/media/peliculas/media/series/media/musica
Ne lépjen be /srv/media/peliculasmivel ez az elérési út csak a gazdagépen létezik. A konténeren belül hozzá van rendelve a következőhöz: /media/peliculas.
Válasszon ki egy adott könyvtártípust minden tartalomtípushoz. Kerülje a filmek, tévéműsorok és zenék keverését ugyanabban a könyvtárban. Ha neveket, metaadat-szolgáltatókat és mappaszerkezeteket kell konfigurálnia, tekintse meg, hogyan teheti meg. Filmek és tévéműsorok hozzáadása és rendszerezése a Jellyfinben.
Az Intel Quick Sync gyorsítás engedélyezése

Kompatibilis Intel rendszereken először ellenőrizze, hogy létezik-e a renderelőeszköz:
ls -l /dev/dri/
Általában úgy fog megjelenni, mint /dev/dri/renderD128A csoport azonosítójának lekérése render:
getent group render | cut -d: -f3
Adja hozzá az eredményt a fájlhoz .env:
JELLYFIN_RENDER_GID=122
Az érték 122 Ez csak egy példa. Ezután add hozzá ezeket a sorokat a szolgáltatáshoz. jellyfin a Compose fájlból:
group_add:
- "${JELLYFIN_RENDER_GID}"
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
Hozza létre újra a tárolót, és ellenőrizze, hogy a Jellyfin képes-e érzékelni a GPU-t:
docker compose up -d
docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/vainfo
Belépés Vezérlőpult > Lejátszás > ÁtkódolásVálaszd az Intel Quick Sync vagy a VA-API lehetőséget, és csak a hardvereddel kompatibilis kodekeket engedélyezd.
Az eszköz konténerhez való egyszerű hozzáadása nem engedélyezi automatikusan a gyorsítást. Célszerű lejátszani egy átkódolást igénylő fájlt, és ellenőrizni az FFmpeg naplókat, hogy megbizonyosodjon arról, hogy a GPU működik.
Hogyan használjuk az NVIDIA GPU-t
A hivatalos Jellyfin rendszerkép nem tartalmazza az NVIDIA saját illesztőprogramját. Mind az illesztőprogramot, mind az illesztőprogramot telepíteni kell a gazdagépre. NVIDIA konténer eszközkészlet.
Ezután add hozzá a Jellyfin szolgáltatáshoz:
runtime: nvidia
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
Hozza létre újra a tárolót, és ellenőrizze, hogy látható-e a kártya:
docker compose up -d
docker exec -it jellyfin nvidia-smi
Végül válassza ki NVENC az átkódolási beállításokban. Ne kombináld ezt a beállítást az Intel beállításaival, hacsak nem tudod pontosan, melyik eszközt szeretnéd használni.
Hogyan állítsunk be egy NAS-on tárolt könyvtárat?
Ha a fájlok NAS vagy Samba erőforráson vannak, a legstabilabb megközelítés az, ha először csatlakoztatjuk a hálózati erőforrást az Ubuntuban, majd ezt az elérési utat egy bind mount segítségével átadjuk a konténernek.
Szerelje fel a CIFS konzolt és hozza létre a rögzítési pontot:
sudo apt install -y cifs-utils
sudo mkdir -p /mnt/media
Mentse el a NAS hitelesítő adatait egy olyan fájlba, amelyhez csak a rendszergazda férhet hozzá, és használja /etc/fstab hogy a csatolás megmaradjon az újraindítás után. Ezután adja hozzá az elérési utat a Compose fájlhoz:
- type: bind
source: /mnt/media
target: /media/nas
read_only: true
Ha a Jellyfin látja a mappát, de az üresnek tűnik, ellenőrizze az erőforrás-engedélyeket, a csatoláskor használt UID-t és GID-t, valamint az összes szülőkönyvtár végrehajtási engedélyeit. Erről a konfigurációról bővebben az útmutatóban olvashat. tárhely otthoni NAS-on.
Hogyan férhetsz hozzá a Jellyfinhez otthonod kívülről
Ne tegye közzé közvetlenül a 8096-os portot az internetenA Jellyfin dokumentációja VPN használatát vagy egy HTTPS-sel ellátott fordított proxy elhelyezését javasolja a szerver elé.
Egy VPN, mint például a Tailscale, lehetővé teszi a privát hálózat elérését anélkül, hogy közvetlenül kitennéd magad a Jellyfinnek. Fordított proxyként Caddyt, Nginxet vagy Traefiket is használhatsz.
A Caddy automatikusan képes TLS-tanúsítványok beszerzésére és megújítására, de általában megköveteli, hogy a domain a nyilvános IP-címedre mutasson, és a 80-as és 443-as portok elérjék a szervert. Ezért... A fordított proxy nem feltétlenül jelent portok megnyitása nélküli hozzáférést..
Ha el szeretné kerülni a hagyományos nyilvános expozíciót, nézze meg, hogyan A Jellyfin eléréséhez otthonról, portok megnyitása nélkül.
A felhasználók egyszeri bejelentkezéssel történő központosításához a következőket is megteheti: Csatlakozz az Authentichoz a JellyfinnelElőször is meg kell majd tenned Az Authentik telepítése Dockerrel és gondosan konfigurálja a csoportokat és az engedélyeket.
Hogyan frissítsük a Jellyfint Dockerrel?
Frissítés előtt készítsen biztonsági másolatot a Vezérlőpult > Biztonsági mentésekA Jellyfin jelenlegi verziói lehetővé teszik a másolat létrehozását a szerver futása közben, bár a legjobb ezt akkor megtenni, amikor nincsenek felhasználók, akik tartalmat játszanak le, vagy aktív vizsgálat van folyamatban.
Ezután frissítse a képet, és hozza létre újra a tárolót:
cd /opt/jellyfin
docker compose pull
docker compose up -d
A frissítés után ellenőrizd a naplókat:
docker compose logs --tail=100 jellyfin
Az állandó adatok a mappákban maradnak. config y cacheNéhány verzió azonban migrációkat alkalmaz az adatbázisra, és A Jellyfinnek nincs lebomlási mechanizmusaHa vissza kell térnie egy korábbi verzióra, akkor egy kompatibilis biztonsági mentést kell visszaállítania.
Gyakori hibák Jellyfin Dockerrel történő telepítésekor

A konténer folyamatosan újraindul
Végrehajtás docker compose logs jellyfin és ellenőrizd a mappa jogosultságait config y cacheAz UID és GID definiálva van a .env Írásbeli engedéllyel kell rendelkezniük.
A könyvtár üresnek tűnik.
Ellenőrizze, hogy a gazdagép elérési útja létezik-e, a kötet megfelelően van-e csatlakoztatva, és hogy a konténer felhasználója böngészheti és olvashatja-e az összes könyvtárát. A Jellyfinen belül ki kell választania a belső elérési utat, például: /media/peliculas.
Engedély megtagadva a fájlok szkennelésekor
Ne oldd meg a problémát jogosultságok alkalmazásával. 777Ellenőrizd a tulajdonos, a csoport, valamint az olvasási és végrehajtási jogosultságokat. Ha NAS-t használsz, ellenőrizd az erőforrás csatlakoztatásához használt beállításokat is.
A 8096-os port nem nyitható meg
Egy másik folyamat használhatja a portot. Ellenőrizze a következővel:
sudo ss -ltnp | grep 8096
Ha foglalt, állítsa le a felelős szolgáltatást, vagy módosítsa például a bal oldali portot a leképezésben. 8097:8096.
A GPU megjelenik a gazdagépen, de nem a Jellyfinben
Az Intelnél ellenőrizd az eszközt. /dev/dri/renderD128 és a csoportazonosító renderAz NVIDIA-ban ellenőrizze az illesztőprogramot, az NVIDIA Container Toolkit eszközt és a kimenetet. docker exec -it jellyfin nvidia-smi.
A videó továbbra is használja a CPU-t
Attól, hogy a GPU látható, még nem jelenti azt, hogy minden formátum gyorsított. Ellenőrizd a támogatott kodekeket, az átkódolási beállításokat és az FFmpeg regisztereket. Egyes feliratok és szűrők továbbra is használhatják a CPU-t.
A Jellyfin működik, de nem jelenik meg automatikusan az eszközökön.
Ellenőrizze, hogy a port 7359/UDP Közzé kell tenni és engedélyezni kell a helyi hálózaton. Ha DLNA-ra van szükséged, a hivatalos dokumentáció szerint hálózati módot kell használnod. host.
Jellyfin telepítése Docker Composite segítségével Lehetővé teszi a médiaszerver elkülönítését és leegyszerűsíti az adminisztrációját, de a végső megbízhatóság a használt kötetektől, engedélyektől és elérési utakon múlik. Miután a konténer üzembe helyeződött és fut, hozzáadhatja a könyvtárakat, létrehozhat felhasználókat, és engedélyezheti a hardvernek megfelelő átkódolást.
Mielőtt elérhetővé tennéd a szolgáltatást az otthoni hálózatodon kívül, konfigurálj HTTPS-t vagy VPN-t, és készíts biztonsági másolatot a konfigurációs mappáról. Így frissítheted a szervert anélkül, hogy elveszítenéd a felhasználókat, a metaadatokat vagy a lejátszási előzményeket.
Technológia-rajongó vagyok, aki "geek" érdeklődését szakmává változtatta. Életemből több mint 10 évet töltöttem a legmodernebb technológiával, és pusztán kíváncsiságból mindenféle programmal bütykölgettem. Most a számítástechnikára és a videojátékokra szakosodtam. Ennek az az oka, hogy több mint 5 éve írok különféle technológiával és videojátékokkal foglalkozó weboldalakra, olyan cikkeket készítve, amelyek mindenki számára érthető nyelven igyekeznek megadni a szükséges információkat.
Ha bármilyen kérdése van, tudásom a Windows operációs rendszerrel, valamint a mobiltelefonokhoz készült Androiddal kapcsolatos mindenre kiterjed. És az én elkötelezettségem az Ön iránti elkötelezettségem, mindig készen állok néhány percet rászánni arra, hogy segítsek megoldani minden kérdését ebben az internetes világban.