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 🙂