Watchflare docs
Sur cette page

HTTPS et cookies de session

Passez le tableau de bord Watchflare en HTTPS derrière un reverse proxy, puis réglez COOKIE_DOMAIN et TRUSTED_PROXIES pour que les cookies de session soient Secure.

Le Hub sert le tableau de bord en HTTP sur le port 8080. Pour du HTTPS, un reverse proxy termine le TLS. Ensuite, deux variables d’environnement : les cookies de session doivent porter le flag Secure.

Remarque

Le port gRPC (50051) gère son propre TLS 1.3. Le proxy ne doit pas le terminer. Mise en place complète, passthrough compris : Reverse proxy.


Comment le Hub pose Secure

Le Hub décide tout seul, d’après la requête :

  1. HTTPS en direct → 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é

Derrière un reverse proxy, deux conditions : le Hub doit connaître les IP autorisées à poser X-Forwarded-Proto, et le proxy doit réellement transmettre cet en-tête.


Mettre à jour le .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_DOMAINDès que le tableau de bord a son propre nom de domaine
TRUSTED_PROXIESSi le reverse proxy tourne sur une autre machine que le Hub. Par défaut : loopback (127.0.0.1,::1), donc le cas « même hôte » est déjà couvert.

En-têtes du proxy

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

En-têteValeurRôle
X-Forwarded-ProtohttpsObligatoire. C’est lui qui déclenche le flag Secure.
Hostwatchflare.example.comRecommandé. Usage habituel derrière un proxy.
X-Real-IPIP clientRecommandé. Sert au framework pour l’IP du visiteur.
X-Forwarded-ForIP clientRecommandé. Pareil.

Config Caddy, Nginx, Traefik : Reverse proxy.


Vérifier

Redémarrez le Hub, ouvrez le tableau de bord, connectez-vous. Dans les DevTools, regardez le cookie de session :

  • Secure doit valoir true
  • Domain doit coller à COOKIE_DOMAIN

Si Secure n’est pas là :

  1. TRUSTED_PROXIES contient-il l’IP du proxy ? Au démarrage, docker compose logs watchflare liste les proxies de confiance.
  2. Le proxy envoie-t-il bien X-Forwarded-Proto: https ?