corentin_wakdo/docs/adr/0009-compose-standalone-et-prod-gitignore.md
Imugiii 035129d7be
All checks were successful
CI / js-tests (pull_request) Successful in 23s
CI / secret-scan (pull_request) Successful in 10s
CI / php-lint (pull_request) Successful in 23s
CI / static-tests (pull_request) Successful in 45s
CI / auto-merge (pull_request) Successful in 4s
docs(adr): registre des decisions d'architecture (9 ADR)
docs/adr/ : une fiche courte (contexte / decision / consequences) par decision
structurante, + un index et un modele de fiche.

0001 PHP from scratch sans Composer ; 0002 back-office MVC rendu serveur ;
0003 stock en % + dispo calculee RG-T21 ; 0004 PIN d'action sensible + audit en
transaction ; 0005 throttle PIN separe du login (RG-T22) ; 0006 HTTP 409 vs 422 ;
0007 effacement RGPD par anonymisation (tombstone) ; 0008 Makefile -> docker compose
(wakdo-migrate) ; 0009 compose standalone + prod gitignore.

Deuxieme PR du jeu de documentation. Resout le renvoi docs/adr/ d'ARCHITECTURE.md.
2026-06-17 13:50:27 +00:00

1.4 KiB

ADR-0009 — docker-compose.yml standalone + docker-compose.prod.yml gitignore

  • Statut : Accepte
  • Date : 2026-06-17

Contexte

Le docker-compose.yml versionne supposait un reverse proxy Traefik (reseau externe, labels, aucun port hote) : docker compose up echouait pour quiconque sans Traefik (jury, contributeur, tests E2E). Options envisagees : overlay -f (base + prod fusionnes via !reset) ; un seul fichier parametre ; deux fichiers complets independants.

Decision

Deux fichiers complets et independants (pas d'overlay) :

  • docker-compose.yml (versionne) : standalone, wakdo-web publie ${HTTP_PORT:-8080}:80, reseau interne seul, sans Traefik. docker compose up tourne partout, facon app open-source self-hostable.
  • docker-compose.prod.yml : gitignore, propre a chaque hote derriere un proxy (meme stack + reseau externe + labels Traefik, sans port). docker compose -f docker-compose.prod.yml up -d.

Renommage TRAEFIK_DOMAIN_* -> APP_HOST_* (ce sont des ServerName de vhosts, pas du Traefik). .env.example local-first.

Consequences

  • (+) docker compose up marche en local sans configuration ; le repo ne porte aucune hypothese d'infra.
  • (+) Le critere Cr 7.c.4 tient avec un fichier que tout le monde peut lancer.
  • (-) Duplication entre les deux fichiers (assumee : clarte > DRY pour l'infra).
  • (-) Le serveur maintient son propre fichier prod (comme .env).