Files
quartier/docs/RUNBOOK.md
T
Jules NényandClaude Fable 5.1 2e249f1027 LOT Q0 : socle du démonstrateur Quelque part en 2035
Scaffold Vite + TypeScript + Three.js (scène vide : sol + boîte, marqueur de build),
store et encodage de l'état dans l'URL (5 tests), lint de frontières entre modules,
pipeline d'extraction Rhino (graine du 26/09) et première géométrie v0,
deploy.sh statique (releases + lien symbolique + smoke), AGENTS.md, RUNBOOK, licences MIT + CC BY-SA 4.0.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-27 15:21:40 +02:00

3.2 KiB

RUNBOOK — quartier.trans-former.fr

1. Architecture de déploiement

  • Site statique (Vite build) servi par Caddy en file_server sur le VPS Hetzner (vps-hetzner, arm64).
  • Bloc Caddy : /etc/caddy/Caddyfile, section quartier.trans-former.fr (root /opt/quartier/current, cache long sur /assets/*, try_files → /index.html). Sauvegarde du Caddyfile avant ajout : Caddyfile.bak-20260927-quartier.
  • Releases : /opt/quartier/releases/<hash>/, lien symbolique /opt/quartier/current → release active. Trois releases conservées (+ bootstrap).
  • Aucun service, aucun port, aucun conteneur, aucune base. Rien à surveiller au-delà de Caddy et du certificat.

2. Déployer

git push                # HEAD doit être commité
./deploy.sh             # build local, scp, bascule, smoke (marqueur de build exigé)

Le smoke local interroge http://127.0.0.1/build.json avec Host: quartier.trans-former.fr et exige "hash":"<HEAD court>". En cas d'échec, deploy.sh rebascule le lien sur la release précédente.

3. Revenir en arrière

ssh vps-hetzner 'ls -1t /opt/quartier/releases; ln -sfn /opt/quartier/releases/<hash> /opt/quartier/current'

4. DNS et certificat

  • DNS : quartier.trans-former.fr → 178.104.106.195 (A ; AAAA si IPv6). Posé par Jules (item MOA Q-A) sur la console OVH, comme plateforme le 25/09.
  • Tant que le DNS n'existe pas, Caddy ne peut pas obtenir de certificat : le journal (journalctl -u caddy) montre des tentatives ACME, bruyantes et inoffensives. Dès le DNS posé, le certificat arrive seul en quelques minutes.
  • Vérifier : curl -sI https://quartier.trans-former.fr/build.json.

5. Régénérer la géométrie (LOT Q1)

python3 -m venv v && ./v/bin/pip install -r pipeline/requirements.txt
cp "<Dropbox>/2 CASQUETTES/Architecte/TMIP/Archives TMIP/04_ArchiJeunes/02_rhino,autocad,illus/PL-quartier transformé/plan de quartier-concours VP TRANSFO.3dm" sources/
./v/bin/python pipeline/extract_quartier.py sources/plan\ de\ quartier-concours\ VP\ TRANSFO.3dm data/quartier.geo.json
./v/bin/python pipeline/plot_quartier.py     # contrôle visuel

sources/*.3dm est ignoré par git (27 Mo). Les corrections manuelles vont dans data/overrides/, jamais dans le JSON généré.

6. Ajouter un dispositif, un signe de vie, un parcours (à partir du LOT Q2)

Un fichier dans content/<famille>/<id>.md avec le frontmatter du schéma (src/content/schema.ts). npm run build valide et compile public/content.json. Aucun code.

7. Incident

  • Page blanche : vérifier /build.json (marqueur), puis la console navigateur ; sans WebGL le repli doit s'afficher.
  • Caddy reloading bloqué : caddy reload --config /etc/caddy/Caddyfile (pièges connus, vault).
  • Le site ne doit jamais dépendre d'un service : si quelque chose « tombe », c'est Caddy ou le DNS.

8. Contacts et emplacements

  • Pilote : vault 1 PROJETS/TMIP/REinNOVER/Quartier 3D/PILOTE - Quartier 3D TMIP.md.
  • Repo : https://git.trans-former.fr/jules/quartier (public, MIT + CC BY-SA 4.0). Clone local : ~/dev/quartier (Fedora).
  • Graine d'origine : ~/dev/quartier-seed/ (peut être supprimée une fois ce repo poussé).