# Runbook — Déploiement Archicratie Web Édition (Blue/Green) ## Arborescence NAS (repère) - `/volume2/docker/archicratie-web/current/` : état courant (Dockerfile, docker-compose.yml, dist buildé en image) - `/volume2/docker/archicratie-web/releases/` : historiques éventuels - `/volume2/docker/edge/` : Traefik + config dynamique > Important : les commandes `docker compose -f ...` doivent viser le **docker-compose.yml présent dans `current/`**. --- ## Pré-requis Synology Sur NAS, les commandes ont été exécutées avec : en bash sudo env DOCKER_API_VERSION=1.43 docker ... (contexte DSM / compat API) ### 1) Variables de build (Gitea) Dans /volume2/docker/archicratie-web/current créer/maintenir : cat > .env <<'EOF' PUBLIC_GITEA_BASE=https://gitea.archicratie.trans-hands.synology.me PUBLIC_GITEA_OWNER=Archicratia PUBLIC_GITEA_REPO=archicratie-edition EOF ### 2) Build images (blue + green) — méthode robuste cd /volume2/docker/archicratie-web/current sudo env DOCKER_API_VERSION=1.43 docker compose -f docker-compose.yml build --no-cache web_blue web_green Puis recréer les conteneurs sans rebuild : sudo env DOCKER_API_VERSION=1.43 docker compose -f docker-compose.yml up -d --force-recreate --no-build web_blue web_green ### 3) Vérifier que les deux slots sont OK curl -sS -D- http://127.0.0.1:8081/ | head -n 12 curl -sS -D- http://127.0.0.1:8082/ | head -n 12 Attendu : HTTP/1.1 200 OK Server: nginx/... ### 4) Traefik : s’assurer qu’un seul backend est actif Fichier : /volume2/docker/edge/config/dynamic/20-archicratie-backend.yml Attendu : une seule URL (8081 OU 8082) http: services: archicratie_web: loadBalancer: servers: - url: "http://127.0.0.1:8081" ### 5) Smoke via Traefik (entrée réelle) curl -sS -H 'Host: archicratie.trans-hands.synology.me' http://127.0.0.1:18080/ | head -n 20 Attendu : si non loggé : 302 vers Authelia si loggé : HTML du site ### 6) Piège classique : conflit de nom de conteneur Si : Conflict. The container name "/archicratie-web-blue" is already in use... Faire : sudo docker rm -f archicratie-web-blue sudo env DOCKER_API_VERSION=1.43 docker compose -f docker-compose.yml up -d --force-recreate --no-build web_blue