Watchflare docs
Sur cette page

HTTPS et configuration de la sécurité des cookies

Exposez le tableau de bord Watchflare en HTTPS via un reverse proxy et configurez COOKIE_DOMAIN et TRUSTED_PROXIES pour que les cookies de session soient marqués Secure.

Le Hub sert son tableau de bord en HTTP sur le port 8080. Pour l’exposer en HTTPS, placez-le derrière un reverse proxy qui gère la terminaison TLS. Une fois cela fait, mettez à jour deux variables d’environnement pour que les cookies de session soient marqués Secure correctement.

Remarque

Le port gRPC (50051) gère son propre TLS 1.3 et ne doit pas être terminé par le proxy. Voir Reverse proxy pour la mise en place complète, y compris le passthrough gRPC.


Comment fonctionne la sécurité des cookies

Le Hub détecte automatiquement s’il doit poser le flag Secure sur le cookie de session JWT :

  1. Connexion HTTPS directe → Secure activé
  2. X-Forwarded-Proto: https depuis une IP de proxy de confiance → Secure activé
  3. HTTP simple, pas de proxy de confiance → Secure désactivé

Pour que cela fonctionne correctement derrière un reverse proxy, le Hub doit connaître les adresses IP autorisées à poser X-Forwarded-Proto, et le proxy doit réellement transmettre cet en-tête.


Mettre à jour votre .env

Ajoutez ces variables une fois le HTTPS en place, puis redémarrez le Hub :

.env bash
COOKIE_DOMAIN=watchflare.example.com
TRUSTED_PROXIES=127.0.0.1,::1
bash
docker compose up -d
VariableQuand la poser
COOKIE_DOMAINToujours, lorsque le tableau de bord est servi sur un nom de domaine personnalisé
TRUSTED_PROXIESLorsque le reverse proxy tourne sur un hôte différent du Hub. Par défaut, loopback uniquement (127.0.0.1,::1), ce qui couvre les configurations sur le même hôte.

En-têtes du proxy

Le Hub ne lit explicitement qu’un en-tête :

En-têteValeurRôle
X-Forwarded-ProtohttpsObligatoire. Utilisé pour poser le flag Secure sur le cookie de session.
Hostwatchflare.example.comRecommandé. Pratique proxy standard.
X-Real-IPIP clientRecommandé. Utilisé par le framework pour résoudre l’IP du client.
X-Forwarded-ForIP clientRecommandé. Utilisé par le framework pour résoudre l’IP du client.

Pour la configuration spécifique à chaque proxy (Caddy, Nginx, Traefik), voir Reverse proxy.


Vérifier que cela fonctionne

Après avoir redémarré le Hub, ouvrez le tableau de bord et connectez-vous. Inspectez le cookie de session dans les DevTools de votre navigateur :

  • Secure doit être true
  • Domain doit correspondre à COOKIE_DOMAIN

Si Secure n’est pas posé, vérifiez que :

  1. TRUSTED_PROXIES inclut l’IP du proxy (exécutez docker compose logs watchflare pour voir quels proxies sont de confiance au démarrage)
  2. Le proxy transmet X-Forwarded-Proto: https