--- type: pilote projet: AEP — nav-carte (aep.trans-former.fr) casquette: Stack technique pilote: ATIS Dev created: 2026-06-23 updated: 2026-06-28 --- # PILOTE — AEP / nav-carte > Doc de pilotage vivant du site **aep.trans-former.fr**. Source de vérité opérationnelle : état déployé, chantiers, décisions, dette. Le journal de dev détaillé reste dans `JOURNAL-V2.md`. Ce doc est l'index de pilotage, pas le journal. --- ## 1. Ce que c'est - **Site** : `https://aep.trans-former.fr` — cartographie politique AEP (Architecture En Plus / écosystème militant). - **Stack** : Nuxt 3 (Nitro SSR) + Vue + Leaflet + D3. Backend RAG = LightRAG (Docker). - **Repo** : `1 PROJETS/TECH .../nav-carte/` — remote Gitea `git.trans-former.fr/jules/nav-carte.git`. - **Pilote** : ATIS Dev (ne code pas, dispatche des agents Sonnet). --- ## 2. Architecture déployée (VÉRIFIÉE 2026-06-23) ⚠ lire avant toute session Source fréquente de confusion — état réel constaté sur le VPS : ``` aep.trans-former.fr │ Caddy : reverse_proxy localhost:3333 ▼ aep.service ← LE service réel (systemd, active/running, Nitro Node) ├── App dir : /opt/aep ├── ExecStart : node /opt/aep/.output/server/index.mjs ├── EnvironmentFile: /opt/aep/.env (contient RAG_PE_URL, MISTRAL_API_KEY, etc.) └── Port : 3333 LightRAG PE : localhost:9621 (Docker, health 200 ✓) ← backend du chatbot RAG PIÈGES / fausses pistes : ✗ nav-carte.service → inactive/dead (ANCIEN nom, abandonné — ne pas chercher de ce côté) ✗ nav-worker.service → FAILED (worker enrichissement IA, mort — à statuer) ✗ /opt/nav-carte → n'existe pas (le code n'est PAS sur le VPS en git) ``` **Mécanisme de déploiement = MANUEL, scp/tar (PAS de git pull sur le VPS) :** ``` 1. npm run build (local → génère .output/) 2. scp/rsync .output/ → vps-hetzner:/opt/aep/.output/ 3. ssh vps-hetzner "systemctl restart aep.service" 4. vérifier : curl -I https://aep.trans-former.fr/ ``` **Disque VPS : 91 % (3,5 G libres) — à surveiller, pas bloquant.** --- ## 3. État git du repo (2026-06-23) - `main` == `gitea/main` == `cd8fe9e2` (0 ahead / 0 behind, parfaitement sync). - **Le commit déployé sur le VPS est PÉRIMÉ** (antérieur à `cd8fe9e2`) → `/outils`, `/media`, routes chatbot = 404 live alors que le code existe sur `main`. - **Piège repos imbriqués** : `nav-carte/` est un sous-repo dans le vault. Le vault parent n'est PLUS un repo git (chirurgie 2026-05-07). Travailler git uniquement au niveau `nav-carte/`. ### Travail local non committé au 2026-06-23 | Fichier | État | Destination | |---------|------|-------------| | `components/ChatbotPensees.vue` | untracked | **P0/P1 — à committer + déployer** (chatbot RAG) | | `server/api/chatbot-pensees.post.ts` | untracked | **P0/P1 — à committer + déployer** (route chatbot, appelle LightRAG :9621) | | `nuxt.config.ts` | modifié (+1) | **P0/P1** — ajoute `runtimeConfig.ragPeUrl` (requis par la route chatbot) | | `components/MediaTabVisuel.vue` | modifié (CSS) | **P0/P1** — layout toolbar/carte/chatbot | | `pages/a-propos.vue` | modifié (+64) | **P0/P1** — contenu À propos | | `pages/contribuer-job.vue` | untracked (stub) | **P2** — laisser untracked (feature Proposer) | | `pages/contribuer-reseau.vue` | untracked (stub) | **P2** — laisser untracked | | `.firecrawl/` | untracked | junk — gitignore | | `pages/index-v1-backup.vue.tmp.*` | untracked | junk — supprimer | ### Branches dispersées (dette — voir §6) ``` main ← prod feat/outils-v1 / -build / -media ← travail Outils (en partie déjà sur main) feat/aep-v1.1-nav-carte ← contient a6fff9a9 "PA3 bouton Proposer contextuel" feat/aep-pratiques-regeneratives ← contient d10586c4 "page /proposer-pratique" + form feat/aep-rag-pensees-ecologiques ← travail RAG/chatbot feat/aep-taff-v1 / feat/aep-v2-restore / feat/codev-mvp / wip-stash-v2-onglet2-20260506 ``` --- ## 4. Chantiers (état au 2026-06-23) | Prio | Chantier | Diagnostic | Statut | Nature | |------|----------|-----------|--------|--------| | **P0** | Onglet Outils + page /media + redirect /rag manquants live | Build VPS périmé (code committé, pas déployé) | ✅ **Fait 2026-06-23** (commit `f3ab28bd` déployé, routes 200, /rag→301) | Mécanique : build + deploy | | **P1** | Chatbot RAG cassé | Route + composant non committés ; LightRAG PE :9621 = UP | ✅ **Fait 2026-06-23** (route déployée, testé public OK, réponses sourcées) | Mixte : commit + deploy + test | | **P2** | Interface Proposer 5 onglets (Écosystème/Réseau/Jobs/Outils/Références RAG) | Feature dispersée sur branches feature jamais mergées ; `main` n'a qu'1 form (`contribuer.vue`) + 2 stubs untracked | ✅ **Fait 2026-06-23** (commit `c860dabd`, déployé, testé 5/5 types 201) | 4 types → NocoDB `orgas` + `submission_type` ; Réfs → `ressources_references` ; `/contribuer` → 301 → `/proposer` | | **P3** | Google Search Console / indexation | Non diagnostiqué | Reporté (Jules) | Voir `pilotage-indexation-seo.md` (dossier TECH) | | **dette** | Organisation docs/branches/services | Multi-build folders, 10+ Caddyfile.bak, services morts | À cadrer | Voir §6 | ### Mapping bugs Jules → vraie cause ``` "mauvais commit, RAG/Outils pas up" → FAUX : commit OK. Build VPS périmé. → P0 "bouton Proposer 1 carte / 4" → feature sur branches non mergées. → P2 "chatbot slug rag/media KO" → redirect /rag→/media en code (pas déployé) → P0/P1 + composant chatbot non committé + backend LightRAG PE :9621 = UP ✓ ``` --- ## 5. Décisions techniques runtime | # | Décision | Pourquoi | |---|----------|----------| | τ.1 | P0+P1 (deploy + chatbot) cette session ; P2 (Proposer) session dédiée | P2 = archéologie multi-branches, dilue le fix de deploy | | τ.2 | Stubs `contribuer-*` laissés untracked au deploy P0 | Ne pas exposer de formulaires inachevés en prod | | τ.3 | Commit P0 = chatbot route + composant + nuxt.config + MediaTabVisuel + a-propos uniquement | Périmètre minimal du « remettre up » ; pas de WIP Proposer | --- ## 6. Dette d'organisation (constatée 2026-06-23) Le système tech est éclaté. Symptômes : - Dossier projet `TECH - infra VPS, website pro, RAG/` mélange **6+ projets** (nav-carte/AEP, Website Pro/trans-former.fr, RAG Militant, Simulateur autonomie V2, codev, vps-kit…). - Multiples dossiers `*-build` (cascades méga-dispatch passées : `aep-communaute-build`, `codev-build`, `astro-site-cerveau`). - 10+ `Caddyfile.bak.*` sur le VPS, services systemd morts (`nav-carte.service`, `nav-worker.service`). - Branches feature jamais mergées ni nettoyées. - Plusieurs `.md` de pilotage épars à la racine TECH (`next-steps`, `stack-opencode-v2`, `pilotage-indexation-seo`…). → **Proposition de rangement : voir le plan dans le message de session du 2026-06-23 / à formaliser en note dédiée.** --- ## 7. Journal & refs - Journal dev détaillé : `JOURNAL-V2.md` (même dossier). - Mémoire pilote : `2 CASQUETTES/Stack technique/ATIS-Dev.md`. - Prompt P2 : `0 INBOX/PROMPTS/aep-P2-proposer-4-onglets.md`. - SEO/indexation : `1 PROJETS/TECH .../pilotage-indexation-seo.md`. --- ## Log de pilotage ### 2026-06-23 — Session diagnostic (ATIS Dev / Opus) **Accompli :** - Diagnostic complet : renversé l'hypothèse « mauvais commit » → build VPS périmé + travail local non committé. - Cartographié l'archi de service réelle (`aep.service`, pas `nav-carte.service`). - Confirmé LightRAG PE :9621 UP, deploy = scp manuel vers `/opt/aep/.output`. - Créé ce doc pilote + prompt P2. **Accompli (suite) :** - ✅ P0+P1 déployés : commit `f3ab28bd` build+push (agent Sonnet), deploy prod (tar+scp → `/opt/aep/.output`, restart `aep.service`). Vérifié : `/outils`, `/media`, `/contribuer`, `/trouver-du-taf` = 200 ; `/rag` → 301 ; chatbot RAG public OK (réponses sourcées via LightRAG :9621). - Prompts P2 + hygiène TECH écrits avec préflight git anti-superposition + clause supervision pilote. **Prochaines étapes :** - [x] P2 : Proposer 5 onglets — fait 2026-06-23 (commit c860dabd, deploye, teste 5/5 types 201). - [x] Hygiene TECH : execute 2026-06-23 (agent Sonnet). Voir recap dans `_infra/TECH.md`. - [ ] **Batch 3 (prochain chantier)** : bouton selecteur 3 cartes + popup 5 axes Jobs + GraphView Carte 1. Prompt : `REPRISE-aep-carto-fix-batch3.md`. Session dediee. - [ ] AEP nav-carte — verifier chatbots EN PROD : `/` = chatbot Entraide / `/agences` = chatbot Reseaux AEP distincts. - [ ] P3 : Google Search Console (reporte). ### 2026-06-23 — Session hygiène TECH (AXE 1+2+3) + fix chatbot (Agent Sonnet) **Accompli :** - **AXE 1 VPS** : docker prune (156M), décommission listmonk (conteneur + image + 2 volumes + 2 routes Caddy), décommission heyform (volume 528M + compose), décommission uptime (volume 88M + route status), `/opt/migration` supprimé (252M, aucune réf active), nav-worker + nav-carte services nettoyés, Caddyfile.bak réduit de 17→4 fichiers. Disque 91%→87% (+~1.3 GB). - **AXE 2 Docs** : `_archive-build/` créé (3 dossiers `*-build` déplacés), `_infra/TECH.md` créé (inventaire VPS complet), `INDEX.md` créé, 3 squelettes `PILOTE.md` (Website Pro, RAG Militant, Simulateur autonomie V2). 4 `.md` épars routés. - **AXE 3 Git** : 4 branches à 0 commit supprimées (`feat/outils-v1`, `-build`, `-media`, `feat/codev-mvp`). `feat/outils-v1-build` worktree retiré. - **Fix chatbot régresse** : `auteurs-pensees.json` (171 auteurs) restauré en prod (scp), versionné sur `main` (commit `04b02351`), push gitea. Worktree `nav-carte-media` retiré, les 4 fichiers untrackés sauvés sur `feat/outils-v1-media` push gitea (branche préservée). ### 2026-06-23 — Session P2 : Proposer 5 onglets (ATIS Dev / Sonnet) **Accompli :** - Interface Proposer avec 5 tabs (Écosystème/Réseau/Jobs/Outils/Références RAG) - 4 types (ecosysteme/reseau/job/outil) → NocoDB `orgas` table avec `submission_type` - Références → table dédiée NocoDB `ressources_references` - `/contribuer` → 301 redirect vers `/proposer` - 6 corrections pilote appliquées - Build + deploy VPS (scp .output/ + systemctl restart aep) - Tests : 1 par type (4×201), 1 référence (201), test records supprimés (404) - Routes vérifiées : /proposer (200), /contribuer (301), /api/submit (201), /api/submit/reference (201) - ✅ Tout est bon, GO pilote obtenu, P2 terminé **Prochaine étape :** - [ ] Push `main` → `gitea/main` (P2 + fixes chatbot non encore poussés) - [ ] P3 : Google Search Console (reporté)