Seguridad y publicación
Principios básicos
PlexSub almacena datos operativos, usuarios, credenciales de integraciones y configuración sensible. Toda instalación debe tratarse como sensible.
Nunca publiques:
.env- API keys
- Tokens de Plex
- Credenciales SMTP
- Claves Web Push privadas
- Backups
- Dumps de base de datos
- Cookies
- Certificados privados
- Claves SSH
HTTPS
Si PlexSub se expone fuera de tu red local, usa HTTPS. Configura:
APP_BASE_URLcon la URL pública HTTPS.FORCE_SECURE_COOKIES=1.TRUST_PROXY_LEVEL=1solo si hay un proxy inverso o túnel de confianza delante.
Si no hay proxy delante, deja TRUST_PROXY_LEVEL=0.
Proxy inverso
Cuando uses Nginx, Caddy, Traefik, Cloudflare Tunnel u otro proxy:
- Publica solo el puerto necesario.
- Mantén la app escuchando internamente en
5000. - Pasa cabeceras estándar de proxy.
- Usa HTTPS hacia el usuario final.
- Revisa cookies después del primer login.
Secretos
APP_SETTINGS_ENCRYPTION_KEY es crítica. Si la pierdes, puedes dejar inaccesibles credenciales cifradas almacenadas en base de datos.
Buenas prácticas:
- Guárdala fuera del servidor si es posible.
- No la subas a Git.
- No la cambies sin plan de rotación.
- Haz copia segura junto a los procedimientos de restauración.
Copias fuera del servidor
Un backup que solo vive en el mismo servidor no protege contra pérdida del host.
Recomendación:
- Copia PostgreSQL.
- Copia uploads si los usas.
- Copia
.envde forma segura. - Copia la clave
APP_SETTINGS_ENCRYPTION_KEY. - Guarda una copia fuera del servidor.
- Prueba restauración periódicamente.
Prueba de restauración
El repo incluye docker-compose.restore-test.yml para pruebas de restauración. Usa imágenes controladas mediante:
PLEXSUB_RESTORE_POSTGRES_IMAGEPLEXSUB_RESTORE_APP_IMAGE
La prueba debe validar que:
- PostgreSQL arranca.
- La app arranca.
- La app puede leer la base restaurada.
- El login y las pantallas principales funcionan.
Checklist antes de publicar
.envno está en Git.APP_BASE_URLapunta a la URL final.- HTTPS activo.
- Cookies seguras activas.
- Proxy configurado y revisado.
- Backups configurados.
- Restauración probada.
- Servicios externos diagnosticados.
- No hay tokens en documentación, logs compartidos ni tickets.