Seed from NAS prod snapshot 20260130-190531
All checks were successful
CI / build-and-anchors (push) Successful in 1m25s
SMOKE / smoke (push) Successful in 11s
CI / build-and-anchors (pull_request) Successful in 1m20s

This commit is contained in:
archicratia
2026-01-31 10:51:38 +00:00
commit 60d88939b0
142 changed files with 33443 additions and 0 deletions

View File

@@ -0,0 +1,103 @@
# Déploiement production (Synology DS220+ / DSM 7.3) — Astro → Nginx statique
Dernière mise à jour : 2026-01-29
Ce document décrit la mise en place stable sur NAS :
- build Astro dans une image (Node)
- runtime Nginx statique
- bascule blue/green via Reverse Proxy DSM
---
## 1) Arborescence recommandée
Dossier racine :
- `/volume2/docker/archicratie-web/current`
Contenu attendu :
- `Dockerfile`
- `docker-compose.yml`
- `nginx.conf`
- `.env`
- le code du site (package.json, src/, scripts/, etc.)
---
## 2) Pré-requis DSM
- DSM 7.3 avec accès SSH (admin)
- Docker / Container Manager installé
- Reverse Proxy DSM configuré (Portail des applications)
---
## 3) Sécurité réseau (important)
On publie le site via **HTTPS 443** sur DSM Reverse Proxy.
Les ports 8081/8082 :
- bindés en **localhost uniquement** (`127.0.0.1:8081:80`, `127.0.0.1:8082:80`)
- **nont PAS besoin dêtre ouverts** dans le pare-feu WAN
- servent uniquement à DSM Reverse Proxy (loopback)
---
## 4) Variables Gitea (Proposer)
Le site injecte des variables “publiques” au build :
- `PUBLIC_GITEA_BASE` (URL gitea)
- `PUBLIC_GITEA_OWNER` (casse sensible)
- `PUBLIC_GITEA_REPO`
Exemple dans `.env` :
PUBLIC_GITEA_BASE=https://gitea.archicratie.trans-hands.synology.me
PUBLIC_GITEA_OWNER=Archicratia
PUBLIC_GITEA_REPO=archicratie-edition
## 5) Reverse Proxy DSM (le point clé)
DSM 7.3 :
Panneau de configuration → Portail des applications → Proxy inversé
# Règle pour le site :
Source : HTTPS / archicratie.trans-hands.synology.me / port 443
Destination : HTTP / 127.0.0.1 / port 8081 (BLUE) ou 8082 (GREEN)
# Certificat :
Sécurité → Certificat : associer le bon certificat au nom de domaine.
## 6) Notes DS220+ “spécificités”
### 6.1 Build réseau (DNS/apt/npm)
Sur DSM, il arrive que apt-get ou des résolutions DNS échouent pendant docker build.
Solution : build avec réseau host (déjà prévu dans compose) :
build: network: host
Et activer BuildKit :
export DOCKER_BUILDKIT=1
export COMPOSE_DOCKER_CLI_BUILD=1
### 6.2 Artefacts Mac (PaxHeader / ._ / DS_Store)
Si tu transfères une archive depuis macOS, tu peux embarquer des dossiers/fichiers parasites.
Conséquence possible : Astro “voit” un faux contenu (ex: PaxHeader/...mdx) → erreurs de schema.
Remède : .dockerignore robuste (voir anchors.md section “Artefacts Mac”).
## 7) Cycle blue/green (résumé)
Tu rebuild le slot inactif (ex: GREEN)
Tu valides en local (curl/smoke/health)
Tu bascules DSM vers ce port
Rollback immédiat : tu repasses DSM sur lautre port
Pour lopérationnel minute par minute, voir OPS_COCKPIT.md.