3.1 KiB
3.1 KiB
OPS Runbook — Archicratie Web (NAS Synology DS220 + Gitea)
🟦 ALIAS (résumé) — Runbook 1-page pour opérer vite sans se tromper.
La procédure détaillée canonique est : docs/DEPLOY_PROD_SYNOLOGY_DS220.md.
Source Git : Gitea/main ; déploiement = rebuild depuis main ; pas de hotfix non versionné.
Déploiement : build sur slot inactif → smoke → bascule DSM → rollback si besoin.
Incidents connus : voir docs/TROUBLESHOOTING.md.
0. Objectif
Ce document décrit la procédure exacte pour :
- maintenir un état cohérent entre Local (Mac Studio), Gitea, NAS (prod) ;
- déployer proprement une release Docker (build, smoke, bascule) ;
- éviter les régressions (branches protégées, CI bloquante, rollback).
1. Invariants (à ne jamais violer)
- La branche
mainsur Gitea = vérité canonique. - La prod NAS doit être rebuild depuis
main(pas de modifications “à la main” non versionnées). - Les variables
PUBLIC_GITEA_*doivent pointer vers le bon owner/repo (sinon 404 / login loop). - En solo : PR requise OK, mais 0 approval (sinon blocage). CI doit rester bloquante.
- Interdiction : token/secret commité dans le repo.
2. Topologie (NAS)
- Arborescence :
/volume2/docker/archicratie-web/releases/<timestamp>/app/volume2/docker/archicratie-web/current(symlink vers release active)
- Services :
web_green→ port local typique127.0.0.1:8082(smoke)- (optionnel)
web_blue→127.0.0.1:8081(ancienne)
- Script :
/volume2/docker/archicratie-web/ops/smoke.sh <port>
3. Standard Git (Gitea)
3.1 Branches
main: branche de travail et de déploiement (par défaut)master: branche legacy (archivée / conservée pour compat si nécessaire)- Stratégie :
masterest soit supprimée, soit alignée surmain, mais pas utilisée comme axe actif.
3.2 Protection branches (solo recommandé)
main:- ✅ Exiger PR (Require pull request)
- ✅ 0 approval (solo)
- ✅ Bloquer merge si CI KO (Prevent merge if checks fail)
- ✅ Désactiver force-push
- (optionnel) désactiver push direct (selon UI Gitea)
master:- ✅ Interdire push direct
- ✅ Désactiver force-push
- ✅ Mention “legacy” (si UI le permet)
4. Variables d’environnement (cause n°1 des 404)
4.1 Variables publiques injectées au build
PUBLIC_GITEA_BASE=https://gitea.archicratie.trans-hands.synology.mePUBLIC_GITEA_OWNER=ArchicratiaPUBLIC_GITEA_REPO=archicratie-edition
4.2 Règle d’or
- Le site génère des liens
.../<OWNER>/<REPO>/issues/new?... - Si OWNER/REPO est faux (ex:
archicratia/archicratie-web) :/issuespeut marcher- MAIS
/issues/newfinit en 404 / redirect login / droits - => corriger
.envet rebuild
5. Déploiement NAS (procédure protocolaire)
5.1 Pré-check
Sur NAS :
- Vérifier qu’on est bien dans
/volume2/docker/archicratie-web/current - Charger
.env(pour build args)
Commandes :
cd /volume2/docker/archicratie-web/current || exit 1
set -a
. ./.env
set +a
grep -nE '^PUBLIC_GITEA_(BASE|OWNER|REPO)=' .env