В этом руководстве вы узнаете, как установить Plex Requests на сервер с Ubuntu 16.04 и 18.04. Plex Requests представляет собой удобный инструмент, который позволяет пользователям автоматически запрашивать новый контент для вашего медиасервера Plex.
Plex Requests предоставляет вашим пользователям возможность запрашивать контент через отдельную веб-страницу. Актуальная версия — v1.21.2, выпущенная 16 февраля 2018 года. Функционал Plex Requests включает следующие возможности:
- Пользователи могут без труда находить контент по запросу на сайте TheMovieDB.
- Список запрашиваемых фильмов и сериалов с удобной структурой и базовая отчетность по возникшим проблемам.
- Новая система утверждения обеспечивает лёгкую аутентификацию пользователей.
- Автоматическое скачивание фильмов через интеграцию с CouchPotato
- Взаимодействие с SickRage и Sonarr для автоматической загрузки сериалов.
- Push-уведомления через Pushbullet или Pushover для обновления запросов.

Содержание статьи
- 1 Начальные условия
- 2 Настройка Plex Requests на сервере с операционной системой Ubuntu 16.04 или 18.04.
- 3 Запустите Plex Requests в фоновом режиме с использованием SystemD.
- 4 Конфигурация обратного прокси с использованием Nginx для поддомена.
- 5 Конфигурация обратного прокси-сервера Nginx для подкаталога.
- 6 Конфигурация обратного прокси-сервера Apache для поддомена.
- 7 Конфигурация обратного прокси-сервера Apache для подкаталога
- 8 Заключение
Начальные условия
Чтобы воспользоваться данным руководством, предполагается, что Plex media server уже установлен на Ubuntu 16.04 или Ubuntu 18.04. Рекомендуется ознакомиться с соответствующими статьями.
- Установка Plex Media Server на Ubuntu 16.04: пошаговая инструкция.
- Установка Plex Media Server на Ubuntu 18.04: пошаговая инструкция.
Чтобы Plex Requests функционировал корректно, вашему серверу потребуется не менее 1 ГБ оперативной памяти. Для более стабильной работы рекомендуется 2 ГБ. Не будем тянуть время, давайте установим Plex Requests.
Настройка Plex Requests на сервере с операционной системой Ubuntu 16.04 или 18.04.
Plex Requests разработан на основе MeteorJS — бесплатного и открытого JavaScript фреймворка, предназначенного для создания веб — и мобильных приложений. Чтобы запустить Plex Requests, необходимо установить MeteorJS, выполнив следующую команду.
sudo apt install curl curl https://install. meteor.com/ | sh

После этого перейдите на Github и загрузите свежую версию.

Для загрузки его через командную строку воспользуйтесь такой командой. При выходе новой версии просто поменяйте 1.12.2 на номер актуальной версии.
wget - O plexrequests-meteor-1.21.2.zip https://codeload. github.com/lokenx/plexrequests-meteor/zip/v1.21.2
После этого извлеките содержимое архива.
sudo apt install unzip unzip plexrequests-meteor-1.21.2.zip
Перейдите в папку.
cd plexrequests-meteor-1.21.2/
Теперь у нас есть возможность запустить Plex Requests, используя следующую команду.
meteor
Имейте в виду, что если на вашем сервере не хватает оперативной памяти, выполнение этой команды не удастся, и вы получите следующую ошибку. ENOMEM указывает на «Ошибка – недостаточно памяти».
Error: spawn ENOMEM
Plex Requests по умолчанию работает на порту 3000. Если этот порт занят другим приложением, можно указать альтернативный порт, например, 3002. (MongoDB функционирует на порту 3001.)
meteor --port 3002

Теперь вы можете перейти на страницу администрирования Plex Requests по следующему адресу
ваш-ip-сервера:3000/admin
Если файрвол блокирует порт 3000, выполните следующую команду для его разблокировки и разрешения доступа.
sudo iptables - I INPUT - p tcp --dport 3000 - j ACCEPT

