Guía de reverse proxy
Un reverse proxy permite publicar PlexSub con HTTPS y un dominio propio.
Ejemplos habituales: Nginx Proxy Manager, Traefik, Caddy, SWAG y Cloudflare Tunnel.
Variables importantes
APP_BASE_URL=https://plexsub.tudominio.com
PORT=5000
TRUST_PROXY_LEVEL=1
FORCE_SECURE_COOKIES=1
PLEXSUB_ALLOW_PRIVATE_TARGETS=0
APP_BASE_URL debe coincidir exactamente con la URL pública real.
TRUST_PROXY_LEVEL
Para un proxy inverso normal usa TRUST_PROXY_LEVEL=1. Si no hay proxy de confianza delante, usa TRUST_PROXY_LEVEL=0.
Cookies seguras
Si publicas con HTTPS, usa FORCE_SECURE_COOKIES=1. Si pruebas solo por HTTP local, puedes usar FORCE_SECURE_COOKIES=0 temporalmente.
Cabeceras recomendadas
El proxy debe reenviar:
Host.X-Forwarded-For.X-Forwarded-Proto.X-Real-IPsi tu proxy lo usa.
Nginx Proxy Manager
- Domain Names: tu dominio.
- Scheme:
http. - Forward Hostname/IP: IP o nombre del host donde está PlexSub.
- Forward Port:
5000. - Websockets Support: activado si está disponible.
- SSL: certificado válido.
- Force SSL: activado.
Cloudflare Tunnel
Configura el túnel para apuntar a http://localhost:5000 o a la IP/servicio interno correspondiente.
Mantén APP_BASE_URL con la URL HTTPS pública, TRUST_PROXY_LEVEL=1 y FORCE_SECURE_COOKIES=1.
No expongas PostgreSQL
El proxy debe publicar solo PlexSub. No publiques PostgreSQL, puertos internos innecesarios ni dashboards privados sin protección.
Validación
- Abre la URL pública.
- Inicia sesión.
- Revisa Customer Portal.
- Comprueba que no hay bucles de redirección.
- Revisa logs.
- Prueba desde móvil fuera de tu red.
Problemas comunes
Si hay bucle de login, revisa APP_BASE_URL, HTTPS, cookies, cabeceras proxy y TRUST_PROXY_LEVEL.
Si aparece mixed content, usa APP_BASE_URL=https://... y fuerza HTTPS en el proxy.
Checklist
- Dominio apunta al proxy.
- Certificado SSL válido.
- Proxy apunta a puerto
5000. APP_BASE_URLusa HTTPS.TRUST_PROXY_LEVEL=1.FORCE_SECURE_COOKIES=1.- PostgreSQL no está expuesto.