GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare Jellyfin Media Server su Debian 10 Buster

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

  1. Utilizza un client di torrent come Deluge.
  2. Scopri come scaricare da Usenet.

Vantaggi di Usenet

  1. Ti offre una migliore privacy perché gli altri non possono vedere ciò che stai scaricando.
  2. Velocità di download superveloce.
  3. 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.


Debian
  1. Come installare Debian 10 (Buster)

  2. Come installare Docker su Debian 10 Buster

  3. Come installare Plex Media Server su Debian 9

  4. Come installare MySQL Server su Debian 10 Buster

  5. Come installare R su Debian 10 Buster

Come installare Plex Media Server su Debian 9 Stretch

Come installare Plex Media Server su Debian 10 Buster

Come installare Jellyfin Media Server su Debian 11

Come installare Plex Media Server su Debian 11

Come installare un server minimo Debian 10 (Buster).

Come installare Plex Media Server su Debian 10