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>
3.2 KiB
3.2 KiB
RUNBOOK — quartier.trans-former.fr
1. Architecture de déploiement
- Site statique (Vite build) servi par Caddy en
file_serversur le VPS Hetzner (vps-hetzner, arm64). - Bloc Caddy :
/etc/caddy/Caddyfile, sectionquartier.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, commeplateformele 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
reloadingbloqué :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é).