GNU/Linux >> Linux Esercitazione >  >> Debian

Come installare Jellyfin Media Server su Debian 11 Bullseye

Jellyfin è un'applicazione multimediale gratuita e open source progettata per organizzare, gestire e condividere file multimediali digitali su dispositivi collegati in rete su una rete interna ed è possibile accedervi in ​​remoto desiderato. È una multipiattaforma e un'alternativa ad altri giocatori così significativi, Plex ed Emby. Puoi accedervi da una vasta gamma di dispositivi come dispositivi mobili, tablet, TV e PC o dispositivi multimediali popolari come Roku o Nvidia shield. Jellyfin fornisce anche contenuti multimediali a dispositivi abilitati DLNA e Chromecast e può recuperare metadati proprio come fanno Plex ed Emby per organizzare i tuoi contenuti multimediali in categorie in una ricca esperienza multimediale.

Se desideri provare, Jellyfin ha creato un server demo per accedere e verificarlo di persona.

Nel seguente tutorial, imparerai come installare Jellyfin su Debian 11 Bullseye, insieme a come impostare le tue unità multimediali per avere un accesso corretto in lettura e scrittura; in più, se desideri eseguire lo streaming di un'opzione proxy inverso Apache o Nginx in remoto, come proteggerla con il certificato SSL Let's Encrypt Free per entrambe le applicazioni web.

Aggiorna Debian

Innanzitutto, prima di iniziare a garantire che l'installazione proceda senza intoppi, aggiorna il tuo sistema come segue.

sudo apt update && sudo apt upgrade -y

Installa i pacchetti richiesti

Prima di procedere ulteriormente con il tutorial, dovrai assicurarti di aver installato i seguenti pacchetti:

sudo apt install apt-transport-https ca-certificates gnupg2 curl git -y

Se non sei sicuro, esegui semplicemente il comando; non ti danneggerà.

Installa Jellyfin Media Server

Jellyfin non viene fornito con il repository predefinito di Debian, quindi devi importare la chiave GPG Jellyfin e il repository.

Importa chiave GPG

Per prima cosa dovrai importare la chiave GPG per verificare l'autenticità del pacchetto; senza di esso, l'installazione fallirà:

sudo wget -O- https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/jellyfin.gpg

Importa il repository

Il passaggio successivo è importare il repository, puoi importare la versione stable (consigliata) o unstable (beta/sviluppo), da quanto ho capito l'unstable può funzionare bene ma lo consiglierei solo agli utenti che sono più sicuri del terminale e risolvere i problemi se si presentano e hanno il tempo.

IMPORTA SOLO UN REPOSITORY ALLA VOLTA.

Importa JellyFin stable (consigliato):

echo "deb [arch=$( dpkg --print-architecture ) signed-by=/usr/share/keyrings/jellyfin.gpg] https://repo.jellyfin.org/debian bullseye main" | sudo tee /etc/apt/sources.list.d/jellyfin.list

Importa JellyFin instabile:

echo "deb [arch=$( dpkg --print-architecture ) signed-by=/usr/share/keyrings/jellyfin.gpg] https://repo.jellyfin.org/debian bullseye main unstable" | sudo tee /etc/apt/sources.list.d/jellyfin.list

Quindi, termina, aggiorna l'elenco del tuo repository per riconoscere le nuove aggiunte come segue:

sudo apt update

Installa Jellyfin

Ora che hai ordinato il repository apt, puoi ora procedere all'installazione del server multimediale con il seguente comando:

sudo apt install jellyfin -y

Una volta installato, il servizio Jellyfin verrà avviato automaticamente. Confermalo, usa il seguente comando systemctl .

systemctl status jellyfin

Esempio di output:

Se il tuo media server non è stato avviato per qualche motivo, usa i seguenti comandi:

Avvia il servizio:

sudo systemctl start jellyfin

Abilita all'avvio del sistema:

sudo systemctl enable jellyfin

Configurazione iniziale di Jellyfin Media Server

Per accedere all'interfaccia utente Web di Jellyfin, è necessario aprire il browser Internet e immettere 127.0.0.1 sulla porta predefinita di Jellyfin 8096.

