Questo tutorial ti mostrerà come installare il media server Jellyfin su server/desktop Debian 10. Jellyfin è un'applicazione open source gratuita che ti consente di organizzare i tuoi film, programmi TV, musica e foto in un'unica bellissima interfaccia e di riprodurre in streaming i file multimediali sul tuo PC, tablet, telefono, TV, Roku, ecc. sulla rete o su Internet. Jellyfin può essere installato su Linux, MacOS e Windows.
Caratteristiche Jellyfin
Jellyfin è un fork del media server Emby. Contiene molte delle stesse funzionalità di Plex ed Emby.
- A differenza di Plex o Emby, Jellyfin è gratuito e open source al 100%. Nessuna pubblicità. Nessun limite di riproduzione sulle app mobili. (Anche se l'app per iOS non può riprodurre video in background.)
- Guarda la TV in diretta e imposta registrazioni automatiche per espandere la tua libreria.
- Recupera automaticamente grafica, metadati da TheTVDB, TheMovieDB, The OpenMovie Database e Rotten Tomatoes.
- Supporta DLNA.
- È possibile installare plug-in opzionali per fornire funzionalità aggiuntive.
- Supporta l'accelerazione hardware della codifica/decodifica video tramite FFMpeg.
- E altro ancora.
Installa Jellyfin Media Server su Debian 10
Jellyfin non è incluso nel repository Debian predefinito, ma ha il proprio repository. Esegui il comando seguente per aggiungere il repository Jellyfin al tuo sistema Debian 10.
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/debian buster main" | sudo tee /etc/apt/sources.list.d/jellyfin.list
Quindi, esegui il comando seguente per importare la chiave GPG Jeffyfin nel sistema Debian in modo che APT possa verificare l'integrità del pacchetto durante l'installazione.
wget -O - https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo apt-key add -
E poiché questo repository utilizza la connessione HTTPS, dobbiamo anche installare apt-transport-https
e ca-certificates
pacchetto.
sudo apt install apt-transport-https ca-certificates
Infine, aggiorna l'indice del pacchetto sul tuo sistema Debian e installa Jellyfin.
sudo apt update sudo apt install jellyfin
Questo comando installerà anche altri 3 pacchetti come dipendenze:
jellyfin-ffmpeg
:per la transcodifica video.jellyfin-server
:il server back-end.jellyfin-web
:l'interfaccia web front-end.
Ora il server multimediale Jellyfin è installato, possiamo verificarne lo stato con:
systemctl status jellyfin
Come puoi vedere, è in esecuzione sul mio sistema Debian 10. (Premere q
chiave per riprendere il controllo del terminale.)
Se il server multimediale Jellyfin non è in esecuzione, puoi avviarlo con:
sudo systemctl start jellyfin
Configurazione iniziale del server multimediale Jellyfin
L'interfaccia di gestione basata sul Web è disponibile alla porta 8096. È possibile accedere all'interfaccia Web di Jellyfin tramite il seguente URL.
http://127.0.0.1:8096/web
Se hai installato Jellyfin su un server Debian remoto, devi configurare un proxy inverso con Nginx o Apache per accedere all'interfaccia utente web, come spiegato più avanti in questo tutorial.
Il primo passo è scegliere la lingua preferita.
Nella schermata successiva, crea un account utente.
Ora puoi aggiungere librerie. Fai clic su Add Media Library
pulsante.
Seleziona un tipo di contenuto (film, musica, programmi TV, ecc.) e nome visualizzato.
Quindi fai clic sul Più (+) per selezionare una cartella del contenuto.
Nota che il jellyfin
l'utente deve avere l'autorizzazione di lettura ed esecuzione sulle directory multimediali. Ad esempio, il mio disco rigido esterno 2T è montato in /media/linuxbabe/
, che è di proprietà di root. Utenti non nel gruppo root
non riesco ad accedervi, quindi eseguo il seguente comando per fornire all'utente jellyfin
leggere ed eseguire il permesso. (Non consiglio di cambiare la proprietà con chown
o chgrp
comando. Usando il setfacl
il comando sarà sufficiente.)
sudo setfacl -m u:jellyfin:rx /media/linuxbabe/
Potrebbe anche essere necessario assegnare l'autorizzazione a singole directory multimediali come di seguito.
sudo setfacl -m u:jellyfin:rx /media/linuxbabe/directory-name
Può essere allettante aggiungere il flag ricorsivo (-R
), che dà jellyfin
permessi di lettura ed esecuzione su ogni file e sottodirectory sull'unità.
sudo setfacl -R -m u:jellyfin:rx /media/linuxbabe/
Se il tuo disco rigido esterno viene utilizzato solo per archiviare file multimediali, puoi farlo, ma se hai file sensibili sul disco rigido esterno, non farlo.
Una volta terminata l'aggiunta delle cartelle multimediali, è possibile configurare le impostazioni della libreria. Scegli la lingua, il paese, ecc.
Fai clic su Ok
e Next
pulsante. Puoi sempre aggiungere più librerie in un secondo momento. Il passaggio successivo consente di scegliere se abilitare l'accesso remoto. Non consiglio di abilitare il metodo di accesso remoto nativo, perché non fornisce la crittografia HTTPS, quindi deseleziona entrambe le caselle di controllo. Se hai bisogno dell'accesso remoto, leggi come configurare il proxy inverso più avanti in questo articolo.
Fare clic su Next
e Finish
pulsante. Infine, accedi al tuo account Jellyfin.
Ripeti la configurazione iniziale
Se hai commesso un errore nella configurazione iniziale, puoi ricominciare da capo. Innanzitutto, modifica il file di configurazione di Jellyfin.
sudo nano /etc/jellyfin/system.xml
Cambia
<IsStartupWizardCompleted>true</IsStartupWizardCompleted>
a
<IsStartupWizardCompleted>false</IsStartupWizardCompleted>
Salva e chiudi il file. Quindi riavvia Jellyfin.
sudo systemctl restart jellyfin
Ora visita localhost:8096/web
e vedrai di nuovo la procedura guidata di configurazione.
Dove scaricare film e programmi TV
- Utilizza un client di torrent come Deluge.
- Scopri come scaricare da Usenet.
Vantaggi di Usenet
- Ti offre una migliore privacy perché gli altri non possono vedere ciò che stai scaricando.
- Velocità di download superveloce.
- I file vengono generalmente conservati molto più a lungo dei file torrent. Ad esempio, Newsdemon archivia i file per 4430 giorni (più di 12 anni), quindi puoi scaricare vecchi contenuti a una velocità molto elevata.
Configurazione del proxy inverso
Poiché è in ascolto su 127.0.0.1:8096
, L'interfaccia Web di Jellyfin è disponibile solo per le connessioni dallo stesso computer. Per poter accedere all'interfaccia Web di Jellyfin da un computer remoto, possiamo configurare un proxy inverso per Jellyfin con Nginx o Apache.
Nginx
Nginx è un server Web e proxy inverso molto popolare. Se preferisci usare Nginx, esegui il comando seguente per installarlo.
sudo apt install nginx
Quindi crea un file di blocco del server per Jellyfin.
sudo nano /etc/nginx/conf.d/jellyfin.conf
Aggiungi il seguente contenuto a questo file. Sostituisci jellyfin.example.com
con il tuo nome di dominio. Dovresti anche aggiungere un record DNS A per questo sottodominio. Se non hai un vero nome di dominio, ti consiglio di andare su NameCheap per acquistarne uno. Il prezzo è basso e offrono protezione della privacy a chi è gratuita per tutta la vita.
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"; }
Salva e chiudi questo file. Quindi testa la configurazione di Nginx.
sudo nginx -t
Se il test ha esito positivo, ricarica Nginx per rendere effettive le modifiche.
sudo systemctl reload nginx
Ora puoi accedere al server multimediale Jellyfin tramite jellyfin.example.com
.
Apache
Se preferisci Apache su Nginx, installa il server Web Apache utilizzando il comando seguente.
sudo apt install apache2
Per utilizzare Apache come proxy inverso, dobbiamo abilitare il proxy
moduli e il modulo di intestazione.
sudo a2enmod proxy proxy_http headers proxy_wstunnel
Quindi crea un file host virtuale per Jellyfin.
sudo nano /etc/apache2/sites-available/jellyfin.conf
Inserisci le seguenti configurazioni nel file. Sostituisci jellyfin.example.com
con il tuo nome di dominio effettivo. Non dimenticare di creare un record DNS A per questo sottodominio. Se non hai un vero nome di dominio, ti consiglio di andare su NameCheap per acquistarne uno. Il prezzo è basso e offrono protezione della privacy a chi è gratuita per tutta la vita.
<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>
Salva e chiudi il file. Quindi abilita questo host virtuale.
sudo a2ensite jellyfin.conf
Riavvia Apache
sudo systemctl restart apache2
Ora puoi accedere al server multimediale Jellyfin utilizzando il nome di dominio jellyfin.example.com
.
Abilita HTTPS
Per crittografare il traffico HTTP quando visiti il server Jellyfin dall'esterno, possiamo abilitare HTTPS installando un certificato TLS gratuito emesso da Let's Encrypt. Esegui il comando seguente per installare il client Let's Encrypt (certbot) su Debian 10.
sudo apt install certbot
Se usi Nginx, devi anche installare il plugin Certbot Nginx.
sudo apt install python3-certbot-nginx
Quindi, esegui il comando seguente per ottenere e installare il certificato TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d jellyfin.example.com
Se usi Apache, devi installare il plugin Certbot Apache.
sudo apt install python3-certbot-apache
Quindi, esegui il comando seguente per ottenere e installare il certificato TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d jellyfin.example.com
Dove:
--nginx
:usa il plugin nginx.--apache
:usa il plugin Apache.--agree-tos
:Accetta i termini di servizio.--redirect
:Forza HTTPS tramite reindirizzamento 301.--hsts
:aggiungi l'intestazione Strict-Transport-Security a ogni risposta HTTP. Forzare il browser a utilizzare sempre TLS per il dominio. Difende dallo stripping SSL/TLS.--staple-ocsp
:Abilita la pinzatura OCSP. Una risposta OCSP valida viene pinzata al certificato offerto dal server durante TLS.
Il certificato dovrebbe ora essere ottenuto e installato automaticamente.
E puoi accedere all'interfaccia web di Jellyfin tramite HTTPS:https://jellyfin.example.com
.
Come aggiornare Jellyfin su Debian 10
Quando esce una nuova versione di Jellyfin media server, puoi aggiornarla eseguendo i seguenti comandi.
sudo apt update sudo apt upgrade
Quindi riavvia Jellyfin.
sudo systemctl restart jellyfin
Risoluzione dei problemi
Se il tuo server Debian esegue WireGuard VPN, potresti visualizzare il seguente errore nel registro di Jellyfin (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
Questo errore significa che il messaggio non può essere inviato dalla tua interfaccia WireGuard a 239.255.255.250, che è l'indirizzo multicast SSDP (Simple Service Discovery Protocol). Ciò è dovuto al fatto che la tua interfaccia WireGuard non può raggiungere l'indirizzo IP.
Per risolvere questo problema, modifica il file di configurazione dell'interfaccia WireGuard.
sudo nano /etc/wireguard/your-interface.conf
Trova gli AllowedIPs
parametro. Il mio è come di seguito.
AllowedIPs = 10.0.0.0/8
Come puoi vedere, il client VPN può connettersi solo alla rete 10.0.0.0/8. Ora aggiungi il 239.255.255.250
indirizzo.
AllowedIPs = 10.0.0.0/8, 239.255.255.250
Salva e chiudi il file. Riavvia WireGuard.
sudo systemctl restart [email protected]
Riavvia Jellyfin.
sudo systemctl restart jellyfin
Controlla il registro di Jellyfin (sudo journalctl -eu jellyfin
) ancora. L'errore di cui sopra dovrebbe essere sparito.