Premier test E2E : welcome -> categories -> produit -> ajout panier -> panier ->
paiement -> confirmation. Tourne headless dans le conteneur Playwright officiel,
contre une stack JETABLE isolee (tests/e2e/run.sh : `-p wakdoe2e`, override
container_name + sans port hote, jointe par --add-host). Zero dependance Node/browser
sur l'hote, ne touche aucune stack existante.
- playwright.config.js (CJS), tests/e2e/borne.spec.js, tests/e2e/run.sh,
tests/e2e/docker-compose.e2e.yml (override jetable).
- @playwright/test en devDep ; le job CI js-tests skip le download des browsers
(PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1, validee : npm ci + 7 tests JS verts).
- Hostnames de test en .test (Chromium resout *.localhost en dur vers 127.0.0.1).
Etape 1 de l'initiative E2E (lance a la main). Suite : parcours admin, puis job CI.
Deliver the full Docker stack for Bloc 5 DevOps (Cr 7.c.3 and 7.c.4):
- docker/apache/ Custom httpd:2.4-alpine with hardened main config,
MPM event tuning and 3 vhosts (healthz, kiosk static,
admin reverse FCGI to wakdo-app:9000). Kiosk vhost
explicitly denies .php to enforce Bloc 1 isolation.
- docker/php-fpm/ Custom php:8.3-fpm-alpine3.20 with pdo_mysql, opcache,
intl, exif, zip and tini for signal handling.
Dynamic pool 3-10 workers listening on TCP 9000.
- docker/cron/ Custom alpine:3.20 with dcron, mariadb-client, gzip.
Nightly mysqldump at 03h00 with 14-day rotation and
512-byte sanity check. Purge and stats jobs templated.
- docker-compose.yml 4 services orchestrated on 2 networks (internal
bridge + external reverse-proxy). 2 named volumes
for DB and uploads, bind-mount for backups.
Traefik labels for 2 routers with HTTPS redirect.
Makefile adds `make backup` (manual dump) and `make backup-ls`.
.gitignore adds /var/ for backup bind-mount path.
docs/journal/2026-04-24--infra-docker.md documents 5 decisions with
alternatives, maps 16 RNCP criteria to artefacts and prepares 6 jury Q&A.
Validated: `docker compose config --quiet` passes. Smoke test deferred
to next session (requires server .env).
Ajout de la structure docs/journal/ pour les retrospectives par feature,
destinees a la preparation de l'oral RNCP et a la tracabilite de la demarche
pour le jury.
Contenu :
- docs/journal/README.md : index + template d'entree (what/why/how/criteres
RNCP/Q&A jury/ameliorations conscientes)
- docs/journal/2026-04-23--cadrage-projet.md : retrospective complete de la
session de cadrage (brief RNCP, PROJECT_CONTEXT, bootstrap Git, decisions
d'architecture, transparence methodologie IA)
- .gitignore : ajout de /docs/notes/ pour la couche de notes techniques
personnelles (revisions oral, non versionnees)