Esempio sotto:

http://127.0.0.1:8096

Ti imbatterai nella schermata di benvenuto per la configurazione iniziale del server.

Seleziona il tuo Lingua di visualizzazione preferita e fai clic sul pulsante Avanti -> per procedere.

Successivamente, ti imbatterai nella creazione di un nome utente e una password.

Crea un nome utente e una password; come indicato nell'immagine sopra, è possibile inserire più utenti una volta completata la configurazione iniziale. Al termine, fai clic sul pulsante Avanti -> per procedere.

Ora puoi configurare le tue librerie multimediali.

Fai clic sul grande + (segno più) o Aggiungi libreria multimediale pulsante. Da qui, puoi aggiungere la tua cartella multimediale, l'installazione è molto semplice e gli utenti di Plex sentirebbero particolarmente una somiglianza molto stretta. Al termine, fai clic su Next -> pulsante per procedere.

La schermata successiva è la schermata Linguaggio metadati:

Scegli la tua Lingua , quindi fai clic sul pulsante Avanti -> .

Se utilizzerai o, in parole migliori, accederai al server dall'esterno e o dietro un proxy, assicurati di impostare Consenti connessioni remote a questo server come è l'impostazione predefinita. Se stai solo accedendo a una rete locale, disabilita questa opzione.

Ora vedrai la schermata che dice che hai terminato l'installazione.

Passaggio semplice, fai clic sul pulsante Fine per finire.

Verrai indirizzato alla schermata di accesso per accedere con l'account utente e la password che hai creato durante la configurazione iniziale.

Ora sarai nella tua dashboard.

Se hai configurato il supporto durante l'installazione, verrà visualizzato automaticamente.

Ripristina configurazione iniziale

Se hai commesso un errore durante la configurazione iniziale, puoi ripristinare con i seguenti passaggi:

Apri il file system.xml:

sudo nano /etc/jellyfin/system.xml

Cambia quanto segue, che si trova alla riga 4:

<IsStartupWizardCompleted>true</IsStartupWizardCompleted>

A questo:

<IsStartupWizardCompleted>false</IsStartupWizardCompleted>

Riavvia il server Jellyfin:

sudo systemctl restart jellyfin

Dopo aver ripristinato la configurazione iniziale, rivisitare il HTTP://127.0 .0.1:8096 e riavvia nuovamente il processo.

Autorizzazioni di configurazione per unità multimediali

Jellyfin richiederà di leggere ed eseguire l'autorizzazione sulle directory multimediali. Puoi utilizzare chown o chgrp comandi; tuttavia, imparerai a usare il comando setfacl per il tutorial. Questo è in fase di copertura poiché ha il potenziale, in seguito, per essere più sicuro e puoi controllare l'accesso a un livello molto dettagliato rispetto al modo predefinito di chown e chgrp.

Per installare, esegui il seguente comando:

sudo apt install acl -y

Debian dovrebbe averlo installato per impostazione predefinita, ma in caso di dubbi esegui il comando per sicurezza.

Ora hai alcune opzioni con il comando setfalc , ma realisticamente non dovrai concedere i permessi a ciascun film e programma televisivo; invece, il modo più semplice è usare il contrassegna ricorsiva (-R) che fornirà a Jellyfin l'accesso di cui ha bisogno per tutto ciò che si trova nella directory e nelle sottodirectory.

sudo setfacl -R -m u:jellyfin:rx /media/mymediadrive

Se è necessario assegnare l'autorizzazione a singole directory o file multimediali, utilizzare quanto segue:

sudo setfacl -m u:jellyfin:rx /media/mymediadrive/example-name-of-file-or-directory

Configura Apache come proxy inverso

È possibile configurare un proxy inverso per accedere a Jellyfin da un computer o una rete remoti. In questo esempio, il tutorial imposterà un server proxy Apache. Se vuoi usare Nginx, salta questa parte e vai a Imposta Nginx come proxy inverso.

Innanzitutto, installa Apache:

sudo apt install apache2 -y

Per impostazione predefinita, Apache dovrebbe essere abilitato se non è attivato. usa:

