Reverse proxy y TLS
Sirve el panel detrás de nginx, Traefik, Caddy o un túnel de Cloudflare — con los dos flags que mantienen correctos las sesiones y el rate limiting.
Por qué un proxy
El HTTP plano sigue funcionando en una LAN de homelab — lo específico de TLS es opcional, no forzado. Pero si el panel es accesible desde internet, sírvelo detrás de un proxy inverso con TLS (Caddy, Traefik, nginx) o de un túnel de Cloudflare, y nunca expongas el puerto del panel directamente.
TRUST_PROXY
Detrás de un proxy, define TRUST_PROXY para que Express confíe en X-Forwarded-*, vea la IP real del cliente y el rate limit del login funcione correctamente. Valores aceptados:
- Un número de saltos:
1,2, … - Uno de
loopback/linklocal/uniquelocal. - Una lista de IP/CIDR:
10.0.0.0/8o127.0.0.1, 192.168.1.0/24.
Un valor no reconocido lo deja desactivado y deja un aviso en el arranque — vuzon nunca adivina en quién confiar.
COOKIE_SECURE
Con terminación TLS, activa también COOKIE_SECURE=1 para que la cookie vuzon_session quede marcada como Secure y nunca viaje por HTTP plano.
# Detrás de un proxy inverso con TLS, a un salto
TRUST_PROXY=1
COOKIE_SECURE=1Lo que vuzon ya hace
Cada respuesta de la API lleva una CSP estricta, nosniff, Referrer-Policy y Cache-Control: no-store. El texto de error de Cloudflare se registra en el servidor y nunca se devuelve al navegador; los 401/403 upstream se normalizan a 502 para que no se confundan con la caducidad de tu propia sesión.