From fdc76f82f54d0c4989129d30ab41ba0b33b29bf0 Mon Sep 17 00:00:00 2001 From: bot-claude Date: Wed, 26 Aug 2026 07:46:28 +0200 Subject: [PATCH] =?UTF-8?q?docs(REPRISE):=20=C3=A9tat=202026-08-26=20?= =?UTF-8?q?=E2=80=94=20E4=20proxy=20=E2=9C=85,=2030=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- REPRISE.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/REPRISE.md b/REPRISE.md index 0e2c32f..3db8c18 100644 --- a/REPRISE.md +++ b/REPRISE.md @@ -1,6 +1,6 @@ # Projet « Seiche » — doc de reprise -> À jour : 2026-08-25 (A1–D4 ✅ + git) · Statut : **stack complète validée** : serveur 26 tests, front 3 tests + build, Docker build+up, admin créé, `master` poussé sur Gitea · Reste : READMEs (E1), TLS LAN + VPS (décision §5) +> À jour : 2026-08-26 (A1–D4 + proxy ✅ + git) · Statut : **stack complète validée** : serveur 30 tests, front 3 tests + build, Docker build+up, admin créé, `master` poussé sur Gitea · Reste : READMEs (E1), TLS LAN + VPS (décision §5) > Mode d'emploi : doc auto-suffisant. En reprise avec un assistant IA : lui faire lire ce fichier en entier, traiter le §5, puis **planifier les tâches restantes une par une** (§9 + §11). > Mode de travail imposé par Nicolas : **petites tâches, planifier avant d'exécuter, ne jamais lancer de run autonome**. @@ -129,6 +129,7 @@ seiche/ | D2 : `pnpm dev` | **✅** : `concurrently` serveur + Vite ; login navigateur OK, dashboard, déconnexion → /login. | | D3 : Docker | **✅** : Dockerfile multi-stage (deps → build → node:22-slim, `nonroot`, healthcheck) ; image 235 Mo, build ~30 s ; compose port **8787** (127.0.0.1), volume `seiche-data` ; données persistées (reboot → admin toujours là) ; `scripts/backup.sh` testé. | | Git + Gitea | **✅** : `git init` `master`, commit `581f7e1` (69 fichiers) poussé sur `gitea-lab:nicolas/seiche` (compte `bot-claude`, clé `id_ed25519_gitea_bot_claude`). `.gitignore` corrigé (`.env` uniquement, pas `.env.example`). | +| E4 : Proxy (2026-08-26) | **✅** : `SEICHE_TRUST_PROXY` (Fastify `trustProxy` → rate-limit par IP client derrière proxy) + `SEICHE_COOKIE_SECURE` (cookies Secure derrière TLS). 4 tests (`proxy.test.ts`) : 6 IPs distinctes limitées séparément, XFF ignoré par défaut, Secure on/off. Suite : 30/30. Session précédente interrompue sur cette tâche ; finalisée et commitée. | **Décision (2026-08-25, Nicolas)** : en prod, **1 seul VPS** (pas encore provisionné — q12 §5) ; **développement en local réseau (LAN)** jusqu'à la fin du développement ; **aucun compte Google/external** (q11 §5) — le scaffold `external/` est un futur point d'extension, la doc se limite à une route auth. **Reste (E)** : READMEs racine/server/web (E1), TLS LAN + VPS (après décision §5). @@ -157,6 +158,7 @@ seiche/ - [ ] E1. README.md (dev, prod, env, backup, sécurité) - [x] E2. ~~`git init` + commit initial~~ → **fait (2026-08-25)** : `master`, commit `581f7e1`, poussé sur Gitea (`gitea-lab:nicolas/seiche`) - [x] E3. ~~Update §8 + statut final~~ → **fait (2026-08-25)** : §8 coché, §7/§9/§10/§11 mis à jour +- [x] E4. Proxy (Caddy/nginx devant) : `SEICHE_TRUST_PROXY` + `SEICHE_COOKIE_SECURE` + 4 tests → **fait (2026-08-26)** **Divergences du scaffold vs doc (à valider ou corriger) :** - Driver SQLite : `@libsql/client` (scaffold) vs `better-sqlite3` (§3).