Files
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

57 lines
3.2 KiB
Markdown

# 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é).