Commit graph

5 commits

Author SHA1 Message Date
Imugiii
0028e2a79c chore(docker): docker-compose.yml standalone portable + .env local-first
All checks were successful
CI / secret-scan (pull_request) Successful in 7s
CI / php-lint (pull_request) Successful in 21s
CI / js-tests (pull_request) Successful in 23s
CI / static-tests (pull_request) Successful in 41s
CI / auto-merge (pull_request) Successful in 5s
Le repo ship desormais un docker-compose.yml qui tourne EN LOCAL sans rien
configurer (`docker compose up -d` -> http://kiosk.localhost:8080 et
http://admin.localhost:8080), facon projet open-source self-hostable.

- docker-compose.yml : reseau interne seul, wakdo-web publie ${HTTP_PORT:-8080}:80,
  plus de dependance au reseau externe Traefik ni de labels. Commentaires retires.
- Renommage TRAEFIK_DOMAIN_* -> APP_HOST_* (ce sont les ServerName des deux vhosts
  Apache, pas du Traefik) : vhost.conf + compose. Defaut local *.localhost.
- .env.example : local-first (HTTP_PORT, APP_HOST_*=*.localhost, APP_URL_*/CORS sur
  localhost, valeurs DB dev qui marchent sans edition). Les variables proxy
  (REVERSE_PROXY_NETWORK) sont reclassees dans un bloc "Deploiement prod" optionnel.
- Prod : chaque hote derriere un reverse proxy maintient son propre
  docker-compose.prod.yml (gitignore, hors repo) ; meme stack exposee via Traefik
  sans port hote. README : quickstart local 3 lignes + section prod separee
  (l'install Docker Debian inline est remplacee par un lien).

Verifie : `docker compose config` valide pour les deux fichiers (base = port publie
sans reverse_proxy ; prod = reverse_proxy + labels Host(APP_HOST_*) sans port).
Smoke-test runtime `docker compose up` a faire sur machine propre (les container_name
fixes empechent un up parallele a la stack en cours).
2026-06-17 13:30:18 +00:00
Imugiii
8c93b26ec0 feat(core): from-scratch PHP MVC skeleton (autoloader/config/PDO/router/front controller) + PHPUnit/PHPStan + composer-less CI 2026-06-15 14:13:49 +00:00
Imugiii
ac8b6a6791 feat(docker): complete stack with compose and 4 services
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).
2026-04-24 15:59:19 +00:00
Imugiii
c5c6bacfba docs: setup journal structure and session 1 retro
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)
2026-04-24 08:47:56 +00:00
Imugiii
c044d9b48c docs: initial project context and methodology scaffold
Bootstrap commit pour le projet Wakdo (borne de commande RNCP 37805).

Contenu :
- docs/PROJECT_CONTEXT.md : source de verite du projet (scope, stack,
  architecture 2 FQDN, mapping critere RNCP/feature, planning, conventions)
- .claude/CLAUDE.md : constitution du projet (methodologie BYAN)
- .claude/rules/ : protocoles applique (fact-check scientifique, ELO trust,
  merise-agile, hermes-dispatcher, byan-api, byan-agents)
- .gitignore : scope Option C (moteur BYAN ignore, methodologie visible)

Stack : PHP 8.3 + MariaDB 11 + Apache Alpine + Docker + Traefik + GitHub
Actions. Strategie B unifiee (front vanilla + back POO MVC from scratch +
DevOps containerise). Deadline septembre 2026.
2026-04-24 08:17:37 +00:00