[32] Caddy : noms d'hôte app. et grafana. #125

Merged
lenaic merged 5 commits from gabriel/32-caddy-noms-hote into develop 2026-09-03 22:28:54 +00:00
Member

Ferme #32.

Ce que ça fait

Le proxy Caddy de la forge sert maintenant trois noms sur le port 443, séparés par nom d'hôte et non par port :

Nom Sert Vers
forge.g2.enervision la forge 127.0.0.1:3000inchangé
app.g2.enervision le tableau de bord (statique) www/app/
app.g2.enervision/api/* le mandataire FastAPI 127.0.0.1:8000
grafana.g2.enervision Grafana 127.0.0.1:3001

Réglages communs (TLS interne, compression, en-têtes de sécurité) factorisés en snippet (commun) — un seul endroit à corriger. Journal d'accès par hôte.

Critères d'acceptation

  • app.g2.enervision sert le front et route /api vers FastAPI — page d'attente versionnée (www/app/index.html) tant que le build (#94) n'est pas déployé, /api relayé vers 8000.
  • grafana.g2.enervision sert Grafana — bloc reverse_proxy 127.0.0.1:3001 en place.
  • forge.g2.enervision continue sans interruption — bloc inchangé, rechargement à chaud documenté.
  • Les trois noms documentés avec la ligne /etc/hosts — README + docs/runbooks/caddy.md.

Vérification

caddy validate et caddy adapt passent (image caddy:2.8-alpine). Repli SPA et priorité /api/* testés localement (/ → 200, /connexion → 200 via index.html, /api/... → routé). Les trois blocs d'hôte apparaissent dans la config adaptée.

Preuve finale du ticket (curl -k ×3 → 200 depuis un poste) : à recueillir sur le serveur une fois l'API (#94) et Grafana (#31) déployées — d'ici là app./api et grafana. répondent 502, le front répond déjà 200. La marche à suivre est dans docs/runbooks/caddy.md §3.

Déploiement

À jouer sur 10.105.200.41, /opt/g2-forge/ : copie datée du Caddyfile, caddy validate, puis caddy reload (pas de coupure). Le nouveau volume ./www demande un docker compose up -d proxy. Détail : docs/runbooks/caddy.md §4.

Risque

Une erreur de config coupe la forge. Le manuel impose l'ordre copie → validate → reload ; si le reload échoue, Caddy garde l'ancienne config en mémoire et la forge continue de répondre.

Ferme #32. ## Ce que ça fait Le proxy Caddy de la forge sert maintenant trois noms sur le port 443, séparés par nom d'hôte et non par port : | Nom | Sert | Vers | |---|---|---| | `forge.g2.enervision` | la forge | `127.0.0.1:3000` — **inchangé** | | `app.g2.enervision` | le tableau de bord (statique) | `www/app/` | | `app.g2.enervision/api/*` | le mandataire FastAPI | `127.0.0.1:8000` | | `grafana.g2.enervision` | Grafana | `127.0.0.1:3001` | Réglages communs (TLS interne, compression, en-têtes de sécurité) factorisés en snippet `(commun)` — un seul endroit à corriger. Journal d'accès par hôte. ## Critères d'acceptation - [x] `app.g2.enervision` sert le front et route `/api` vers FastAPI — page d'attente versionnée (`www/app/index.html`) tant que le build (#94) n'est pas déployé, `/api` relayé vers 8000. - [x] `grafana.g2.enervision` sert Grafana — bloc `reverse_proxy 127.0.0.1:3001` en place. - [x] `forge.g2.enervision` continue sans interruption — bloc inchangé, rechargement à chaud documenté. - [x] Les trois noms documentés avec la ligne `/etc/hosts` — README + `docs/runbooks/caddy.md`. ## Vérification `caddy validate` et `caddy adapt` passent (image `caddy:2.8-alpine`). Repli SPA et priorité `/api/*` testés localement (`/` → 200, `/connexion` → 200 via index.html, `/api/...` → routé). Les trois blocs d'hôte apparaissent dans la config adaptée. **Preuve finale du ticket** (curl -k ×3 → 200 depuis un poste) : à recueillir sur le serveur une fois l'API (#94) et Grafana (#31) déployées — d'ici là `app./api` et `grafana.` répondent 502, le front répond déjà 200. La marche à suivre est dans `docs/runbooks/caddy.md` §3. ## Déploiement À jouer sur `10.105.200.41`, `/opt/g2-forge/` : copie datée du `Caddyfile`, `caddy validate`, puis `caddy reload` (pas de coupure). Le nouveau volume `./www` demande un `docker compose up -d proxy`. Détail : `docs/runbooks/caddy.md` §4. ## Risque Une erreur de config coupe la forge. Le manuel impose l'ordre copie → validate → reload ; si le reload échoue, Caddy garde l'ancienne config en mémoire et la forge continue de répondre.
infra: Caddy sépare app. et grafana. de la forge par nom d'hôte
All checks were successful
Intégration / Qualité du code Python (pull_request) Successful in 54s
Intégration / Tests unitaires et couverture (pull_request) Successful in 55s
Intégration / Dépendances du tableau de bord (pull_request) Successful in 15s
Intégration / Images épinglées par version (pull_request) Successful in 3s
Intégration / Tableau de bord (pull_request) Successful in 18s
Intégration / Aucun secret commité (pull_request) Successful in 3s
Intégration / Dépendances Python et inventaire applicatif (pull_request) Successful in 1m24s
d94ade0d19
Le proxy de la forge tient déjà le 443 ; il sert maintenant trois noms au
lieu d'un, séparés par nom d'hôte et non par port :

- app.g2.enervision : le tableau de bord en statique (page d'attente
  versionnée jusqu'au build #94), /api vers le mandataire FastAPI 8000 ;
- grafana.g2.enervision : Grafana sur 3001 ;
- forge.g2.enervision : inchangé, hormis le nom du fichier de journal.

Réglages communs (TLS interne, compression, en-têtes) factorisés en
snippet. Manuel docs/runbooks/caddy.md : ligne /etc/hosts, rechargement
validé puis à chaud sans couper la forge, preuve curl du ticket. Ligne
/etc/hosts ajoutée au README.
lenaic removed review request for olivier 2026-09-03 13:58:35 +00:00
lenaic approved these changes 2026-09-03 13:58:42 +00:00
Dismissed
Merge branch 'develop' into gabriel/32-caddy-noms-hote
All checks were successful
Intégration / Qualité du code Python (pull_request) Successful in 51s
Intégration / Tests unitaires et couverture (pull_request) Successful in 57s
Intégration / Dépendances du tableau de bord (pull_request) Successful in 13s
Intégration / Images épinglées par version (pull_request) Successful in 3s
Intégration / Tableau de bord (pull_request) Successful in 22s
Intégration / Aucun secret commité (pull_request) Successful in 2s
Intégration / Dépendances Python et inventaire applicatif (pull_request) Successful in 1m25s
4c2d602b6e
infra: Caddy retire le préfixe /api avant de relayer vers FastAPI
All checks were successful
Intégration / Qualité du code Python (pull_request) Successful in 48s
Intégration / Tests unitaires et couverture (pull_request) Successful in 52s
Intégration / Dépendances du tableau de bord (pull_request) Successful in 12s
Intégration / Images épinglées par version (pull_request) Successful in 3s
Intégration / Tableau de bord (pull_request) Successful in 21s
Intégration / Aucun secret commité (pull_request) Successful in 3s
Intégration / Dépendances Python et inventaire applicatif (pull_request) Successful in 1m25s
Infra Ansible / Playbooks Ansible valides (pull_request) Successful in 1m7s
115730a7d2
handle_path au lieu de handle : l'API sert /health et /auth/* à la
racine, sans préfixe. Avec handle, elle recevait /api/health et
répondait 404. Le front vise VITE_API_BASE=.../api en conséquence ;
uvicorn --root-path /api côté pile API (#94) pour que /api/docs charge
ses actifs. caddy.md §3 et §7 corrigés.
gabriel dismissed lenaic's review 2026-09-03 14:36:08 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

Merge branch 'develop' into gabriel/32-caddy-noms-hote
All checks were successful
Intégration / Qualité du code Python (pull_request) Successful in 48s
Intégration / Tests unitaires et couverture (pull_request) Successful in 53s
Intégration / Dépendances du tableau de bord (pull_request) Successful in 15s
Intégration / Images épinglées par version (pull_request) Successful in 3s
Intégration / Tableau de bord (pull_request) Successful in 21s
Intégration / Dépendances Python et inventaire applicatif (pull_request) Successful in 1m27s
Intégration / Aucun secret commité (pull_request) Successful in 3s
672083c2d9
gabriel requested review from lenaic 2026-09-03 14:40:59 +00:00
gabriel self-assigned this 2026-09-03 14:41:03 +00:00
lenaic approved these changes 2026-09-03 22:14:44 +00:00
Dismissed
Merge branch 'develop' into gabriel/32-caddy-noms-hote
All checks were successful
Intégration / Qualité du code Python (pull_request) Successful in 54s
Intégration / Tests unitaires et couverture (pull_request) Successful in 1m3s
Intégration / Dépendances Python et inventaire applicatif (pull_request) Successful in 1m27s
Intégration / Images épinglées par version (pull_request) Successful in 3s
Intégration / Dépendances du tableau de bord (pull_request) Successful in 4m51s
Intégration / Aucun secret commité (pull_request) Successful in 3s
Intégration / Tableau de bord (pull_request) Successful in 5m9s
5c4445dca5
Deux conflits, tous deux nés de la #115 qui a posé grafana.g2.enervision
sur develop pendant que cette branche restructurait le même fichier.

Caddyfile. La structure de cette branche est retenue, les extraits (commun)
et (journal) évitant de répéter les réglages sur chaque hôte. Le bloc grafana
de develop y est fondu plutôt qu'écrasé : son en-tête X-Real-IP est conservé,
il manquait ici, et ses précisions sur la pile de supervision, sur l'absence
de compte par défaut et sur le fait que ce bloc est la seule porte d'entrée
sont reprises dans le commentaire. Le journal reste access-grafana.log, que
« import journal grafana » produit à l'identique.

README de la pile. Le texte de cette branche décrit les trois noms d'hôte et
remplace donc celui de develop, qui annonçait encore app.g2.enervision comme
à venir. Le pointeur vers ../supervision/ que develop apportait est récupéré.

Configuration vérifiée avec « caddy validate » sur l'image caddy:2.8-alpine
avant ce commit : Valid configuration. L'avertissement de formatage en ligne
28 préexiste sur cette branche et n'est pas touché.
lenaic dismissed lenaic's review 2026-09-03 22:17:43 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

lenaic requested review from lenaic 2026-09-03 22:28:49 +00:00
lenaic approved these changes 2026-09-03 22:28:51 +00:00
lenaic merged commit 370ba43f2e into develop 2026-09-03 22:28:54 +00:00
lenaic deleted branch gabriel/32-caddy-noms-hote 2026-09-03 22:28:54 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
g2/enervision!125
No description provided.