diff --git a/docs/CONFIG-ENV.md b/docs/CONFIG-ENV.md index 6b4e508..7f39fdc 100644 --- a/docs/CONFIG-ENV.md +++ b/docs/CONFIG-ENV.md @@ -10,6 +10,15 @@ Si un seul de ces 3 paramètres est faux → on obtient : - 404 / redirect login inattendu - ou un repo/owner incorrect + +# Diagnostic — “Proposer” (résumé) + +**Symptôme :** clic “Proposer” → 404 / login / mauvais repo +**Cause la plus fréquente :** `PUBLIC_GITEA_OWNER` (casse sensible) ou `PUBLIC_GITEA_REPO` faux. + +➡️ Procédure complète (pas-à-pas + commandes) : voir `docs/TROUBLESHOOTING.md#proposer-404`. + + ## 1) Variables utilisées (publique, côté build Astro) - `PUBLIC_GITEA_BASE` diff --git a/docs/DEPLOY_PROD_SYNOLOGY_DS220.md b/docs/DEPLOY_PROD_SYNOLOGY_DS220.md index c19ad03..87c5858 100644 --- a/docs/DEPLOY_PROD_SYNOLOGY_DS220.md +++ b/docs/DEPLOY_PROD_SYNOLOGY_DS220.md @@ -83,6 +83,17 @@ for f in .env .env.local .env.production .env.production.local; do [ -f "$f" ] && echo "---- $f" && grep -nE '^PUBLIC_GITEA_(BASE|OWNER|REPO)=' "$f" || true done +En cas d’échec : +- 404 / login loop / mauvais repo → `docs/TROUBLESHOOTING.md#proposer-404` +- double onglet → `docs/TROUBLESHOOTING.md#proposer-double-onglet` + +## Diagnostic — “Proposer” (résumé) + +**Symptôme :** clic “Proposer” → 404 / login / mauvais repo +**Cause la plus fréquente :** `PUBLIC_GITEA_OWNER` (casse sensible) ou `PUBLIC_GITEA_REPO` faux. + +➡️ Procédure complète (pas-à-pas + commandes) : voir `docs/TROUBLESHOOTING.md#proposer-404`. + ## 5) Reverse Proxy DSM (le point clé) ### DSM 7.3 : diff --git a/docs/FEATURE-PROPOSER.md b/docs/FEATURE-PROPOSER.md index a95721c..8197cc5 100644 --- a/docs/FEATURE-PROPOSER.md +++ b/docs/FEATURE-PROPOSER.md @@ -43,61 +43,15 @@ Le flow ne doit jamais ouvrir deux onglets. - un seul `a.target="_blank"` (ou équivalent) déclenché - sur click : handler doit neutraliser les propagations parasites -### Vérification (NAS) -en sh : -curl -fsS http://127.0.0.1:8082/archicratie/archicrat-ia/chapitre-4/ > /tmp/page.html -grep -n "window.open" /tmp/page.html | head +## Diagnostic (canonique) -Doit retourner 0 ligne. +Le diagnostic détaillé est centralisé dans `docs/TROUBLESHOOTING.md` pour éviter les doublons. -## 3) Diagnostic “trace ouverture onglet” (navigateur) +- 404 / non autorisé / redirect login : + - voir : `TROUBLESHOOTING.md#proposer-404` + - cause la plus fréquente : `PUBLIC_GITEA_OWNER/REPO` faux (souvent casse) -Dans la console, tu peux surcharger temporairement les mécanismes d’ouverture pour tracer : +- Double onglet : + - voir : `TROUBLESHOOTING.md#proposer-double-onglet` + - cause la plus fréquente : double handler (bubbling) ou `window.open` + `a.click()` -si un window.open survient, - -ou si un a.click target _blank est appelé. - -But : prouver qu’il n’y a qu’un seul événement d’ouverture. - -## 4) URL attendue (forme) - -L’onglet doit ressembler à : - -{PUBLIC_GITEA_BASE}/{OWNER}/{REPO}/issues/new?title=...&body=... - -Important : owner et repo doivent être exactement ceux du repo canonique. - -## 5) Pré-requis d’accès - -L’utilisateur doit être loggé sur Gitea pour accéder à /issues/new - -Si non loggé : redirect vers /user/login (comportement normal) - -## 6) Tests fonctionnels (checklist) - -Ouvrir une page chapitre (ex chapitre 4) - -Clic Proposer (sur un paragraphe) - -Choix 1 puis choix 2 - -Vérifier : - -1 seul onglet - -URL du repo correct - -formulaire new issue visible - -title/body pré-remplis (chemin + ancre + texte actuel) - -Créer l’issue → vérifier le traitement CI/runner - -## 7) Pannes typiques + causes - -404 sur issue/new : PUBLIC_GITEA_OWNER/REPO faux (souvent casse) - -2 onglets : double handler (bubbling + ouverture multiple) - -pas de favicon : cache ou absence dans public/ → rebuild diff --git a/docs/OPS-DEPLOYMENT.md b/docs/OPS-DEPLOYMENT.md index fb37871..f5bfd3a 100644 --- a/docs/OPS-DEPLOYMENT.md +++ b/docs/OPS-DEPLOYMENT.md @@ -11,6 +11,36 @@ Objectif : déployer une nouvelle version du site sur le NAS (DS220+) sans jamai > Si tu lis ceci pour déployer : stop → ouvre le canonique. +> ⚠️ LEGACY — Ne pas suivre pour déployer. +> Doc conservé pour historique. +> Canon : `DEPLOY_PROD_SYNOLOGY_DS220.md` + `OPS-SYNC-TRIPLE-SOURCE.md`. + +## Pourquoi ce doc existe encore + +- Historique : il capture des repères (domaines, ports, logique blue/green) tels qu’ils ont été consolidés pendant la phase d’implémentation. +- Sécurité : éviter la divergence documentaire (un seul pas-à-pas officiel). +- Maintenance : si tu dois déployer, tu suis le canonique ; ici tu ne viens que pour comprendre “d’où ça vient”. + +## Ce qu’il faut faire aujourd’hui (canonique) + +➡️ Déploiement = `docs/DEPLOY_PROD_SYNOLOGY_DS220.md` (procédure détaillée, à jour). + +## Schéma (résumé, sans commandes) + +- Ne jamais toucher au slot live. +- Construire/tester sur l’autre slot. +- Smoke test. +- Bascule DSM Reverse Proxy (8081 ↔ 8082). +- Rollback DSM si besoin. + +
+ +> 🚫 NE PAS UTILISER POUR PROD — ARCHIVE UNIQUEMENT + +Archive — ancien pas-à-pas (NE PAS SUIVRE) + +> ⚠️ Archive. Ce contenu est conservé pour mémoire. + ## 0) Repères essentiels Noms & domaines • Site public (prod) : https://archicratie.trans-hands.synology.me @@ -393,3 +423,5 @@ Fix standard (dans le vrai dossier site/) : rm -rf node_modules .astro dist npm ci npm run dev + +
diff --git a/docs/OPS-REFERENCE.md b/docs/OPS-REFERENCE.md index 274d7b9..de9b451 100644 --- a/docs/OPS-REFERENCE.md +++ b/docs/OPS-REFERENCE.md @@ -4,7 +4,7 @@ Document “pivot” : liens, invariants, conventions, commandes réflexes. ## 0) Invariants (à ne pas casser) -- **Source de vérité Git** : `origin/main` sur :contentReference[oaicite:0]{index=0}. +- **Source de vérité Git** : origin/main (repo Archicratia/archicratie-edition sur Gitea). - **Prod** : conteneur `archicratie-web-*` (nginx) derrière reverse proxy DSM. - **Config “Proposer”** : dépend de `PUBLIC_GITEA_BASE`, `PUBLIC_GITEA_OWNER`, `PUBLIC_GITEA_REPO` injectés au build. - **Branches** : `main` = travail ; `master` = legacy/compat (alignée mais protégée). diff --git a/docs/TROUBLESHOOTING.md b/docs/TROUBLESHOOTING.md index e29c713..2fa6dd3 100644 --- a/docs/TROUBLESHOOTING.md +++ b/docs/TROUBLESHOOTING.md @@ -15,6 +15,7 @@ Toujours isoler : **Local**, **Gitea**, **NAS**, **Navigateur**. --- + ## 1) “Proposer” ouvre Gitea mais retourne 404 / non autorisé ### Symptôme @@ -38,6 +39,7 @@ Puis rebuild + restart du container + smoke. --- + ## 2) Double onglet à la validation du flow “Proposer” ### Symptôme @@ -64,7 +66,9 @@ garder un seul mécanisme d’ouverture sur click : preventDefault() + stopImmediatePropagation() + ## 3) Favicon 504 / erreurs console sur favicon + # Symptôme Console navigateur : GET /favicon.ico 504 diff --git a/docs/anchors.md b/docs/anchors.md index 019a3dd..e457d08 100644 --- a/docs/anchors.md +++ b/docs/anchors.md @@ -63,7 +63,7 @@ Si l’ID exact n’existe plus : But : éviter les “liens morts” historiques quand une régénération d’IDs a eu lieu. Limite : c’est un fallback de dernier recours (moins déterministe qu’un alias explicite). -Le mécanisme recommandé reste : `docs/anchor-aliases.json` + injection au build. +Le mécanisme recommandé reste : `src/anchors/anchor-aliases.json` + injection au build. _______________________________________ @@ -87,7 +87,7 @@ Les IDs d’ancres générés (ou dérivés) peuvent changer : ## 2) Le mapping d’alias -- Fichier versionné (ex) : `docs/anchor-aliases.json` +- Fichier versionné (ex) : `src/anchors/anchor-aliases.json` - Format : `oldId -> newId` par page Ex en json :