Tento tutoriál vám ukáže, jak nainstalovat mediální server Jellyfin na server/desktop Debian 10. Jellyfin je bezplatná aplikace s otevřeným zdrojovým kódem, která vám umožní organizovat vaše filmy, televizní pořady, hudbu a fotografie v jednom krásném rozhraní a streamovat tyto mediální soubory na vašem PC, tabletu, telefonu, TV, Roku atd. v síti nebo přes internetu. Jellyfin lze nainstalovat na Linux, MacOS a Windows.
Funkce medúzy
Jellyfin je fork z mediálního serveru Emby. Obsahuje mnoho stejných funkcí jako Plex a Emby.
- Na rozdíl od Plex nebo Emby je Jellyfin 100% zdarma a open source. Žádné reklamy. Bez omezení přehrávání v mobilních aplikacích. (I když aplikace pro iOS nemůže přehrávat videa na pozadí.)
- Sledujte živé televizní vysílání a nastavte si automatické nahrávání, abyste rozšířili svou knihovnu.
- Automaticky načítat umělecká díla, metadata z TheTVDB, TheMovieDB, The OpenMovie Database a Rotten Tomatoes.
- Podporuje DLNA.
- Lze nainstalovat volitelné pluginy, které poskytují další funkce.
- Podporuje hardwarovou akceleraci kódování/dekódování videa pomocí FFMpeg.
- A další.
Nainstalujte Jellyfin Media Server na Debian 10
Jellyfin není součástí výchozího úložiště Debianu, ale má své vlastní úložiště. Spusťte následující příkaz a přidejte úložiště Jellyfin do svého systému Debian 10.
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/debian buster main" | sudo tee /etc/apt/sources.list.d/jellyfin.list
Dále spusťte následující příkaz pro import klíče Jeffyfin GPG do systému Debian, aby APT mohl ověřit integritu balíčku během instalace.
wget -O - https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo apt-key add -
A protože toto úložiště používá připojení HTTPS, musíme také nainstalovat apt-transport-https
a ca-certificates
balíček.
sudo apt install apt-transport-https ca-certificates
Nakonec aktualizujte index balíčků na vašem systému Debian a nainstalujte Jellyfin.
sudo apt update sudo apt install jellyfin
Tento příkaz také nainstaluje 3 další balíčky jako závislosti:
jellyfin-ffmpeg
:pro překódování videa.jellyfin-server
:server typu back-end.jellyfin-web
:webové rozhraní frontend.
Nyní je mediální server Jellyfin nainstalován, jeho stav můžeme zkontrolovat pomocí:
systemctl status jellyfin
Jak můžete vidět, běží na mém systému Debian 10. (Stiskněte q
klíč k převzetí kontroly nad terminálem.)
Pokud mediální server Jellyfin neběží, můžete jej spustit pomocí:
sudo systemctl start jellyfin
Počáteční nastavení serveru médií Jellyfin
Webové rozhraní pro správu je dostupné na portu 8096. K webovému rozhraní Jellyfin se můžete dostat přes následující URL.
http://127.0.0.1:8096/web
Pokud jste nainstalovali Jellyfin na vzdálený server Debian, musíte nastavit reverzní proxy s Nginx nebo Apache, abyste získali přístup k webovému uživatelskému rozhraní, což je vysvětleno dále v tomto tutoriálu.
Prvním krokem je vybrat preferovaný jazyk.
Na další obrazovce vytvořte uživatelský účet.
Nyní můžete přidávat knihovny. Klikněte na Add Media Library
tlačítko.
Vyberte typ obsahu (filmy, hudba, televizní pořady atd.) a zobrazovaný název.
Poté klikněte na Plus (+) tlačítko pro výběr složky obsahu.
Všimněte si, že jellyfin
uživatel musí mít oprávnění ke čtení a spouštění vašich mediálních adresářů. Například můj 2T externí pevný disk je připojen pod /media/linuxbabe/
, který je ve vlastnictví root. Uživatelé, kteří nejsou ve skupině root
k němu nemám přístup, takže spustím následující příkaz, abych dal uživateli jellyfin
číst a provádět oprávnění. (Nedoporučuji měnit vlastnictví pomocí chown
nebo chgrp
příkaz. Pomocí setfacl
bude stačit příkaz.)
sudo setfacl -m u:jellyfin:rx /media/linuxbabe/
Možná budete také muset přidělit oprávnění k jednotlivým adresářům médií, jak je uvedeno níže.
sudo setfacl -m u:jellyfin:rx /media/linuxbabe/directory-name
Může být lákavé přidat rekurzivní příznak (-R
), což dává jellyfin
oprávnění ke čtení a spouštění pro každý soubor a podadresář na disku.
sudo setfacl -R -m u:jellyfin:rx /media/linuxbabe/
Pokud váš externí pevný disk slouží pouze k ukládání mediálních souborů, můžete tak učinit, ale pokud máte na externím pevném disku citlivé soubory, nedělejte to.
Jakmile dokončíte přidávání složek médií, můžete nakonfigurovat nastavení knihovny. Vyberte svůj jazyk, zemi atd.
Klikněte na Ok
a Next
knoflík. Vždy můžete později přidat další knihovny. Další krok vám umožňuje vybrat, zda bude povolen vzdálený přístup. Nedoporučuji povolovat nativní metodu vzdáleného přístupu, protože neposkytuje šifrování HTTPS, takže zrušte zaškrtnutí obou políček. Pokud potřebujete vzdálený přístup, přečtěte si prosím, jak nastavit reverzní proxy dále v tomto článku.
Klikněte na Next
a Finish
knoflík. Nakonec se přihlaste ke svému účtu Jellyfin.
Opakujte počáteční nastavení
Pokud jste udělali chybu v počátečním nastavení, můžete začít znovu. Nejprve upravte konfigurační soubor Jellyfin.
sudo nano /etc/jellyfin/system.xml
Změnit
<IsStartupWizardCompleted>true</IsStartupWizardCompleted>
do
<IsStartupWizardCompleted>false</IsStartupWizardCompleted>
Uložte a zavřete soubor. Poté restartujte Jellyfin.
sudo systemctl restart jellyfin
Nyní navštivte localhost:8096/web
a znovu uvidíte průvodce nastavením.
Kde stáhnout filmy a televizní pořady
- Používejte torrentového klienta, jako je Deluge.
- Zjistěte, jak stahovat z Usenet.
Výhody Usenetu
- Dává vám to lepší soukromí, protože ostatní nevidí, co stahujete.
- Extrémně vysoká rychlost stahování.
- Soubory jsou obvykle uchovávány mnohem déle než soubory torrent. Newsdemon například ukládá soubory po dobu 4430 dní (více než 12 let), takže starý obsah můžete stahovat velmi vysokou rychlostí.
Nastavení zpětného proxy
Protože poslouchá na 127.0.0.1:8096
, Webové rozhraní Jellyfin je dostupné pouze pro připojení ze stejného počítače. Abychom mohli přistupovat k webovému rozhraní Jellyfin ze vzdáleného počítače, můžeme nastavit reverzní proxy pro Jellyfin s Nginx nebo Apache.
Nginx
Nginx je velmi oblíbený webový server a reverzní proxy. Pokud dáváte přednost použití Nginx, spusťte následující příkaz a nainstalujte jej.
sudo apt install nginx
Poté vytvořte soubor bloku serveru pro Jellyfin.
sudo nano /etc/nginx/conf.d/jellyfin.conf
Přidejte do tohoto souboru následující obsah. Nahraďte jellyfin.example.com
s vlastním názvem domény. Měli byste také přidat záznam DNS A pro tuto subdoménu. Pokud nemáte skutečný název domény, doporučuji přejít na NameCheap a koupit si ho. Cena je nízká a poskytují ochranu soukromí whois doživotně zdarma.
server { listen 80; listen [::]:80; server_name jellyfin.example.com; access_log /var/log/nginx/jellyfin.access; error_log /var/log/nginx/jellyfin.error; set $jellyfin 127.0.0.1; location / { proxy_pass http://127.0.0.1:8096; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Forwarded-Host $http_host; # Disable buffering when the nginx proxy gets very resource heavy upon streaming proxy_buffering off; } # location block for /web - This is purely for aesthetics so /web/#!/ works instead of having to go to /web/index.html/#!/ location ~ ^/web/$ { # Proxy main Jellyfin traffic proxy_pass http://$jellyfin:8096/web/index.html/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Forwarded-Host $http_host; } location /socket { # Proxy Jellyfin Websockets traffic proxy_pass http://$127.0.0.1:8096; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Forwarded-Host $http_host; } # Security / XSS Mitigation Headers add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; }
Uložte a zavřete tento soubor. Poté otestujte konfiguraci Nginx.
sudo nginx -t
Pokud je test úspěšný, znovu načtěte Nginx, aby se změna projevila.
sudo systemctl reload nginx
Nyní máte přístup k mediálnímu serveru Jellyfin přes jellyfin.example.com
.
Apache
Pokud dáváte přednost Apache před Nginx, nainstalujte webový server Apache pomocí následujícího příkazu.
sudo apt install apache2
Chcete-li používat Apache jako reverzní proxy, musíme povolit proxy
moduly a modul záhlaví.
sudo a2enmod proxy proxy_http headers proxy_wstunnel
Poté vytvořte virtuální hostitelský soubor pro Jellyfin.
sudo nano /etc/apache2/sites-available/jellyfin.conf
Do souboru vložte následující konfigurace. Nahraďte jellyfin.example.com
s vaším skutečným názvem domény. Nezapomeňte vytvořit DNS A záznam pro tuto subdoménu. Pokud nemáte skutečný název domény, doporučuji přejít na NameCheap a koupit si ho. Cena je nízká a poskytují ochranu soukromí whois doživotně zdarma.
<VirtualHost *:80> ServerName jellyfin.example.com ErrorDocument 404 /404.html #HTTP proxy ProxyPass / http://localhost:8096/ ProxyPassReverse / http://localhost:8096/ #Websocket proxy SSLProxyEngine on <Location /:/websockets/notifications> ProxyPass wss://localhost:8096/:/websockets/notifications ProxyPassReverse wss://localhost:8096/:/websockets/notifications </Location> Header always unset X-Frame-Options </VirtualHost>
Uložte a zavřete soubor. Poté povolte tohoto virtuálního hostitele.
sudo a2ensite jellyfin.conf
Restartujte Apache
sudo systemctl restart apache2
Nyní můžete přistupovat k mediálnímu serveru Jellyfin pomocí názvu domény jellyfin.example.com
.
Povolit HTTPS
Abychom zašifrovali provoz HTTP, když navštívíte server Jellyfin zvenčí, můžeme povolit HTTPS instalací bezplatného certifikátu TLS vydaného z Let’s Encrypt. Spuštěním následujícího příkazu nainstalujte klienta Let’s Encrypt (certbot) na Debian 10.
sudo apt install certbot
Pokud používáte Nginx, musíte si také nainstalovat plugin Certbot Nginx.
sudo apt install python3-certbot-nginx
Dále spusťte následující příkaz pro získání a instalaci certifikátu TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d jellyfin.example.com
Pokud používáte Apache, musíte si nainstalovat plugin Certbot Apache.
sudo apt install python3-certbot-apache
Dále spusťte následující příkaz pro získání a instalaci certifikátu TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d jellyfin.example.com
Kde:
--nginx
:Použijte plugin nginx.--apache
:Použijte plugin Apache.--agree-tos
:Souhlas se smluvními podmínkami.--redirect
:Vynutit HTTPS přesměrováním 301.--hsts
:Přidejte hlavičku Strict-Transport-Security do každé odpovědi HTTP. Vynucení prohlížeče, aby pro doménu vždy používal TLS. Chrání před odstraněním SSL/TLS.--staple-ocsp
:Umožňuje sešívání OCSP. Platná odpověď OCSP je přišita k certifikátu, který server nabízí během TLS.
Certifikát by nyní měl být získán a automaticky nainstalován.
A můžete přistupovat k webovému rozhraní Jellyfin přes HTTPS:https://jellyfin.example.com
.
Jak upgradovat Jellyfin na Debian 10
Když vyjde nová verze mediálního serveru Jellyfin, můžete ji upgradovat provedením následujících příkazů.
sudo apt update sudo apt upgrade
Poté restartujte Jellyfin.
sudo systemctl restart jellyfin
Odstraňování problémů
Pokud váš server Debian používá WireGuard VPN, můžete v protokolu Jellyfin vidět následující chybu (sudo journalctl -eu jellyfin
).
[ERR] Error sending socket message from 10.0.0.102 to 239.255.255.250:1900 System.Net.Sockets.SocketException (0xFFFFFFFF): Bad value for ai_flags
Tato chyba znamená, že zprávu nelze odeslat z vašeho rozhraní WireGuard na 239.255.255.250, což je adresa vícesměrového vysílání SSDP (Simple Service Discovery Protocol). To je způsobeno tím, že vašemu rozhraní WireGuard není povoleno dosáhnout IP adresy.
Chcete-li tento problém vyřešit, upravte konfigurační soubor rozhraní WireGuard.
sudo nano /etc/wireguard/your-interface.conf
Najděte AllowedIPs
parametr. Můj je jako níže.
AllowedIPs = 10.0.0.0/8
Jak vidíte, klient VPN se může připojit pouze k síti 10.0.0.0/8. Nyní přidejte 239.255.255.250
adresu.
AllowedIPs = 10.0.0.0/8, 239.255.255.250
Uložte a zavřete soubor. Restartujte WireGuard.
sudo systemctl restart [email protected]
Restartujte Jellyfin.
sudo systemctl restart jellyfin
Zkontrolujte protokol Jellyfin (sudo journalctl -eu jellyfin
) znovu. Výše uvedená chyba by měla být pryč.