GNU/Linux >> Belajar Linux >  >> Ubuntu

Instal Plex Media Server di Ubuntu 20.04

Plex adalah server streaming media yang kuat dan kaya fitur yang dapat digunakan untuk mengatur video, musik, dan foto Anda, dan mengalirkannya ke perangkat jarak jauh dari mana saja. Ini mendukung banyak sistem operasi termasuk, Linux, Windows, FreeBSD, macOS, dan banyak lagi. Anda dapat mengakses media yang disimpan di server Plex dari smart TV, smartphone, dan kotak streaming menggunakan klien media Plex.

Plex memiliki banyak fitur, beberapa di antaranya tercantum di bawah ini:

  • TV Langsung dan DVR.
  • Sinkronisasi Seluler.
  • Sinkronisasi Awan.
  • Fitur Musik Premium.
  • Perpustakaan Foto Premium.
  • Streaming dengan Akselerasi Perangkat Keras.
  • Kontrol Orang Tua.
  • Unggahan Kamera.
  • Batas Bandwidth dan Transcoding.

Dalam tutorial ini, kami akan menjelaskan cara menginstal server media Plex dengan Nginx sebagai proxy terbalik di server Ubuntu 20.04.

Prasyarat

  • Server yang menjalankan Ubuntu 20.04.
  • Kata sandi root telah dikonfigurasi.

Memulai

Pertama, Anda perlu memperbarui paket sistem Anda ke versi terbaru. Anda dapat memperbaruinya dengan perintah berikut:

apt-get update -y

Setelah paket Anda diperbarui, Anda dapat melanjutkan ke langkah berikutnya.

Instal Server Media Plex

Pertama, Anda perlu mengunduh versi terbaru server media Plex dari situs web resmi Plex. Anda dapat mengunduhnya dengan perintah berikut:

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

Setelah paket server media Plex diunduh, Anda dapat menginstalnya menggunakan perintah berikut:

dpkg -i plexmediaserver_1.20.1.3252-a78fef9a9_amd64.deb

Setelah server media Plex diinstal, mulai layanan Plex dan aktifkan untuk memulai pada sistem reboot dengan perintah berikut:

systemctl start plexmediaserver
systemctl enable plexmediaserver

Selanjutnya, Anda dapat memverifikasi status layanan Plex dengan perintah berikut:

systemctl status plexmediaserver

Anda akan melihat output berikut:

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

Pada titik ini, server media Plex dimulai dan mendengarkan pada port 32400. Anda dapat memverifikasinya dengan perintah berikut:

ss -lnpt | grep Plex

Anda akan melihat output berikut:

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

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Aktifkan Repositori Server Media Plex

Secara default, repositori server media Plex dinonaktifkan di APT. Jadi disarankan untuk mengaktifkannya agar Anda dapat memperbarui server media Plex menggunakan perintah APT. Anda dapat mengaktifkannya dengan mengedit file berikut:

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

Batalkan komentar pada baris berikut:

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

Simpan dan tutup file kemudian tambahkan kunci Plex GPG dengan perintah berikut:

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

Sekarang, perbarui repositori dengan perintah berikut untuk menerapkan perubahan:

apt-get update -y

Setelah repositori diperbarui, Anda dapat melanjutkan ke langkah berikutnya.

Konfigurasi Nginx untuk Plex

Selanjutnya, disarankan untuk menginstal dan mengkonfigurasi Nginx sebagai proxy terbalik untuk Plex. Jadi Anda dapat mengakses server media Plex menggunakan port 80.

Pertama, instal server web Nginx dengan perintah berikut:

apt-get install nginx -y

Setelah server web Nginx diinstal, buat file konfigurasi virtual host Nginx baru dengan perintah berikut:

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

Tambahkan baris berikut:

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

Simpan dan tutup file kemudian verifikasi Nginx untuk kesalahan sintaks dengan perintah berikut:

nginx -t

Anda akan mendapatkan output berikut:

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

Selanjutnya, aktifkan file konfigurasi virtual host Nginx dengan perintah berikut:

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

Terakhir, restart layanan Nginx untuk menerapkan perubahan konfigurasi:

systemctl restart nginx

Anda sekarang dapat memeriksa status Nginx dengan perintah berikut:

systemctl status nginx

Anda akan mendapatkan output berikut:

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

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Akses Server Media Plex

Pada titik ini, layanan media Plex diinstal dan dikonfigurasi dengan Nginx. Sekarang, buka browser web Anda dan akses server media Plex menggunakan URL http://plex.example.com. Anda akan melihat halaman berikut:

Sekarang, masuk dengan Google . Anda atau Facebook Akun. Anda akan melihat dasbor server media Plex di halaman berikut:

Amankan Plex dengan Let's Encrypt SSL

Selanjutnya, disarankan untuk mengamankan Plex dengan Let's Encrypt SSL. Pertama, Anda perlu menginstal klien Certbot Let's Encrypt di server Anda untuk menginstal dan mengelola SSL. Anda dapat menginstalnya dengan perintah berikut:

apt-get install python3-certbot-nginx -y

Setelah menginstal Certbot, jalankan perintah berikut untuk menginstal Let's Encrypt SSL di domain Anda:

certbot --nginx -d plex.example.com

Anda akan diminta untuk memberikan alamat email yang valid dan menerima persyaratan layanan seperti yang ditunjukkan di bawah ini:

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

Selanjutnya, pilih apakah akan mengarahkan lalu lintas HTTP ke HTTPS seperti yang ditunjukkan di bawah ini:

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

Ketik 2 dan tekan Enter untuk menyelesaikan instalasi. Anda akan melihat output berikut:

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.

Sekarang Anda dapat mengakses server media Plex dengan aman menggunakan URL https://plex.example.com.

Kesimpulan

Selamat! Anda telah berhasil menginstal server media Plex dengan Nginx sebagai proxy terbalik di server Ubuntu 20.04. Anda sekarang dapat mengunggah media, musik, dan foto Anda dan mengaksesnya dari smartphone, TV, atau kotak streaming lainnya. Jangan ragu untuk bertanya kepada saya jika Anda memiliki pertanyaan.


Ubuntu
  1. Cara Menginstal Server Media Plex di Ubuntu 20.04

  2. Cara Menginstal Server Media Plex di Ubuntu 18.04

  3. Cara Menginstal Server Media Plex di CentOS 7

  1. Cara Menginstal Server Media Plex di Debian 9

  2. Cara menginstal dan mengatur Plex Media Server Ubuntu 16.04

  3. Cara Menginstal Plex Media Server di Ubuntu 18.04 / Ubuntu 16.04 &Linux Mint 19

  1. Cara Menginstal Server Media Plex di Ubuntu 18.04 LTS

  2. Cara Menginstal Plex Media Server di Ubuntu 16.04 Server/Desktop

  3. Cara Menginstal Jellyfin Media Server di Ubuntu 20.04 LTS Server/Desktop