# 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//`, 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":""`. 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/ /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 "/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//.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é).