DocsConfiguraciónReverse proxy y TLS

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/8 o 127.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.

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.

.env
# Detrás de un proxy inverso con TLS, a un salto
TRUST_PROXY=1
COOKIE_SECURE=1

Lo 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.