Files
archicratie-edition/docs/DEPLOY_PROD_SYNOLOGY_DS220.md
archicratia 60d88939b0
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
Seed from NAS prod snapshot 20260130-190531
2026-01-31 10:51:38 +00:00

104 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.