GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar solicitudes de Plex en el servidor Ubuntu 16.04, 18.04

Este tutorial le mostrará cómo instalar Plex Requests en el servidor Ubuntu 16.04 y Ubuntu 18.04. Plex Requests es una forma simple y automatizada para que los usuarios soliciten contenido nuevo en su servidor de medios Plex.

Plex Requests permite a sus usuarios enviar solicitudes de contenido en una página web dedicada. La última versión es v1.21.2, lanzada el 16 de febrero de 2018. Las características de Plex Requests son las siguientes:

  • Los usuarios pueden buscar fácilmente contenido para solicitar en TheMovieDB
  • Lista útil de películas y series de TV solicitadas e informes de problemas básicos
  • Autenticación de usuario simple con nuevo sistema de aprobación
  • Integración CouchPotato para descargas automáticas de películas
  • Integración de SickRage y Sonarr para descargas automáticas de series de TV
  • Notificaciones Pushbullet o Pushover para mantenerse al día con las solicitudes

Requisitos

Para seguir este tutorial, se supone que ya configuró el servidor de medios Plex en Ubuntu 16.04 o Ubuntu 18.04. Puede consultar los siguientes artículos.

  • Cómo configurar el servidor multimedia Plex en Ubuntu 16.04
  • Cómo configurar el servidor multimedia Plex en Ubuntu 18.04

Para ejecutar Plex Requests, su servidor debe tener al menos 1 GB de RAM. Se recomiendan 2 GB para que funcione sin problemas. Sin más preámbulos, instalemos Plex Requests.

Instalar solicitudes de Plex en el servidor Ubuntu 16.04, 18.04

Plex Requests está escrito con MeteorJS, que es un marco web de JavaScript gratuito y de código abierto para crear aplicaciones web y móviles. Para ejecutar Plex Requests, necesitamos instalar MeteorJS con el siguiente comando.

sudo apt install curl

curl https://install.meteor.com/ | sh

Luego dirígete a Github y descarga la última versión.

Para descargarlo desde la línea de comandos, use el siguiente comando. Si sale una nueva versión, simplemente reemplace 1.12.2 con el nuevo número de versión.

wget -O plexrequests-meteor-1.21.2.zip https://codeload.github.com/lokenx/plexrequests-meteor/zip/v1.21.2

A continuación, descomprima el archivo.

sudo apt install unzip

unzip plexrequests-meteor-1.21.2.zip

Cd en el directorio.

cd plexrequests-meteor-1.21.2/

Ahora podemos ejecutar Plex Requests con el siguiente comando.

meteor

Tenga en cuenta que si su servidor no tiene suficiente RAM, este comando fallará y verá el siguiente error. ENOMEM significa "Error:sin memoria".

Error: spawn ENOMEM

Además, Plex Requests escucha de manera predeterminada en el puerto 3000. Si otra aplicación está usando el puerto 3000, especifique un puerto alternativo como 3002. (MongoDB escucha en el puerto 3001).

meteor --port 3002

Ahora puede acceder a la página de administración de Plex Requests en

your-server-ip:3000/admin

Si el puerto 3000 está bloqueado por el firewall, ejecute el siguiente comando para permitir el acceso al puerto 3000.

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


Haga clic en el enlace Registrarse para crear una cuenta de administrador.

Ejecutar solicitudes de Plex en segundo plano con SystemD

De forma predeterminada, el comando Meteor se ejecuta en primer plano, lo que significa que si sale de la terminal, Plex Requests dejará de ejecutarse. Para ejecutarlo en segundo plano, podemos crear un servicio SystemD. Primero, presiona Ctrl+C para detener el proceso de meteoros actual. A continuación, cree un archivo de servicio SystemD para las solicitudes de Plex con un editor de texto de línea de comandos como nano.

sudo nano /etc/systemd/system/plex-requests.service

En este archivo, debemos configurar la variable de entorno HOME, configurar el directorio de trabajo y especificar que Meteor se ejecutará como un usuario estándar. Así que ponga el siguiente texto en este archivo. Reemplace el texto rojo según corresponda.

[Unit]
Description=Plex Requests
After=syslog.target network.target

[Service]
Environment="HOME=/home/linuxbabe"
WorkingDirectory=/home/linuxbabe/plexrequests-meteor-1.21.2
ExecStart=/usr/local/bin/meteor
Type=simple
Restart=always
RestartSec=10
User=linuxbabe
Group=linuxbabe

