Plex Media Server – это DIY решение для потоковой передачи данных в вашей локальной среде. Он позволяет хранить различные типы медиафайлов в централизованном месте, а затем вы можете транслировать все медиафайлы с различных мест и устройств, таких как телевизоры, смартфоны и т.д.
Это руководство покажет вам, как установить Plex Media Server на сервер Debian 12. Вы установите Plex с UFW (Uncomplicated Firewall) и Nginx в качестве обратного прокси.
Установка зависимостей
Перед установкой давайте установим необходимые зависимости на вашу машину Debian.
Во-первых, выполните приведённую ниже команду для обновления репозитория Debian.
sudo apt update
После этого установите зависимости в систему Debian с помощью команды ниже. Введите y, когда вас спросят, затем нажмите ENTER, чтобы продолжить.
sudo apt install curl unzip socat libexpat1 apt-transport-https wget software-properties-common
После установки зависимостей вы готовы к установке репозитория Plex Media Repository. Но прежде вы должны добавить репозиторий Plex в систему Debian.
Выполните приведённую ниже команду, чтобы добавить репозиторий Plex на вашу машину Debian.
echo deb https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list
Затем добавьте ключ GPG для репозитория Plex с помощью следующей команды.
curl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add -
После добавления репозитория и ключа GPG, обновите репозиторий Debian с помощью следующей команды.
sudo apt update
Теперь, когда репозиторий обновлен, вы можете установить пакет plexmediaserver с помощью следующей команды.
sudo apt install plexmediaserver
После завершения установки выполните следующие действия systemctl команда для запуска и включения plexmediaserver сервис.
sudo systemctl start plexmediaserver sudo systemctl enable plexmediaserver
plexmediaserver должен быть запущен на вашей машине Debian. Теперь проверьте его с помощью команды ниже.
sudo systemctl is-enabled plexmediaserver sudo systemctl status plexmediaserver
Если всё прошло успешно, вы увидите plexmediaserver со статусом активен (работает).
Настройка UFW
В этом руководстве вы будете использовать UFW для защиты Plex Media Server. Поэтому сначала вы должны установить UFW на ваш сервер Debian, затем включить профиль OpenSSH и добавить основной порт для Plex Media Server.
Установите UFW на систему Debian с помощью следующей команды.
sudo apt install ufw -y
После установки добавьте профиль OpenSSH, чтобы разрешить трафик SSH и открыть порт 32400 для Plex.
sudo ufw allow OpenSSH sudo ufw allow 32400
Теперь выполните приведенную ниже команду, чтобы запустить и включить UFW. Когда появится запрос, введите y для подтверждения.
sudo ufw enable
Наконец, проверьте состояние UFW и список включенных правил с помощью следующей команды. Убедитесь, что UFW работает со статусом Active и что OpenSSH и порт 32400 включены.
sudo ufw status
Установка и настройка Nginx в качестве обратного прокси
На данный момент вы установили Plex и настроили UFW. Теперь давайте установим Nginx и настроим его в качестве обратного прокси для вашей установки Plex Media Server.
Установите веб-сервер Nginx на вашу машину Debian с помощью команды ниже. Введите y, когда появится запрос, затем нажмите ENTER, чтобы продолжить.
sudo apt install nginx
После установки Nginx выполните следующую команду, чтобы проверить работу службы Nginx. Убедитесь, что служба Nginx запущена и включена.
sudo systemctl is-enabled nginx sudo systemctl status nginx
Если служба включена, вы должны получить вывод типа enabled (включена). Если служба запущена, вы увидите вывод active (работает).
Запустив Nginx, выполните приведенную ниже команду ufw, чтобы открыть порты HTTP и HTTPS для трафика Plex. По умолчанию UFW предоставляет профиль приложения ‘WWW Full’ для открытия HTTP и HTTPS.
Выполните приведенную ниже команду, чтобы включить профиль ‘Nginx Full’, а затем перезагрузите UFW для его применения.
sudo ufw allow 'Nginx Full' sudo ufw reload
Далее создайте новую конфигурацию серверного блока /etc/nginx/sites-available/plex , используя команду редактора nano, приведенную ниже. Это будет использоваться в качестве обратного прокси для установки Plex Media Server.
vim /etc/nginx/sites-available/plex
Добавьте приведенную ниже конфигурацию и не забудьте изменить имя домена на имя домена Plex. Здесь вы также можете использовать локальный домен для локального окружения.
upstream plex_backend { server 127.0.0.1:32400; keepalive 32; }
server {
listen 80;
server_name plex.local;
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 the 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 is sent to the client as soon as the data is received from Plex.
proxy_redirect off;
proxy_buffering off;
location / {
proxy_pass http://plex_backend;
}
}
Сохраните файл и выйдите из редактора.
Далее выполните приведенную ниже команду, чтобы включить /etc/nginx/sites-available/plex блок сервера и проверьте синтаксис Nginx.
sudo ln -s /etc/nginx/sites-available/plex /etc/nginx/sites-enabled sudo nginx -t
Убедитесь, что у вас нет ошибок, и убедитесь, что вы получаете вывод ‘синтаксис в порядке – тест пройден успешно‘.
Наконец, выполните приведенную ниже команду, чтобы перезапустить службу Nginx и применить изменения в Nginx. После этого ваш Plex Media Server должен быть доступен через порты HTTP и HTTPS, которые обрабатываются веб-сервером Nginx.
sudo systemctl restart nginx
В этом руководстве вы защитите свою установку Plex с помощью сертификатов SSL/TLS. Для пользователей локального домена вы можете сгенерировать самоподписанные сертификаты и вручную включить HTTPS в блоке сервера Nginx. Если вы используете публичный домен, используйте Certbot и Letsencrypt для генерации SSL/TLS-сертификатов.
Выполните приведенную ниже команду, чтобы установить certbot и плагин certbot Nginx.
sudo apt install certbot python3-certbot-nginx
После завершения установки выполните приведенную ниже команду certbot, чтобы сгенерировать SSL/TLS-сертификаты для вашего доменного имени Plex. Также не забудьте изменить адрес электронной почты и имя домена на свои данные.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d plex.local
После завершения процесса ваш серверный блок Nginx будет автоматически настроен на HTTPS. А ваши сертификаты SSL/TLS можно найти в каталоге /etc/letsencrypt/live/domain.com.
Откройте веб-браузер и зайдите на доменное имя Plex. Вы будете перенаправлены на сайт plex.tv для регистрации учетной записи Plex. Вы можете зарегистрироваться через Facebook/Gmail/Apple или через адрес электронной почты.
После регистрации откройте новую вкладку и перейдите на доменное имя Plex. Если установка прошла успешно, у вас должна появиться панель Plex Media Server, как показано ниже:
Заключение
Поздравляем! Теперь вы установили Plex Media Server на сервер Debian 12. Вы также настроили UFW на Debian для защиты установки Plex. Кроме того, вы настроили Nginx в качестве обратного прокси для Plex Media Server и защитили Plex с помощью сертификатов SSL.TLS от Letsencrypt.