Инструкция по установке Plex Requests на сервере под управлением Ubuntu 16.04 и 18.04

В этом руководстве вы узнаете, как установить 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 для обновления запросов.

запросы plex в подкаталоге nginx

Начальные условия

Чтобы воспользоваться данным руководством, предполагается, что 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

Установка MeteorJS на Ubuntu 16.04 и 18.04.

После этого перейдите на 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.)

Читайте также:  Как настроить виртуальные хосты Nginx на Ubuntu 18.04 и 16.04 LTS

meteor --port 3002

запросы Plex на порту 3000 для Meteor

Теперь вы можете перейти на страницу администрирования Plex Requests по следующему адресу

ваш-ip-сервера:3000/admin

Если файрвол блокирует порт 3000, выполните следующую команду для его разблокировки и разрешения доступа.

sudo iptables - I INPUT - p tcp --dport 3000 - j ACCEPT

создать учетную запись администратора в Plex запросы

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

Доступ к входу в Plex Requests запрещён.

Запустите 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, чтобы восстановить управление терминалом.

система запросов meteor plex работает в фоновом режиме с использованием systemd

Конфигурация обратного прокси с использованием 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.

Читайте также:  Основные возможности команды file в Linux для работы с файлами

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 запрашивает certbot

Обновите страницу 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 ~

  • (/поиск|/админ|/запросы|/пакеты|/sockjs|/приложение|/объединённые-стили. css)
  • < 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 для поддомена.

    ServerName requests. example.comОшибка 404 обрабатывается с помощью документа /404.html. Запросы обрабатываются через прокси: ProxyPass направляет на http://localhost:3000/, а ProxyPassReverse делает то же самое для обратного прокси. При получении обновления протокола на WebSocket следует изменить источник, включая протокол, хост и порт. Включен механизм перезаписи: RewriteEngine on. Условия перезаписи: если запрос - это WebSocket (RewriteCond % ^WebSocket$ [NC]) и если он запрашивает Upgrade (RewriteCond % ^Upgrade$ [NC]), тогда применяется правило RewriteRule .* для перенаправления на ws://localhost:3000% [P].

    Сохраните файл и закройте его. После этого активируйте этот виртуальный хост.

    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 запрашивает certbot

    Перезагрузите страницу 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.

    less

    Сохраните файл и закройте его. После этого перезапустите Apache, чтобы изменения начали действовать.

    sudo systemctl reload apache2

    Теперь основная веб-страница Plex Requests можно найти по подкаталогу.

    example.com/search

    Страница для администраторов можно найти по следующему адресу.

    example.com/admin

    Заключение

    Надеюсь, данное руководство было полезным для вас при установке Plex Requests на Ubuntu 18.04 и 16.04. Как всегда, если вам понравилась эта статья, подписывайтесь на нашу бесплатную рассылку, чтобы получать больше советов и рекомендаций.