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>
57 lines
3.2 KiB
Markdown
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é).
|