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).
74 lines
1.5 KiB
Text
74 lines
1.5 KiB
Text
# === Secrets ===
|
|
.env
|
|
.env.local
|
|
.env.*.local
|
|
*.pem
|
|
*.key
|
|
|
|
# === BYAN — plateforme (moteur), masquee ===
|
|
# Le code moteur des agents n'est pas part du rendu RNCP.
|
|
# La methodologie appliquee (CLAUDE.md + rules + hooks) reste dans .claude/
|
|
# pour transparence vis-a-vis du jury.
|
|
_byan/
|
|
_byan-output/
|
|
|
|
# === Claude Code — on garde UNIQUEMENT la methodologie ===
|
|
# VISIBLE : .claude/CLAUDE.md (constitution projet)
|
|
# VISIBLE : .claude/rules/ (fact-check, merise-agile, ELO trust, etc.)
|
|
# IGNORE : tout le reste (agents, skills, hooks, config perso, etat local)
|
|
.claude/*
|
|
!.claude/CLAUDE.md
|
|
!.claude/rules/
|
|
|
|
# === MCP config (potentiellement tokens) ===
|
|
.mcp.json
|
|
|
|
# === PHP / Composer (non utilise mais safety) ===
|
|
vendor/
|
|
composer.lock
|
|
composer.phar
|
|
|
|
# === Tests ===
|
|
.phpunit.result.cache
|
|
/tests/_output/
|
|
/tests/_support/_generated/
|
|
|
|
# === OS ===
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# === IDE ===
|
|
.idea/
|
|
.vscode/
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
|
|
# === Logs ===
|
|
*.log
|
|
/logs/
|
|
|
|
# === Data / Uploads / Backups ===
|
|
# /var/ : contient /var/backups/ (bind-mount des dumps BDD du conteneur cron)
|
|
# et tout futur artefact run-time (caches persistes, logs).
|
|
# Voir docs/notes/docker-volumes-vs-bind-mounts.md pour la strategie.
|
|
/var/
|
|
/backups/
|
|
/src/public/uploads/
|
|
/data/
|
|
|
|
# === Build artifacts ===
|
|
/dist/
|
|
/build/
|
|
/public/build/
|
|
|
|
# === Node (au cas ou) ===
|
|
node_modules/
|
|
npm-debug.log
|
|
yarn-error.log
|
|
|
|
# === Docker volumes locaux ===
|
|
/docker-data/
|
|
|
|
# === Notes techniques personnelles (revisions oral, non versionnees) ===
|
|
/docs/notes/
|