Files
maintenance_page/tests/cases/whitelist_unauthorized_ip.sh
T
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

16 lines
413 B
Bash
Executable File

#!/usr/bin/env bash
# Mode whitelist + IP du client absente → page de maintenance (503).
set -euo pipefail
# shellcheck source-path=SCRIPTDIR
# shellcheck source=../lib.sh
source "$(dirname "$0")/../lib.sh"
restart_proxy whitelist "10.99.99.99"
status="$(curl_status)"
assert_eq "503" "$status" "code HTTP"
body="$(curl_body)"
assert_contains "Site en maintenance" "$body" "corps de la page de maintenance"