sudo systemctl start apache2

Per consentire l'avvio di Apache all'avvio, utilizzare il comando seguente:

sudo systemctl enable apache2

Esempio di output in caso di successo:

Synchronizing state of apache2.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable apache2

Verifica lo stato di Apache:

systemctl status apache2

Esempio di output:

Per utilizzare Apache come proxy inverso, è necessario abilitare il modulo con il seguente comando:

sudo a2enmod proxy proxy_http headers proxy_wstunnel

Quindi, crea un host virtuale per il tuo sottodominio:

sudo nano /etc/apache2/sites-available/jellyfin.conf

Avrai bisogno di un nome di dominio attivo che può essere acquistato per un minimo di 1 o 2 dollari se non ne hai uno. NameCheap ha i migliori domini economici in circolazione e se preferisci un .com, usa Cloudflare.

Dopo aver creato il tuo sottodominio, aggiungi quanto segue al file di blocco del server:

<VirtualHost *:80>
    ServerName jellyfin.example.com

    # Comment to prevent HTTP to HTTPS redirect
    Redirect permanent / https://DOMAIN_NAME

    ErrorLog /var/log/apache2/DOMAIN_NAME-error.log
    CustomLog /var/log/apache2/DOMAIN_NAME-access.log combined
</VirtualHost>

# If you are not using a SSL certificate, replace the 'redirect'
# line above with all lines below starting with 'Proxy'
<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName DOMAIN_NAME
    # This folder exists just for certbot(You may have to create it, chown and chmod it to give apache permission to read it)
    DocumentRoot /var/www/html/jellyfin/public_html

    ProxyPreserveHost On

    # Letsencrypt's certbot will place a file in this folder when updating/verifying certs
    # This line will tell apache to not to use the proxy for this folder.
    ProxyPass "/.well-known/" "!"

    ProxyPass "/socket" "ws://SERVER_IP_ADDRESS:8096/socket"
    ProxyPassReverse "/socket" "ws://SERVER_IP_ADDRESS:8096/socket"

    ProxyPass "/" "http://SERVER_IP_ADDRESS:8096/"
    ProxyPassReverse "/" "http://SERVER_IP_ADDRESS:8096/"

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/DOMAIN_NAME/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/DOMAIN_NAME/privkey.pem
    Protocols h2 http/1.1

    # Enable only strong encryption ciphers and prefer versions with Forward Secrecy
    SSLCipherSuite HIGH:RC4-SHA:AES128-SHA:!aNULL:!MD5
    SSLHonorCipherOrder on

    # Disable insecure SSL and TLS versions
    SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

    ErrorLog /var/log/apache2/DOMAIN_NAME-error.log
    CustomLog /var/log/apache2/DOMAIN_NAME-access.log combined
</VirtualHost>
</IfModule>

Salva il file (CTRL+O) , quindi esci da (CTRL+X) .

Ora esegui un test per assicurarti che non vi siano errori nella configurazione di Apache o nel tuo host virtuale:

sudo apache2ctl configtest

Se tutto funziona correttamente, l'output di esempio dovrebbe essere:

Syntax OK

Abilita l'host virtuale su Apache come segue:

sudo a2ensite jellyfin.conf

Quindi riavvia Apache:

sudo systemctl restart apache2

Imposta Nginx come proxy inverso

È possibile configurare un proxy inverso per accedere a Jellyfin da un computer o una rete remoti. In questo esempio, il tutorial imposterà un server proxy Nginx.

Innanzitutto, installa Nginx:

sudo apt install nginx -y

Per impostazione predefinita, Nginx dovrebbe essere abilitato se non è attivato. usa:

sudo systemctl start nginx

Per consentire l'avvio di Nginx all'avvio, utilizzare il comando seguente:

sudo systemctl enable nginx

Esempio di output in caso di successo:

Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable nginx

Verifica lo stato di Nginx:

systemctl status nginx

Esempio di output:

Se desideri installare l'ultima build di Nginx, consulta il nostro tutorial sull'installazione dell'ultima Nginx Mainline o Stable o n Debian 11.

