GNU/Linux >> Znalost Linux >  >> Ubuntu

Nainstalujte Plex Media Server na Ubuntu 20.04

Plex je výkonný server pro streamování médií s bohatými funkcemi, který lze použít k uspořádání videa, hudby a fotografií a jejich streamování na vzdálená zařízení odkudkoli. Podporuje mnoho operačních systémů včetně Linuxu, Windows, FreeBSD, macOS a mnoha dalších. K médiím uloženým na serveru Plex můžete přistupovat z chytré televize, smartphonu a streamovacího boxu pomocí mediálního klienta Plex.

Plex má mnoho funkcí, některé z nich jsou uvedeny níže:

  • Živé televizní vysílání a DVR.
  • Mobilní synchronizace.
  • Synchronizace s cloudem.
  • Prémiové hudební funkce.
  • Prémiové knihovny fotografií.
  • Hardwarově akcelerované streamování.
  • Rodičovská kontrola.
  • Nahrání z fotoaparátu.
  • Omezení šířky pásma a překódování.

V tomto tutoriálu vysvětlíme, jak nainstalovat mediální server Plex s Nginx jako reverzní proxy na serveru Ubuntu 20.04.

Předpoklady

  • Server se systémem Ubuntu 20.04.
  • Je nakonfigurováno heslo uživatele root.

Začínáme

Nejprve budete muset aktualizovat své systémové balíčky na nejnovější verzi. Můžete je aktualizovat pomocí následujícího příkazu:

apt-get update -y

Jakmile jsou vaše balíčky aktualizovány, můžete přejít k dalšímu kroku.

Instalovat Plex Media Server

Nejprve si budete muset stáhnout nejnovější verzi mediálního serveru Plex z oficiálních stránek Plex. Můžete si jej stáhnout pomocí následujícího příkazu:

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

Jakmile je balíček serveru médií Plex stažen, můžete jej nainstalovat pomocí následujícího příkazu:

dpkg -i plexmediaserver_1.20.1.3252-a78fef9a9_amd64.deb

Jakmile je server médií Plex nainstalován, spusťte službu Plex a povolte její spuštění při restartu systému pomocí následujícího příkazu:

systemctl start plexmediaserver
systemctl enable plexmediaserver

Dále můžete ověřit stav služby Plex pomocí následujícího příkazu:

systemctl status plexmediaserver

Měli byste vidět následující výstup:

? 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 ubuntu2004 systemd[1]: Starting Plex Media Server...
Sep 05 06:48:06 ubuntu2004 systemd[1]: Started Plex Media Server.

V tomto okamžiku je spuštěn mediální server Plex a naslouchá na portu 32400. Můžete to ověřit pomocí následujícího příkazu:

ss -lnpt | grep Plex

Měli byste vidět následující výstup:

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))    

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Povolit úložiště serveru Plex Media

Ve výchozím nastavení je úložiště serveru médií Plex v APT zakázáno. Proto se doporučuje povolit, abyste mohli aktualizovat server médií Plex pomocí příkazu APT. Můžete jej povolit úpravou následujícího souboru:

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

Odkomentujte následující řádek:

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

Uložte a zavřete soubor a poté přidejte klíč Plex GPG pomocí následujícího příkazu:

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

Nyní aktualizujte úložiště pomocí následujícího příkazu, abyste použili změny:

apt-get update -y

Jakmile je úložiště aktualizováno, můžete přejít k dalšímu kroku.

Konfigurace Nginx pro Plex

Dále se doporučuje nainstalovat a nakonfigurovat Nginx jako reverzní proxy pro Plex. Takže můžete přistupovat k serveru médií Plex pomocí portu 80.

Nejprve nainstalujte webový server Nginx pomocí následujícího příkazu:

apt-get install nginx -y

Jakmile je webový server Nginx nainstalován, vytvořte nový konfigurační soubor virtuálního hostitele Nginx pomocí následujícího příkazu:

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

Přidejte následující řádky:

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;
        }
}

Uložte a zavřete soubor a poté pomocí následujícího příkazu ověřte, zda Nginx neobsahuje nějakou chybu syntaxe:

nginx -t

Měli byste získat následující výstup:

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

Dále povolte konfigurační soubor virtuálního hostitele Nginx pomocí následujícího příkazu:

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

Nakonec restartujte službu Nginx, abyste použili změny konfigurace:

systemctl restart nginx

Nyní můžete zkontrolovat stav Nginx pomocí následujícího příkazu:

systemctl status nginx

Měli byste získat následující výstup:

? 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 ubuntu2004 systemd[1]: Starting A high performance web server and a reverse proxy server...
Sep 05 06:57:20 ubuntu2004 systemd[1]: Started A high performance web server and a reverse proxy server.

Jakmile budete hotovi, můžete přejít k dalšímu kroku.

Přístup k serveru Plex Media Server

V tomto okamžiku je nainstalována mediální služba Plex a nakonfigurována pomocí Nginx. Nyní otevřete webový prohlížeč a přejděte na mediální server Plex pomocí adresy URL http://plex.example.com. Měli byste vidět následující stránku:

Nyní se přihlaste pomocí svého Google nebo Facebook účet. Na následující stránce byste měli vidět řídicí panel serveru médií Plex:

Zabezpečte Plex pomocí Let's Encrypt SSL

Dále se doporučuje zabezpečit Plex pomocí Let's Encrypt SSL. Nejprve budete muset nainstalovat klienta Certbot Let's Encrypt na váš server, abyste mohli nainstalovat a spravovat SSL. Můžete jej nainstalovat pomocí následujícího příkazu:

apt-get install python3-certbot-nginx -y

Po instalaci Certbota spusťte následující příkaz pro instalaci Let's Encrypt SSL na vaši doménu:

certbot --nginx -d plex.example.com

Budete požádáni o zadání platné e-mailové adresy a přijetí podmínek služby, jak je uvedeno níže:

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): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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

Dále zvolte, zda chcete přesměrovat provoz HTTP na HTTPS, jak je uvedeno níže:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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

Zadejte 2 a stiskněte Enter pro dokončení instalace. Měli byste vidět následující výstup:

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.

Nyní můžete bezpečně přistupovat ke svému mediálnímu serveru Plex pomocí adresy URL https://plex.example.com.

Závěr

Gratulujeme! úspěšně jste nainstalovali mediální server Plex s Nginx jako reverzní proxy na serveru Ubuntu 20.04. Nyní můžete nahrávat svá média, hudbu a fotografie a přistupovat k nim ze smartphonu, TV nebo jiných streamovacích boxů. Pokud máte nějaké dotazy, neváhejte se mě zeptat.


Ubuntu
  1. Jak nainstalovat Plex Media Server na Ubuntu 20.04

  2. Jak nainstalovat Plex Media Server na Ubuntu 18.04

  3. Jak nainstalovat Plex Media Server na CentOS 7

  1. Jak nainstalovat Plex Media Server na Debian 9

  2. Jak nainstalovat a nastavit Plex Media Server Ubuntu 16.04

  3. Jak nainstalovat Plex Media Server na Ubuntu 18.04 / Ubuntu 16.04 &Linux Mint 19

  1. Jak nainstalovat Plex Media Server na Ubuntu 18.04 LTS

  2. Jak nainstalovat Plex Media Server na Ubuntu 16.04 Server/Desktop

  3. Jak nainstalovat Jellyfin Media Server na Ubuntu 20.04 LTS Server/Desktop