Для создания учетной записи администратора нажмите на ссылку «Регистрация».

Запустите Plex Requests в фоновом режиме с использованием SystemD.
По умолчанию команда meteor работает в фоновом режиме, и если вы закроете терминал, Plex Requests перестанет функционировать. Для того чтобы запустить его в фоновом режиме, можно создать службу SystemD. Сначала нажмите Ctrl+C, чтобы завершить текущий процесс meteor. Затем используйте текстовый редактор командной строки, например nano, для создания файла службы SystemD для Plex Requests.
sudo nano /etc/systemd/system/plex-requests.service
В данном файле необходимо установить переменную окружения HOME, определить рабочий каталог и указать, что meteor будет функционировать от имени стандартного пользователя. Поместите следующий текст в этот файл и замените выделенный красным цветом текст на подходящий.
[Unit] Description=Plex Requests After=syslog. target network. target [Service] Environment color: #ff0000;">/home/linuxbabe"РабочийКаталог="/home/linuxbabe/plexrequests-meteor-1.21.2ExecStart=/usr/local/bin/meteor Тип=simple Перезапуск=всегда ВремяПерезапуска=10 Пользователь=linuxbabe Group=linuxbabe [Install] WantedBy=multi-user. target
Для сохранения файла в текстовом редакторе Nano используйте комбинацию клавиш Ctrl+O, а затем нажмите Enter для подтверждения. Чтобы закрыть редактор, нажмите Ctrl+X. Теперь мы можем запустить службу SystemD с помощью:
sudo systemctl start plex-requests
И активировать автоматический запуск при старте операционной системы.
sudo systemctl enable plex-requests
Теперь убедитесь в статусе:
systemctl status plex-requests
Проверьте, что она функционирует. После этого нажмите q, чтобы восстановить управление терминалом.