[Install]
WantedBy=multi-user.target

Para guardar el archivo en el editor de texto Nano, presione Ctrl+O , luego presione Entrar para confirmar. Para salir, presiona Ctrl+X . A continuación, podemos iniciar el servicio SystemD con:

sudo systemctl start plex-requests

Y habilite el inicio automático en el momento del arranque del sistema.

sudo systemctl enable plex-requests

Ahora comprueba el estado:

systemctl status plex-requests

Asegúrate de que esté funcionando. Luego presiona q para recuperar el control de la terminal.

Configurar proxy inverso de Nginx (subdominio)

Para acceder a las solicitudes de Plex a través de un nombre de dominio en lugar de escribir la dirección IP y el número de puerto, puede configurar un proxy inverso con Nginx. Ejecute el siguiente comando para instalar el servidor web Nginx.

sudo apt install nginx

Luego, cree un archivo de host virtual Nginx para las solicitudes de Plex.

sudo nano /etc/nginx/conf.d/plex-requests.conf

Ponga las siguientes líneas en el archivo. Reemplace requests.example.com con su propio nombre de dominio. No olvide establecer un registro A para el subdominio. La location / {…} block hará que Nginx redirija las solicitudes al puerto 3000.

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

Guarde y cierre el archivo. Luego pruebe la configuración de Nginx.

sudo nginx -t

Si la prueba es exitosa, vuelva a cargar Nginx para que la nueva configuración surta efecto.

sudo systemctl reload nginx

Ahora Plex Requests se coloca detrás de Nginx y puede acceder a él a través de un nombre de dominio (requests.example.com ).

Para habilitar la conexión segura HTTPS, puede obtener e instalar un certificado TLS/SSL gratuito de Let's Encrypt. Instale el cliente Let's Encrypt (certbot) con:

sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install certbot python3-certbot-nginx

Luego emita el siguiente comando, que utiliza el complemento Certbot Nginx para obtener e instalar automáticamente el certificado TLS. Reemplace el texto rojo con sus datos reales.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email your-email-address --domain requests.example.com

En unos segundos, debería ver un mensaje de felicitación como el siguiente, lo que significa que el certificado se obtuvo con éxito.

Actualice la página web de Plex Requests, verá que la conexión HTTP se redirige automáticamente a la conexión segura HTTPS.

Configurar proxy inverso de Nginx (subdirectorio)

Si desea acceder a las solicitudes de Plex a través de un subdirectorio de su dominio, abra el archivo de host virtual Nginx existente para su servidor de medios Plex. El mío se llama plex.conf .

sudo nano /etc/nginx/conf.d/plex.conf

Si siguió mi tutorial anterior del servidor de medios Plex, ahora debería tener HTTPS habilitado para su servidor de medios Plex. Y solo necesita agregar las siguientes líneas al bloque del servidor SSL (indicado por listen 443 ssl ).

 location ~* (/search|/admin|/requests|/packages|/sockjs|/app|/merged-stylesheets.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";

 }

En la configuración anterior, especificamos que si la URL de la solicitud termina en /search, /admin, /requests, /packages, /sockjs, /app o /merged-stylesheets.css, le indicamos a Nginx que redirija la solicitud al puerto 3000. Si la URL de la solicitud termina en /sockjs, habrá algunas solicitudes WebSocket junto con las solicitudes HTTP normales, por lo que agregamos las dos últimas proxy_set_header directivas para actualizar al protocolo WebSocket.

Guarde y cierre el archivo. Luego pruebe la configuración de Nginx.

sudo nginx -t

Si la prueba es exitosa, vuelva a cargar Nginx para que la nueva configuración surta efecto.

sudo systemctl reload nginx

Ahora se puede acceder a la página web principal de Plex Requests a través de un subdirectorio.

example.com/search

Y se puede acceder a la página de administración a través de

example.com/admin

Configurar proxy inverso de Apache (subdominio)

Si prefiere Apache a Nginx, instálelo con:

sudo apt install apache2

Para usar Apache como proxy inverso, debemos habilitar el proxy módulos y el módulo de cabecera.

sudo a2enmod proxy proxy_http proxy_wstunnel headers

A continuación, cree un archivo de host virtual para las solicitudes de Plex.