Ora, crea un nuovo blocco server come segue:

sudo nano /etc/nginx/conf.d/jellyfin.conf

Avrai bisogno di un nome di dominio attivo che può essere acquistato per un minimo di 1 o 2 dollari se non ne hai uno. NameCheap ha i migliori domini economici in circolazione e se preferisci un .com, usa Cloudflare.

Dopo aver creato il tuo sottodominio, aggiungi quanto segue al file di blocco del server:

server {
      listen 80;
      server_name jellyfin.example.com;

      access_log /var/log/nginx/jellyfin.access;
      error_log /var/log/nginx/jellyfin.error;

    set $jellyfin jellyfin;
    resolver 127.0.0.1 valid=30;

    # 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";

    location = / {
        return 302 https://$host/web/;
    }

    location / {
        # Proxy main Jellyfin traffic
        proxy_pass http://$jellyfin: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://$jellyfin:8096/socket;
        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;
    }
}

Salva il file (CTRL+O) , quindi esci da (CTRL+X) .

Ora esegui un test per assicurarti che non vi siano errori nella configurazione di Nginx o nel blocco del tuo server:

sudo nginx -t

Se tutto funziona correttamente, l'output di esempio dovrebbe essere:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ricarica Nginx per rendere effettive le modifiche:

sudo systemctl reload nginx

Se hai impostato il tuo dominio e i record DNS in modo che puntino all'IP del tuo server, ora puoi accedere al tuo Jellyfin Media Server su jellyfin.example.com .

Sicurezza Nginx o Apache con Let's Encrypt SSL Free Certificate

Idealmente, vorresti eseguire Apache o Nginx su HTTPS usando un certificato SSL. Il modo migliore per farlo è utilizzare Let's Encrypt, un'autorità di certificazione gratuita, automatizzata e aperta gestita dall'Internet Security Research Group (ISRG) senza scopo di lucro.

Innanzitutto, installa il pacchetto certbot, corrispondente al proxy inverso che hai installato.

Apache:

sudo apt install python3-certbot-apache -y

Nginx:

sudo apt install python3-certbot-nginx -y

Una volta installato, esegui il seguente comando per avviare la creazione del tuo certificato:

Apache:

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d jellyfin.example.com

Nginx:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d jellyfin.example.com

Questa configurazione ideale include reindirizzamenti HTTPS 301 forzati, un'intestazione Strict-Transport-Security e graffatura OCSP. Assicurati solo di adattare l'e-mail e il nome di dominio alle tue esigenze.

Ora il tuo URL sarà https://jellyfin.example.com invece di HTTP://jellyfin.example.com .

Come aggiornare/aggiornare Jellyfin Media Server

Jellyfin può essere aggiornato secondo lo standard comando apt update che impiegheresti la maggior parte del tuo tempo per aggiornare i pacchetti sul tuo sistema.

Usa il comando seguente per verificare la presenza di aggiornamenti e questo rileverà automaticamente anche qualsiasi altra cosa.

sudo apt update

Se disponibile, usa il comando di aggiornamento:

sudo apt upgrade

Come rimuovere (disinstallare) Jellyfin Media Server

Per gli utenti che non richiedono più il software, puoi rimuovere Jellyfin dal tuo sistema Debian.

Per prima cosa, rimuovi il software usando il seguente comando.

sudo autoremove install jellyfin --purge -y

Quindi, rimuovi il repository aggiunto se non hai intenzione di utilizzare nuovamente Jellyfin.

sudo rm /etc/apt/sources.list.d/jellyfin.list

E questo è tutto; hai eliminato con successo Jellyfin dal tuo sistema.


Debian
  1. Come installare Plex Media Server su Debian 9

  2. Come installare Jellyfin Media Server su Debian 10

  3. Come installare Docker in Debian 11 (Bullseye)

  4. Come installare Jellyfin Media Server su Debian 10 Buster

  5. Come installare TeamViewer su Debian 11 Bullseye

Come installare Discourse sul server Debian 11 Bullseye

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 Jellyfin Media Server su Ubuntu 20.04

Come installare Plex Media Server su Debian 10