Конфигурация обратного прокси с использованием Nginx для поддомена.
Для доступа к Plex Requests через доменное имя, избегая ввода IP-адреса и номера порта, необходимо настроить обратный прокси с использованием Nginx. Чтобы установить веб-сервер Nginx, выполните следующую команду.
sudo apt install nginx
Далее необходимо подготовить файл виртуального хоста Nginx для Plex Requests.
sudo nano /etc/nginx/conf.d/plex-requests.conf
Добавьте указанные строки в файл, заменив requests. example.com на ваше доменное имя. Убедитесь, что вы настроили A-запись для поддомена. Блок location / обеспечит перенаправление запросов на порт 3000 с помощью Nginx.
server { listen 80; server_name requests. example.com; error_log /var/log/nginx/plex-requests. error; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #upgrade to WebSocket protocol proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; }}
Сохраните изменения в файле и закройте его. После этого проверьте настройки Nginx.
sudo nginx - t
После успешного прохождения теста перезапустите Nginx, чтобы изменения в конфигурации начали действовать.
sudo systemctl reload nginx
Теперь Plex Requests работает через Nginx, и вы можете получить доступ к нему по доменному имени (requests. example.com).
Для активации защищенного соединения HTTPS вы можете получить и установить бесплатный сертификат TLS/SSL от Let’s Encrypt. Установите клиента Let’s Encrypt (certbot) следующим образом:
sudo apt install software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt update sudo apt install certbot python3-certbot-nginx
После этого выполните команду, которая задействует плагин Certbot для Nginx для автоматического получения и установки сертификата TLS. Замените выделенный красным текстом на ваши собственные данные.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email your-email-address --domain requests. example.com
Через несколько секунд вам должно прийти уведомление с поздравлениями, которое подтвердит успешное получение сертификата.

Обновите страницу Plex Requests, и вы заметите, что HTTP-соединение будет автоматически перенаправлено на безопасное HTTPS-соединение.
Конфигурация обратного прокси-сервера Nginx для подкаталога.
Для того чтобы обеспечить доступ к Plex Requests через подкаталог вашего домена, необходимо открыть файл виртуального хоста Nginx, который используется вашим медиасервером Plex. У меня этот файл называется plex.conf.
sudo nano /etc/nginx/conf.d/plex.conf
Если вы ознакомились с моим предыдущим руководством по медиасерверу Plex, то у вас уже должен быть активирован HTTPS для вашего Plex-сервера. Теперь просто добавьте следующие строки в раздел SSL-сервера, который обозначен как listen 443 ssl.
location ~
< proxy_pass http://localhost:3000; 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 Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; >
В данной конфигурации мы устанавливаем правило, согласно которому, если URL запроса завершается на /search, /admin, /requests, /packages, /sockjs, /app или /merged-stylesheets. css, Nginx будет перенаправлять запросы на порт 3000. Для URL, заканчивающихся на /sockjs, будут поступать как обычные HTTP-запросы, так и WebSocket-запросы, поэтому мы добавляем последние две директивы proxy_set_header для поддержки WebSocket-протокола.
Сохраните изменения в файле и закройте его. После этого проверьте настройки Nginx.
sudo nginx - t
После успешного прохождения теста перезапустите Nginx, чтобы изменения в конфигурации начали действовать.
sudo systemctl reload nginx
Теперь основная веб-страница Plex Requests можно найти по подкаталогу.
example.com/search
Страница для администраторов можно найти по следующему адресу.
example.com/admin
Конфигурация обратного прокси-сервера Apache для поддомена.
Если вам больше нравится Apache, чем Nginx, вы можете установить его следующим образом:
sudo apt install apache2
Для настройки Apache в качестве обратного прокси потребуется активировать модули прокси и заголовков.
sudo a2enmod proxy proxy_http proxy_wstunnel headers
После этого необходимо сформировать файл виртуального хоста для Plex Requests.
sudo nano /etc/apache2/sites-available/plex-requests.conf
Сохраните приведенные ниже строки в файл. Замените requests. example.com на свое собственное доменное имя. Также не забудьте создать запись A для поддомена.
Сохраните файл и закройте его. После этого активируйте этот виртуальный хост.
sudo a2ensite plex-requests.conf
sudo systemctl restart apache2
Теперь Plex Requests работает под управлением Apache, и вы можете получить доступ к нему через доменное имя (requests. example.com).
Чтобы активировать защищенное HTTPS-соединение, вам доступен бесплатный TLS/SSL сертификат от Let’s Encrypt. Для этого установите клиент Let’s Encrypt (certbot) следующим образом:
sudo apt install software-properties-common sudo add-apt-repository ppa:certbot/certbot sudo apt update sudo apt install certbot python3-certbot-apache
После этого выполните команду, которая применяет плагин Certbot для Nginx, чтобы автоматически получить и установить сертификат TLS. Не забудьте заменить выделенный красным текст на свои фактические данные.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email your-email-address --domain requests. example.com
Спустя несколько секунд вам будет показано поздравительное сообщение, указывающее на успешное получение сертификата.

Перезагрузите страницу Plex Requests, и вы заметите, что HTTP-соединение будет автоматически перенаправлено на защищенное соединение HTTPS.
Конфигурация обратного прокси-сервера Apache для подкаталога
Чтобы обеспечить доступ к Plex Requests через подкаталог вашего домена, вам необходимо открыть файл виртуального хоста Apache, связанный с вашим медиа-сервером Plex. В моем случае он называется plex-le-ssl.conf.Имейте в виду, что редактировать следует виртуальный хост, который работает на порту 443.
sudo nano /etc/nginx/conf.d/plex-le-ssl.conf
Если вы ознакомились с моим предыдущим руководством по настройке медиа-сервера Plex, то теперь у вас должен быть активирован HTTPS для вашего сервера. Вам необходимо просто вставить следующие строки в соответствующий блок.
RewriteEngine on # Если запрашиваемый URL предназначен для Plex Requests, перенаправьте запрос на localhost:3000 RewriteCond % ^/(search|admin|requests|packages|app|sockjs|merged-stylesheets. css) [NC] RewriteRule .* http://localhost:3000% [P] # Это для запросов Websocket.