sudo nano /etc/apache2/sites-available/plex-requests.conf

Ponga las siguientes líneas en el archivo. Reemplace requests.example.com con su propio nombre de dominio. No olvide establecer un registro A para el subdominio.

<VirtualHost *:80>
    ServerName requests.example.com
    ErrorDocument 404 /404.html
    
    #HTTP Requests
    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/
    
    #When protocol upgrade to Websocket is received, change the origin (protocol scheme, host and port)
    RewriteEngine on
    RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
    RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
    RewriteRule .* ws://localhost:3000%{REQUEST_URI} [P]
</VirtualHost>

Guarde y cierre el archivo. Luego habilite este servidor virtual.

sudo a2ensite plex-requests.conf

Reiniciar Apache

sudo systemctl restart apache2

Ahora Plex Requests se coloca detrás de Apache y puede acceder a él a través de un nombre de dominio (requests.example.com ).

Para habilitar la conexión segura HTTPS, puede obtener e instalar un certificado TLS/SSL gratuito de Let's Encrypt. Instale el cliente Let's Encrypt (certbot) con:

sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install certbot python3-certbot-apache

Luego emita el siguiente comando, que utiliza el complemento Certbot Nginx para obtener e instalar automáticamente el certificado TLS. Reemplace el texto rojo con sus datos reales.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email your-email-address --domain requests.example.com

En unos segundos, debería ver un mensaje de felicitación como el siguiente, lo que significa que el certificado se obtuvo con éxito.

Actualice la página web de Plex Requests, verá que la conexión HTTP se redirige automáticamente a la conexión segura HTTPS.

Configurar proxy inverso de Apache (subdirectorio)

Si desea acceder a las solicitudes de Plex a través de un subdirectorio de su dominio, abra el archivo de host virtual Apache existente para su servidor de medios Plex. El mío se llama plex-le-ssl.conf . (Tenga en cuenta que debe editar el host virtual que escucha en 443).

sudo nano /etc/nginx/conf.d/plex-le-ssl.conf

Si siguió mi tutorial anterior del servidor de medios Plex, ahora debería tener HTTPS habilitado para su servidor de medios Plex. Y solo necesita agregar las siguientes líneas dentro de <VirtualHost *:443>...</VirtualHost> bloquear.

    RewriteEngine on

    #If the requested URL is meant for Plex Requests, then redirect the request to localhost:3000
    RewriteCond %{REQUEST_URI} ^/(search|admin|requests|packages|app|sockjs|merged-stylesheets.css) [NC]
    RewriteRule .* http://localhost:3000%{REQUEST_URI} [P]

    #This is for Websocket requests.
    <Location /sockjs/>
       RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
       RewriteCond %{HTTP:CONNECTION} ^Upgrade$ [NC]
       RewriteRule .* ws://localhost:3000%{REQUEST_URI} [P]
    </Location>

Guarde y cierre el archivo. Luego, vuelva a cargar Apache para que los cambios surtan efecto.

sudo systemctl reload apache2

Ahora se puede acceder a la página web principal de Plex Requests a través de un subdirectorio.

example.com/search

Y se puede acceder a la página de administración a través de

example.com/admin

Conclusión

Espero que este tutorial te haya ayudado a instalar Plex Requests en Ubuntu 18.04 y 16.04. Como siempre, si esta publicación le resultó útil, suscríbase a nuestro boletín informativo gratuito para obtener más consejos y trucos. Cuídate 🙂


Ubuntu
  1. Cómo instalar Plex Media Server en Ubuntu 20.04

  2. Cómo instalar Plex Media Server en Ubuntu 18.04

  3. Cómo instalar MySQL en Ubuntu 18.04

  4. Cómo instalar el servidor de Minecraft en Ubuntu 18.04

  5. Cómo instalar Zimbra 8.6 en el servidor Ubuntu 14.04

Cómo instalar Plex Media Server en Ubuntu 18.04 LTS

Cómo instalar Plex Media Server en Ubuntu 16.04 Server/Desktop

Cómo instalar Plex Media Server en Ubuntu 20.04 LTS Server/Desktop

Cómo instalar Plex Media Server en Ubuntu 20.04 LTS

Cómo instalar Plex Media Streaming Server en Ubuntu 19.04

Cómo instalar Plex Media Server en Ubuntu 22.04