Ricerca nel sito web

Installa Plex Media Server su Ubuntu 20.04


Questo tutorial esiste per queste versioni del sistema operativo

  • Ubuntu 20.04 (Focal Fossa)
  • Ubuntu 16.04 (Xenial Xerus)

Su questa pagina

  1. Prerequisiti
  2. Per iniziare
  3. Installa Plex Media Server
  4. Abilita il repository Plex Media Server
  5. Configura Nginx per Plex
  6. Accedi a Plex Media Server
  7. Proteggi Plex con Lets Encrypt SSL
  8. Conclusione

Plex è un server di streaming multimediale potente e ricco di funzionalità che può essere utilizzato per organizzare video, musica e foto e trasmetterli in streaming ai dispositivi remoti da qualsiasi luogo. Supporta molti sistemi operativi tra cui Linux, Windows, FreeBSD, macOS e molti altri. È possibile accedere ai media archiviati sul server Plex da smart TV, smartphone e streaming box utilizzando il client multimediale Plex.

Plex ha molte funzionalità, alcune delle quali sono elencate di seguito: gpt-ad-howtoforge_com-medrectangle-3-0;var ffid=1;var alS=1021%1000;var container=document.getElementById(slotId);container.style.width=100%;var ins=document.createElement( ins);ins.id=slotId+-asloaded;ins.className=adsbygoogle ezasloaded;ins.dataset.adClient=pid;ins.dataset.adChannel=cid;if(ffid==2){ins.dataset.fullWidthResponsive=true; }

  • TV in diretta e DVR.
  • Sincronizzazione cellulare.
  • Sincronizzazione cloud.
  • Funzionalità musicali premium.
  • Librerie di foto premium.
  • Streaming con accelerazione hardware.
  • Filtro contenuti.
  • Caricamento da fotocamera.
  • Limiti di larghezza di banda e transcodifica.

In questo tutorial, spiegheremo come installare il server multimediale Plex con Nginx come proxy inverso sul server Ubuntu 20.04.

Prerequisiti

  • Un server che esegue Ubuntu 20.04.
  • È stata configurata una password di root.

Iniziare

Innanzitutto, dovrai aggiornare i tuoi pacchetti di sistema all'ultima versione. Puoi aggiornarli con il seguente comando:

apt-get update -y

Una volta aggiornati i pacchetti, puoi procedere al passaggio successivo.

Installa Plex Media Server

Innanzitutto, dovrai scaricare l'ultima versione del server multimediale Plex dal sito Web ufficiale di Plex. Puoi scaricarlo con il seguente comando:

wget https://downloads.plex.tv/plex-media-server-new/1.20.1.3252-a78fef9a9/debian/plexmediaserver_1.20.1.3252-a78fef9a9_amd64.deb

Una volta scaricato il pacchetto del server multimediale Plex, è possibile installarlo utilizzando il seguente comando:

dpkg -i plexmediaserver_1.20.1.3252-a78fef9a9_amd64.deb

Una volta installato il server multimediale Plex, avviare il servizio Plex e abilitarlo per l'avvio al riavvio del sistema con il seguente comando:

systemctl start plexmediaserver
systemctl enable plexmediaserver

Successivamente, puoi verificare lo stato del servizio Plex con il seguente comando:

systemctl status plexmediaserver

Dovresti vedere il seguente output:

? plexmediaserver.service - Plex Media Server
     Loaded: loaded (/lib/systemd/system/plexmediaserver.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-09-05 06:48:06 UTC; 17s ago
    Process: 38369 ExecStartPre=/bin/sh -c /usr/bin/test -d "${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}" || /bin/mkdir -p "${PLEX_MEDIA_SERV>
   Main PID: 38371 (Plex Media Serv)
      Tasks: 120 (limit: 2353)
     Memory: 215.0M
     CGroup: /system.slice/plexmediaserver.service
             ??38371 /usr/lib/plexmediaserver/Plex Media Server
             ??38405 Plex Plug-in [com.plexapp.system] /usr/lib/plexmediaserver/Resources/Plug-ins-a78fef9a9/Framework.bundle/Contents/Resourc>
             ??38451 /usr/lib/plexmediaserver/Plex Tuner Service /usr/lib/plexmediaserver/Resources/Tuner/Private /usr/lib/plexmediaserver/Res>
             ??38474 Plex Plug-in [com.plexapp.agents.plexthememusic] /usr/lib/plexmediaserver/Resources/Plug-ins-a78fef9a9/Framework.bundle/C>
             ??38477 Plex Plug-in [com.plexapp.agents.themoviedb] /usr/lib/plexmediaserver/Resources/Plug-ins-a78fef9a9/Framework.bundle/Conte>
             ??38533 Plex Plug-in [org.musicbrainz.agents.music] /usr/lib/plexmediaserver/Resources/Plug-ins-a78fef9a9/Framework.bundle/Conten>
             ??38544 Plex Plug-in [com.plexapp.agents.thetvdb] /usr/lib/plexmediaserver/Resources/Plug-ins-a78fef9a9/Framework.bundle/Contents>
             ??38638 Plex Plug-in [com.plexapp.agents.opensubtitles] /usr/lib/plexmediaserver/Resources/Plug-ins-a78fef9a9/Framework.bundle/Co>
             ??38710 Plex Plug-in [com.plexapp.agents.fanarttv] /usr/lib/plexmediaserver/Resources/Plug-ins-a78fef9a9/Framework.bundle/Content>

Sep 05 06:48:06 ubunt4 systemd[1]: Starting Plex Media Server...
Sep 05 06:48:06 ubunt4 systemd[1]: Started Plex Media Server.

A questo punto, Plex media server è avviato e in ascolto sulla porta 32400. Puoi verificarlo con il seguente comando:

ss -lnpt | grep Plex

Dovresti vedere il seguente output:

LISTEN    0         128              127.0.0.1:39851            0.0.0.0:*        users:(("Plex Script Hos",pid=38739,fd=4))                                     
LISTEN    0         128              127.0.0.1:46031            0.0.0.0:*        users:(("Plex Script Hos",pid=38779,fd=4))                                     
LISTEN    0         1024             127.0.0.1:32401            0.0.0.0:*        users:(("Plex Media Serv",pid=38371,fd=61))                                    
LISTEN    0         128              127.0.0.1:44661            0.0.0.0:*        users:(("Plex Script Hos",pid=38533,fd=4))                                     
LISTEN    0         128              127.0.0.1:32600            0.0.0.0:*        users:(("Plex Tuner Serv",pid=38451,fd=13))                                    
LISTEN    0         128              127.0.0.1:36637            0.0.0.0:*        users:(("Plex Script Hos",pid=38544,fd=4))                                     
LISTEN    0         128              127.0.0.1:42973            0.0.0.0:*        users:(("Plex Script Hos",pid=38405,fd=10))                                    
LISTEN    0         128              127.0.0.1:38467            0.0.0.0:*        users:(("Plex Script Hos",pid=38824,fd=4))                                     
LISTEN    0         128              127.0.0.1:40035            0.0.0.0:*        users:(("Plex Script Hos",pid=38477,fd=4))                                     
LISTEN    0         1024                     *:32400                  *:*        users:(("Plex Media Serv",pid=38371,fd=60))    

Una volta terminato, puoi procedere al passaggio successivo.

Abilita repository Plex Media Server

Per impostazione predefinita, il repository del server multimediale Plex è disabilitato nell'APT. Quindi si consiglia di abilitarlo in modo da poter aggiornare il server multimediale Plex utilizzando il comando APT. Puoi abilitarlo modificando il seguente file:

nano /etc/apt/sources.list.d/plexmediaserver.list

Rimuovere il commento dalla seguente riga:

deb https://downloads.plex.tv/repo/deb/ public main

Salva e chiudi il file, quindi aggiungi la chiave Plex GPG con il seguente comando:

wget -q https://downloads.plex.tv/plex-keys/PlexSign.key -O - | apt-key add -

Ora aggiorna il repository con il seguente comando per applicare le modifiche:

apt-get update -y

Una volta aggiornato il repository, puoi procedere al passaggio successivo.

Configura Nginx per Plex

Successivamente, si consiglia di installare e configurare Nginx come proxy inverso per Plex. Quindi puoi accedere al server multimediale Plex utilizzando la porta 80.

Innanzitutto, installa il server Web Nginx con il seguente comando:

apt-get install nginx -y

Una volta installato il server Web Nginx, creare un nuovo file di configurazione dell'host virtuale Nginx con il seguente comando:

nano /etc/nginx/sites-available/plex.conf

Aggiungi le seguenti righe:

upstream plex_backend {
        server 127.0.0.1:32400;
        keepalive 32;
}

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

        send_timeout 100m; #Some players don't reopen a socket and playback stops totally instead of resuming after an extended pause (e.g. Ch$

       	#Plex has A LOT of javascript, xml and html. This helps a lot, but if it causes playback issues with devices turn it off. (Haven't enc$
        gzip on;
        gzip_vary on;
        gzip_min_length 1000;
        gzip_proxied any;
        gzip_types text/plain text/css text/xml application/xml text/javascript application/x-javascript image/svg+xml;
        gzip_disable "MSIE [1-6]\.";

       	#Nginx default client_max_body_size is 1MB, which breaks Camera Upload feature from the phones.
       	#Increasing the limit fixes the issue. Anyhow, if 4K videos are expected to be uploaded, the size might need to be increased even more
        client_max_body_size 100M;

       	#Forward real ip and host to Plex
        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 Sec-WebSocket-Extensions $http_sec_websocket_extensions;
        proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
        proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version;
       	#Websockets
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";

       	#Buffering off send to the client as soon as the data is received from Plex.
        proxy_redirect off;
        proxy_buffering off;

        location / {
                proxy_pass http://plex_backend;
        }
}

