Поиск по сайту:

Установите Plex Media Server на Ubuntu 20.04


Это руководство существует для этих версий ОС

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

На этой странице

  1. Предпосылки
  2. Начало работы
  3. Установить Plex Media Server
  4. Включить репозиторий Plex Media Server
  5. Настройка Nginx для Plex
  6. Доступ к мультимедийному серверу Plex
  7. Защитите Plex с помощью Lets Encrypt SSL
  8. Заключение

Plex — это мощный и многофункциональный сервер потоковой передачи мультимедиа, который можно использовать для организации вашего видео, музыки и фотографий и их потоковой передачи на удаленные удаленные устройства из любого места. Он поддерживает множество операционных систем, включая Linux, Windows, FreeBSD, macOS и многие другие. Вы можете получить доступ к мультимедиа, хранящемуся на сервере Plex, со смарт-телевизора, смартфона и потокового устройства с помощью медиа-клиента Plex.

Plex имеет множество функций, некоторые из них перечислены ниже: 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; }

  • Прямой эфир и DVR.
  • Синхронизация с мобильным устройством.
  • Облачная синхронизация.
  • Премиум-музыкальные возможности.
  • Фотобиблиотеки премиум-класса.
  • Потоковая передача с аппаратным ускорением.
  • Родительский контроль.
  • Загрузка с камеры.
  • Ограничения пропускной способности и транскодирования.

В этом руководстве мы объясним, как установить медиа-сервер Plex с Nginx в качестве обратного прокси-сервера на сервере Ubuntu 20.04.

Предпосылки

  • Сервер под управлением Ubuntu 20.04.
  • Настроен пароль root.

Начиная

Во-первых, вам нужно будет обновить системные пакеты до последней версии. Вы можете обновить их с помощью следующей команды:

apt-get update -y

Как только ваши пакеты будут обновлены, вы можете перейти к следующему шагу.

Установите Plex Media Server

Во-первых, вам нужно будет загрузить последнюю версию медиа-сервера Plex с официального сайта Plex. Вы можете скачать его с помощью следующей команды:

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

После загрузки пакета медиасервера Plex вы можете установить его с помощью следующей команды:

dpkg -i plexmediaserver_1.20.1.3252-a78fef9a9_amd64.deb

После установки медиасервера Plex запустите службу Plex и включите ее запуск при перезагрузке системы с помощью следующей команды:

systemctl start plexmediaserver
systemctl enable plexmediaserver

Затем вы можете проверить состояние службы Plex с помощью следующей команды:

systemctl status plexmediaserver

Вы должны увидеть следующий вывод:

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

На данный момент медиа-сервер Plex запущен и прослушивает порт 32400. Вы можете проверить это с помощью следующей команды:

ss -lnpt | grep Plex

Вы должны увидеть следующий вывод:

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

Как только вы закончите, вы можете перейти к следующему шагу.

Включить репозиторий Plex Media Server

По умолчанию репозиторий медиасервера Plex отключен в APT. Поэтому рекомендуется включить его, чтобы вы могли обновить медиасервер Plex с помощью команды APT. Вы можете включить его, отредактировав следующий файл:

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

Раскомментируйте следующую строку:

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

Сохраните и закройте файл, затем добавьте ключ Plex GPG с помощью следующей команды:

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

Теперь обновите репозиторий с помощью следующей команды, чтобы применить изменения:

apt-get update -y

Как только репозиторий будет обновлен, вы можете перейти к следующему шагу.

Настроить Nginx для Plex

Далее рекомендуется установить и настроить Nginx в качестве обратного прокси для Plex. Таким образом, вы можете получить доступ к медиасерверу Plex, используя порт 80.

Сначала установите веб-сервер Nginx с помощью следующей команды:

apt-get install nginx -y

После установки веб-сервера Nginx создайте новый файл конфигурации виртуального хоста Nginx с помощью следующей команды:

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

Добавьте следующие строки:

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

Сохраните и закройте файл, затем проверьте Nginx на наличие синтаксической ошибки с помощью следующей команды:

nginx -t

Вы должны получить следующий результат:

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

Затем включите файл конфигурации виртуального хоста Nginx с помощью следующей команды:

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

Наконец, перезапустите службу Nginx, чтобы применить изменения конфигурации:

systemctl restart nginx

Теперь вы можете проверить статус Nginx с помощью следующей команды:

systemctl status nginx

Вы должны получить следующий результат:

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

Как только вы закончите, вы можете перейти к следующему шагу.

Доступ к Plex Media Server

На этом этапе мультимедийная служба Plex установлена и настроена с помощью Nginx. Теперь откройте веб-браузер и получите доступ к медиасерверу Plex, используя URL-адрес http://plex.example.com. Вы должны увидеть следующую страницу:

Теперь войдите в свою учетную запись Google или Facebook. Вы должны увидеть панель управления медиасервером Plex на следующей странице:

Безопасный Plex с Lets Encrypt SSL

Далее рекомендуется защитить Plex с помощью Lets Encrypt SSL. Во-первых, вам нужно будет установить клиент Certbot Lets Encrypt на свой сервер для установки и управления SSL. Вы можете установить его с помощью следующей команды:

apt-get install python3-certbot-nginx -y

После установки Certbot выполните следующую команду, чтобы установить Lets Encrypt SSL в своем домене:

certbot --nginx -d plex.example.com

Вам будет предложено указать действительный адрес электронной почты и принять условия обслуживания, как показано ниже:

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

Затем выберите, следует ли перенаправлять HTTP-трафик на HTTPS, как показано ниже:

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

Введите 2 и нажмите Enter, чтобы завершить установку. Вы должны увидеть следующий вывод:

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.

Теперь вы можете безопасно получить доступ к своему медиасерверу Plex, используя URL-адрес https://plex.example.com.

Заключение

Поздравляем! вы успешно установили медиа-сервер Plex с Nginx в качестве обратного прокси-сервера на сервере Ubuntu 20.04. Теперь вы можете загружать свои медиафайлы, музыку и фотографии и получать к ним доступ со смартфона, телевизора или других потоковых устройств. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.