Plex Media Server unter Ubuntu 20.04 installieren

Plex ist ein leistungsstarker und funktionsreicher Medien-Streaming-Server, mit dem Sie Ihre Videos, Musik und Fotos organisieren und an entfernte Geräte von überall her streamen können. Er unterstützt viele Betriebssysteme, darunter Linux, Windows, FreeBSD, MacOS und viele andere. Sie können auf die auf dem Plex Server gespeicherten Medien von Smart TV, Smartphone und Streaming-Box mit dem Plex Media Client zugreifen.

Plex hat eine Menge Funktionen, von denen einige unten aufgeführt sind:

  • Live-Fernsehen und DVR.
  • Mobile Synchronisierung.
  • Wolken-Synchronisierung.
  • Premium-Musikfunktionen.
  • Premium-Fotobibliotheken.
  • Hardware-beschleunigtes Streaming.
  • Jugendschutz.
  • Kamera-Upload.
  • Bandbreiten- und Transkodierungsbeschränkungen.

In diesem Tutorial werden wir erklären, wie man Plex-Medienserver mit Nginx als Reverse-Proxy auf einem Ubuntu 20.04-Server installiert.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 20.04 läuft.
  • Ein Root-Passwort wird konfiguriert.

Erste Schritte

Zuerst müssen Sie Ihre Systempakete auf die neueste Version aktualisieren. Sie können sie mit dem folgenden Befehl aktualisieren:

apt-get update -y

Sobald Ihre Pakete aktualisiert sind, können Sie mit dem nächsten Schritt fortfahren.

Plex-Medienserver installieren

Zuerst müssen Sie die neueste Version des Plex-Medienservers von der offiziellen Plex-Website herunterladen. Sie können sie mit dem folgenden Befehl herunterladen:

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

Sobald das Plex-Medienserver-Paket heruntergeladen ist, können Sie es mit dem folgenden Befehl installieren:

dpkg -i plexmediaserver_1.20.1.3252-a78fef9a9_amd64.deb

Sobald der Plex-Medienserver installiert ist, starten Sie den Plex-Dienst und aktivieren ihn beim Systemneustart mit dem folgenden Befehl:

systemctl start plexmediaserver
systemctl enable plexmediaserver

Als nächstes können Sie den Status des Plex-Dienstes mit dem folgenden Befehl überprüfen:

systemctl status plexmediaserver

Sie sollten die folgende Ausgabe sehen:

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

An diesem Punkt wird der Plex Media Server gestartet und hört auf Port 32400. Sie können dies mit dem folgenden Befehl überprüfen:

ss -lnpt | grep Plex

Sie sollten die folgende Ausgabe sehen:

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

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Plex-Medienserver-Repository aktivieren

Standardmäßig ist das Plex-Medienserver-Repository in der APT deaktiviert. Es wird daher empfohlen, es zu aktivieren, damit Sie den Plex-Medienserver mit dem APT-Befehl aktualisieren können. Sie können es aktivieren, indem Sie die folgende Datei bearbeiten:

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

Kommentieren Sie die folgende Zeile aus:

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

Speichern und schließen Sie die Datei und fügen Sie dann den Plex GPG Schlüssel mit dem folgenden Befehl hinzu:

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

Aktualisieren Sie nun das Repository mit dem folgenden Befehl, um die Änderungen zu übernehmen:

apt-get update -y

Sobald das Repository aktualisiert ist, können Sie mit dem nächsten Schritt fortfahren.

Konfigurieren Sie Nginx für Plexus

Als nächstes wird empfohlen, Nginx als Reverse-Proxy für Plex zu installieren und zu konfigurieren. So können Sie über den Port 80 auf den Plex-Medienserver zugreifen.

Installieren Sie zuerst den Nginx-Webserver mit dem folgenden Befehl:

apt-get install nginx -y

Sobald der Nginx-Webserver installiert ist, erstellen Sie eine neue Nginx-Konfigurationsdatei für den virtuellen Host mit folgendem Befehl:

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

Fügen Sie die folgenden Zeilen hinzu:

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

Speichern und schließen Sie die Datei und überprüfen Sie dann Nginx mit dem folgenden Befehl auf Syntaxfehler:

nginx -t

Sie sollten die folgende Ausgabe erhalten:

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

Als Nächstes aktivieren Sie die Konfigurationsdatei des virtuellen Nginx-Hosts mit dem folgenden Befehl:

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

Starten Sie abschließend den Nginx-Dienst neu, um die Konfigurationsänderungen zu übernehmen:

systemctl restart nginx

Sie können nun den Nginx-Status mit dem folgenden Befehl überprüfen:

systemctl status nginx

Sie sollten die folgende Ausgabe erhalten:

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

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Zugriff auf Plex Media Server

An diesem Punkt wird der Plex-Mediendienst installiert und mit Nginx konfiguriert. Öffnen Sie nun Ihren Webbrowser und greifen Sie über die URL http://plex.example.com auf den Plex-Medienserver zu. Sie sollten die folgende Seite sehen:

Plex Medien-Server

Melden Sie sich nun mit Ihrem Google- oder Facebook-Konto an. Auf der folgenden Seite sollten Sie das Dashboard des Plex-Medienservers sehen:

Plex Dashboard

Sicherer Plex mit Let’s Encrypt SSL

Als nächstes wird empfohlen, Plexus mit Let’s Encrypt SSL zu sichern. Zuerst müssen Sie den Certbot-Client Let’s Encrypt auf Ihrem Server installieren, um SSL zu installieren und zu verwalten. Sie können ihn mit dem folgenden Befehl installieren:

apt-get install python3-certbot-nginx -y

Nach der Installation von Certbot führen Sie den folgenden Befehl aus, um Let’s Encrypt SSL auf Ihrer Domain zu installieren:

certbot --nginx -d plex.example.com

Sie werden gebeten, eine gültige E-Mail-Adresse anzugeben und den unten aufgeführten Bedingungen zuzustimmen:

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): hitjethva@gmail.com

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

Als nächstes wählen Sie, ob HTTP-Verkehr wie unten gezeigt zu HTTPS umgeleitet werden soll oder nicht:

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

Geben Sie 2 ein und drücken Sie Enter, um die Installation abzuschließen. Sie sollten die folgende Ausgabe sehen:

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.

Sie können nun sicher auf Ihren Plex-Medienserver über die URL https://plex.example.com zugreifen.

Schlussfolgerung

Herzlichen Glückwunsch! Sie haben den Plex-Medienserver mit Nginx als Reverse-Proxy auf dem Ubuntu 20.04-Server erfolgreich installiert. Sie können nun Ihre Medien, Musik und Fotos hochladen und über das Smartphone, den Fernseher oder andere Streaming-Boxen darauf zugreifen. Zögern Sie nicht, mich zu fragen, wenn Sie Fragen haben.

Das könnte dich auch interessieren …