Jellyfin è un open-source media sistema di streaming che permette di gestire e trasmettere i tuoi contenuti. Si tratta di un cross-platform e si alternano ad altre applicazioni come Emby e Plex. Con Jellyfin, è possibile organizzare e condividere i tuoi file Multimediali, Spettacoli televisivi, Musica e Foto da interfaccia web-based. Si può accedere ai contenuti multimediali in streaming sul tuo PC, Tablet, Telefono, Roku e la TV via internet. Jellyfin di recuperare automaticamente i metadati da TheMovieDB, OpenMovie, Rotten tomatoes e TheTVDB database.
In questo post, vi mostreremo come installare Jellyfin media streaming server Nginx come reverse proxy su Debian 10.
Prerequisiti
- Un server che esegue Debian 10.
- Un nome di dominio valido evidenziato IP del vostro server.
- Una password di root è configurato il server.
Guida Introduttiva
In primo luogo, è necessario aggiornare i pacchetti di sistema con l’ultima versione. È possibile aggiornare con il seguente comando:
apt-get update -y
Una volta che tutti i pacchetti sono aggiornati, l’installazione di altri pacchetti necessari con il seguente comando:
apt-get install apt-trasporto-https ca-certificates gnupg2 curl git -y
Una volta che tutti i pacchetti sono installati, è possibile procedere con il passaggio successivo.
Installare Jellyfin
Per impostazione predefinita, il Jellyfin pacchetto non è incluso in Debian 10 repository. Quindi sarà necessario aggiungere il Jellyfin repository per APT.
È possibile aggiungere con il seguente comando:
echo "deb [arch=$( dpkg --print-architettura )] https://repo.jellyfin.org/debian buster principale" | tee /etc/apt/sources.elenco.d/jellyfin.elenco
Una volta che il repository è aggiunto, aggiungere la chiave GPG con il seguente comando:
wget-O - https://repo.jellyfin.org/jellyfin_team.gpg.key | apt-key add -
A quel punto, aggiornare i repository e installare Jellyfin con il seguente comando:
apt-get update -y apt-get install jellyfin -y
Una volta che il Jellyfin è stato installato, è possibile controllare lo stato di Jellyfin con il seguente comando:
systemctl status jellyfin
Si dovrebbe ottenere il seguente output:
? jellyfin.servizio - Jellyfin Media Server Caricato, caricato (/lib/systemd/system/jellyfin.servizio; abilitato; fornitore di preselezione: attivato) Drop-In: /etc/systemd/system/jellyfin.servizio.d ??jellyfin.servizio.conf Attivo: attivo (in esecuzione) dal Lun 2021-03-22 08:27:42 UTC; 5 min fa Principali PID: 10192 (jellyfin) Compiti: 17 (limite: 4701) Memoria: 113.9 M CGroup: /system.affettare/jellyfin.servizio ??10192 /usr/bin/jellyfin --webdir=/usr/share/jellyfin/web --restartpath=/usr/lib/jellyfin/restart.sh --ffmpeg=/usr/lib/jellyfin-ffm 22-Mar-08:27:45 debian10 jellyfin[10192]: [08:27:45] [WRN] 127.0.0.1/32: GetBindInterface: Loopback 127.0.0.1 restituiti. 22-Mar-08:27:45 debian10 jellyfin[10192]: [08:27:45] [INF] Eseguito tutti i pre-startup punti 0:00:00.1545678 22-Mar-08:27:45 debian10 jellyfin[10192]: [08:27:45] [INF] Nucleo di avvio completo 22-Mar-08:27:46 debian10 jellyfin[10192]: [08:27:46] [INF] Eseguito tutti i post-voce di avvio punti 0:00:00.1976994 22-Mar-08:27:46 debian10 jellyfin[10192]: [08:27:46] [INF] Avvio completo, 0:00:03.6985068 22-Mar-08:27:48 debian10 jellyfin[10192]: [08:27:48] [INF] StartupTrigger licenziato per attività di: Aggiornamento del Plugin 22-Mar-08:27:48 debian10 jellyfin[10192]: [08:27:48] [INF] di Accodamento attività PluginUpdateTask 22-Mar-08:27:48 debian10 jellyfin[10192]: [08:27:48] [INF] l'Esecuzione di Aggiornare i Plugin 22-Mar-08:27:49 debian10 jellyfin[10192]: [08:27:49] [INF] Aggiornamento Plugin Completato dopo 0 minuti e 0 secondi 22-Mar-08:27:49 debian10 jellyfin[10192]: [08:27:49] [INF] ExecuteQueuedTasks
A questo punto, Jellyfin è iniziato e in ascolto sulla porta 8096. È possibile controllare con il seguente comando:
ss -antpl | grep 8096
Output:
ASCOLTARE 0 128 0.0.0.0:8096 0.0.0.0:* utenti:(("jellyfin",pid=10192,fd=289))
Configurare Nginx come Reverse Proxy
A quel punto, sarà necessario configurare Nginx come reverse proxy per l’accesso a Jellyfin sulla porta 80.
In primo luogo, installare il Nginx pacchetto con il comando seguente:
apt-get install nginx -y
Una volta installato, è possibile creare un nuovo file di configurazione di Nginx con il seguente comando:
nano /etc/nginx/conf.d/jellyfin.conf
Aggiungere le seguenti righe:
server { listen 80; server_name jellyfin.example.com; access_log /var/log/nginx/jellyfin.di accesso; error-log /var/log/nginx/jellyfin.errore; set $jellyfin 127.0.0.1; posizione / { proxy_pass http://127.0.0.1:8096; proxy_set_header Host $host; proxy_set_header X-Reale-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $schema; proxy_set_header X-Forwarded-Protocollo di $schema; proxy_set_header X-Forwarded-Host $http_host; # Disattivare il buffer quando il proxy nginx si ottiene molto di risorse pesante su di streaming proxy_buffering off; } # posizione di blocco per /web - Questo è puramente per estetica così /web/#!/ funziona, invece di dover andare a /web/index.html/#!/ posizione ~ ^/web/$ { # Proxy principale Jellyfin traffico proxy_pass http://$jellyfin:8096/web/index.html/; proxy_set_header Host $host; proxy_set_header X-Reale-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $schema; proxy_set_header X-Forwarded-Protocollo di $schema; proxy_set_header X-Forwarded-Host $http_host; } posizione /socket { # Proxy Jellyfin Websockets traffico proxy_pass http://$127.0.0.1:8096; proxy_http_version 1.1; proxy_set_header Aggiornamento $http_upgrade; proxy_set_header Connessione "aggiornamento"; proxy_set_header Host $host; proxy_set_header X-Reale-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $schema; proxy_set_header X-Forwarded-Protocollo di $schema; proxy_set_header X-Forwarded-Host $http_host; } # Sicurezza / XSS Mitigazione Intestazioni add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protezione "1; mode=block"; add_header X-Content-Type-Opzioni "nosniff"; }
Salvare e chiudere il file e poi verificare il Nginx per qualsiasi errore di sintassi con il seguente comando:
nginx -t
Output:
nginx: il file di configurazione /etc/nginx/nginx.conf sintassi è ok nginx: file di configurazione /etc/nginx/nginx.conf test è successo
A quel punto, riavviare il Nginx servizio per applicare le modifiche:
systemctl ricaricare nginx
Accesso Jellyfin
Ora, aprire il browser web e accedere al Jellyfin interfaccia web tramite l’URL http://jellyfin.example.com. Si verrà reindirizzati alla pagina seguente:
Selezionare la lingua e fare clic sul Prossimo pulsante. Si dovrebbe vedere la seguente pagina:
Fornire il nome utente, la password e fare clic sul Prossimo pulsante. Si dovrebbe vedere la seguente pagina:
Fare clic sul Prossimo pulsante. Si dovrebbe vedere la seguente pagina:
Selezionare la lingua dei metadati e fare clic sul Prossimo pulsante. Si dovrebbe vedere la seguente pagina:
Consentire l’accesso remoto e fare clic sul Prossimo pulsante. Una volta che l’installazione è stata completata, si dovrebbe vedere la seguente pagina:
Fare clic sul Finire pulsante per completare l’installazione. Si dovrebbe vedere il Jellyfin pagina di login:
Fornire il nome utente, la password e fare clic sul Segno Nel pulsante. Si dovrebbe vedere il Jellyfin cruscotto nella seguente pagina:
Sicuro Jellyfin Let’s Encrypt SSL
A quel punto, sarà necessario installare il Certbot client per installare il pacchetto di gestire il Let’s Encrypt SSL. In primo luogo, installare il Certbot con il seguente comando:
apt-get install python3-certbot-nginx -y
Una volta terminata l’installazione, eseguire il seguente comando per installare il Let’s Encrypt SSL sul tuo sito:
certbot --nginx -d jellyfin.example.com
Vi verrà chiesto di fornire un indirizzo email valido e di accettare i termini di servizio, come illustrato di seguito:
Risparmio di debug log /var/log/letsencrypt/letsencrypt.registro Plugin selezionato: Autenticatore nginx, Installatore nginx Inserire l'indirizzo email (utilizzato per l'urgenza di rinnovamento e di avvisi di sicurezza) (Enter 'c' per annulla): hitjethva@gmail.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Si prega di leggere i Termini di Servizio https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Si deve d'accordo per registrare con l'ACME server https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: Un - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sareste disposti a condividere il tuo indirizzo e-mail con la Electronic Frontier Fondazione, uno dei soci fondatori di " Let's Encrypt progetto e del non-profit organizzazione che si sviluppa Certbot? Vorremmo inviare e-mail sul nostro lavoro la crittografia del web, EFF notizie, campagne, e i modi per sostenere la libertà digitale. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Ottenere un nuovo certificato di Eseguire le seguenti sfide: http-01 sfida per jellyfin.example.com In attesa di verifica... Pulizia sfide La distribuzione di Certificato di VirtualHost /etc/nginx/conf.d/jellyfin.conf
A quel punto, scegliere se o non per reindirizzare il traffico HTTP, HTTPS, come mostrato di seguito:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: Nessun redirect - non Fare ulteriori modifiche alla configurazione del webserver. 2: Redirect - Fare tutte le richieste di reindirizzamento per garantire l'accesso HTTPS. Scegliere questa opzione per i nuovi siti, o se siete certi che il vostro sito funziona su HTTPS. È possibile annullare questa cambiare modificando la configurazione del server web. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Selezionare il numero appropriato [1-2] e quindi [enter] (premere " c " per annullare): 2
Di tipo 2 e premere Invio per terminare l’installazione. Si dovrebbe vedere il seguente output:
Reindirizzare tutto il traffico sulla porta 80 per la ssl in /etc/nginx/conf.d/jellyfin.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Complimenti! È stata attivata correttamente https://jellyfin.example.com Si dovrebbe verificare la configurazione a: https://www.ssllabs.com/ssltest/analyze.html?d=jellyfin.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NOTE IMPORTANTI: - Congratulazioni! Il certificato e la catena sono stati salvati in: /etc/letsencrypt/live/jellyfin.esempio.com/fullchain.pem Il key file è stato salvato in: /etc/letsencrypt/live/jellyfin.esempio.com/privkey.pem Il certificato scadrà il 2020-10-30. Per ottenere un nuovo o modificato la versione di questo certificato, in futuro, basta eseguire certbot di nuovo con il "certonly" opzione. Non in modo interattivo rinnovo *tutti* di i certificati, eseguire "certbot rinnovare" - Le credenziali del proprio account sono stati salvati nei Certbot directory di configurazione in /etc/letsencrypt. Si dovrebbe fare un secure backup di questa cartella. Questa configurazione directory inoltre contengono i certificati e chiavi private ottenuto da Certbot così effettuare regolarmente il backup di questa cartella è la scelta ideale. - Se ti piace Certbot, si prega di valutare la possibilità di sostenere il nostro lavoro: La donazione di ISRG / Let's Encrypt: https://letsencrypt.org/donate La donazione di EFF: https://eff.org/donate-le - Siamo stati in grado di sottoscrivere la EFF mailing list perché il vostro indirizzo di posta elettronica non sembra essere valido. È possibile riprovare più tardi da visita https://act.eff.org.
Ora, il vostro sito è protetto con SSL Crittografa. È possibile accedere in modo sicuro utilizzando l’URL https://jellyfin.example.com.
Conclusione
Complimenti! hai installato con successo Jellyfin su Debian server 10. Ora è possibile condividere facilmente i tuoi file multimediali con amici, familiari e altri utenti.