Salva e chiudi il file, quindi verifica Nginx per eventuali errori di sintassi con il seguente comando:

nginx -t

Dovresti ottenere il seguente output:

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

Successivamente, abilita il file di configurazione dell'host virtuale Nginx con il seguente comando:

ln -s nano /etc/nginx/sites-available/plex.conf /etc/nginx/sites-enabled/

Infine, riavvia il servizio Nginx per applicare le modifiche alla configurazione:

systemctl restart nginx

Ora puoi controllare lo stato di Nginx con il seguente comando:

systemctl status nginx

Dovresti ottenere il seguente output:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-09-05 06:57:20 UTC; 1min 47s ago
       Docs: man:nginx(8)
    Process: 40059 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 40070 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 40072 (nginx)
      Tasks: 3 (limit: 2353)
     Memory: 3.6M
     CGroup: /system.slice/nginx.service
             ??40072 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??40073 nginx: worker process
             ??40074 nginx: worker process

Sep 05 06:57:20 ubunt4 systemd[1]: Starting A high performance web server and a reverse proxy server...
Sep 05 06:57:20 ubunt4 systemd[1]: Started A high performance web server and a reverse proxy server.

Una volta terminato, puoi procedere al passaggio successivo.

Accedi a Plex Media Server

A questo punto, il servizio multimediale Plex è installato e configurato con Nginx. Ora apri il tuo browser web e accedi al server multimediale Plex utilizzando l'URL http://plex.example.com. Dovresti vedere la seguente pagina:

Ora accedi con il tuo account Google o Facebook. Dovresti vedere la dashboard del server multimediale Plex nella pagina seguente:

Proteggi Plex con Lets Encrypt SSL

Successivamente, si consiglia di proteggere Plex con Lets Encrypt SSL. Innanzitutto, dovrai installare il client Certbot Lets Encrypt nel tuo server per installare e gestire SSL. Puoi installarlo con il seguente comando:

apt-get install python3-certbot-nginx -y

Dopo aver installato Certbot, esegui il seguente comando per installare Lets Encrypt SSL sul tuo dominio:

certbot --nginx -d plex.example.com

Ti verrà chiesto di fornire un indirizzo email valido e di accettare i termini di servizio come mostrato di seguito:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for plex.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/sites-enabled/plex.conf

Successivamente, scegli se reindirizzare o meno il traffico HTTP su HTTPS come mostrato di seguito:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Digita 2 e premi Invio per completare l'installazione. Dovresti vedere il seguente output:

Redirecting all traffic on port 80 to ssl in /etc/nginx/sites-enabled/plex.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://plex.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=plex.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/plex.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/plex.example.com/privkey.pem
   Your cert will expire on 2020-10-30. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Ora puoi accedere al tuo server multimediale Plex in modo sicuro utilizzando l'URL https://plex.example.com.

Conclusione

Congratulazioni! hai installato correttamente il server multimediale Plex con Nginx come proxy inverso sul server Ubuntu 20.04. Ora puoi caricare file multimediali, musica e foto e accedervi dallo smartphone, dalla TV o da altri streaming box. Non esitate a chiedermi se avete domande.