Files
fzarifian b968ec8aa5 feat: implémentation initiale du reverse proxy de maintenance
Reverse proxy Nginx (image stable-alpine) qui sert l'app upstream ou une
page de maintenance 503 selon l'IP du client.

- Modes whitelist/blacklist commutables via MAINTENANCE_MODE
- Liste IPv4 via MAINTENANCE_IP_LIST (séparée par virgules, validée au boot)
- Logique en directives Nginx natives (geo + map), zéro Lua/njs
- Page statique sobre HTML+CSS inline, zéro JS, zéro réseau sortant
- Log dédié /var/log/nginx/maintenance.log pour les requêtes bloquées
- Validation des env vars dans /docker-entrypoint.d/10-init.sh
- Stack Docker + docker-compose pour dev local et tests
- 6 cas de tests d'intégration (whitelist/blacklist x autorisée/bloquée + log + nginx -t)
- Lint shellcheck propre sur tous les scripts shell
2026-05-05 13:52:13 +02:00

942 B

Changelog

Tous les changements notables de ce projet sont documentés dans ce fichier.

Le format suit Keep a Changelog et le projet adhère au Semantic Versioning.

[Unreleased]

Added

  • Reverse proxy Nginx avec page de maintenance conditionnelle par IP (mode whitelist/blacklist).
  • Configuration via variables d'environnement : MAINTENANCE_MODE, MAINTENANCE_IP_LIST, UPSTREAM_HOST, LISTEN_PORT, SERVER_NAME.
  • Page de maintenance HTML statique sobre, sans JS, sans dépendance réseau.
  • Log dédié maintenance.log pour les requêtes bloquées.
  • Validation des env vars et de la conf Nginx au démarrage du conteneur.
  • Tests d'intégration shell (whitelist autorisée/bloquée, blacklist bloquée/normale, log dédié, syntaxe Nginx).
  • Lint shellcheck + nginx -t.
  • Packaging Docker + docker-compose pour le dev local et les tests.