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).
21 lines
592 B
Text
21 lines
592 B
Text
#
|
|
# Wakdo - tuning MPM event
|
|
#
|
|
# MPM event : combine threads + event-driven. Plus efficace que prefork pour
|
|
# une app PHP servie via FastCGI (pas de PHP embarque dans Apache, donc les
|
|
# threads sont thread-safe).
|
|
#
|
|
# Dimensionnement pour un VPS 2 vCPU / 4 Go RAM avec une borne a trafic
|
|
# modere : pics a 20-30 req/s lors du coup de feu du midi, moyenne plus basse.
|
|
#
|
|
|
|
<IfModule mpm_event_module>
|
|
StartServers 2
|
|
ServerLimit 4
|
|
ThreadLimit 32
|
|
ThreadsPerChild 25
|
|
MaxRequestWorkers 100
|
|
MinSpareThreads 25
|
|
MaxSpareThreads 75
|
|
MaxConnectionsPerChild 1000
|
|
</IfModule>
|