# TROUBLESHOOTING — Archicratie Web / NAS / Gitea Dernière mise à jour : 2026-02-01 Ce document liste les symptômes rencontrés et les remèdes **concrets**. --- ## 0) Réflexe unique Toujours isoler : **Local**, **Gitea**, **NAS**, **Navigateur**. - Si ça marche sur `127.0.0.1:8082` mais pas sur le domaine → proxy/cache. - Si ça marche après login Gitea mais pas via “Proposer” → variables `PUBLIC_GITEA_*`. - Si push refusé → branch protection (normal). --- ## 1) “Proposer” ouvre Gitea mais retourne 404 / non autorisé ### Symptôme Nouvel onglet : - 404 Not Found / “n’existe pas ou pas autorisé” - ou redirect `/user/login` ### Cause la plus fréquente URL pointe vers **mauvais owner/repo** (casse sensible) : - `archicratia/archicratie-web` au lieu de `Archicratia/archicratie-edition` ### Diagnostic Sur NAS (ou dans le HTML généré), vérifier l’URL ouverte : - doit contenir : `/Archicratia/archicratie-edition/issues/new` ### Fix Dans `.env` de build prod (NAS) : - `PUBLIC_GITEA_OWNER=Archicratia` - `PUBLIC_GITEA_REPO=archicratie-edition` Puis rebuild + restart du container + smoke. --- ## 2) Double onglet à la validation du flow “Proposer” ### Symptôme Deux onglets s’ouvrent au moment de valider (après choix 1 / choix 2). ### Causes possibles - handler JS déclenché deux fois (bubbling) - présence d’un `window.open` + `a.click()` simultanément - bouton “Proposer” est un `` et un autre handler ouvre aussi. ### Diagnostic rapide (devtools navigateur) Chercher `window.open` dans la page générée : - la commande doit retourner 0 lignes. Sur 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 Fix 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 # Cause fréquente Cache du navigateur (ancienne erreur conservée). # Diagnostic Comparer : curl -I http://127.0.0.1:8082/favicon.ico curl -kI https:///favicon.ico Si curl = 200 et navigateur = 504 → cache. # Fix Désactiver cache dans l’onglet Réseau (devtools) hard refresh vérifier droits fichiers dans dist/ ## 4) Sur NAS : git: command not found # Symptôme git fetch impossible sur le NAS. # Cause Git non installé sur DSM shell. # Fix standard (recommandé) Utiliser un conteneur git : APP="/volume2/docker/archicratie-web/current" U_ID="$(id -u)"; G_ID="$(id -g)" sudo docker run --rm --network host \ -u "$U_ID:$G_ID" -e HOME=/tmp \ -v "$APP":/repo -w /repo \ --entrypoint sh alpine/git -lc ' set -eu git config --global --add safe.directory /repo git config http.sslVerify false git fetch origin --prune git status -sb ' ## 5) Git : “dubious ownership in repository” # Symptôme fatal: detected dubious ownership # Fix Dans le conteneur git (ou machine locale) : git config --global --add safe.directory /repo ## 6) Git : non-fast-forward au push # Symptôme rejected (non-fast-forward) # Cause Ta branche locale est en retard vs remote. # Fix En général : on fait une PR depuis une branche ou on rebase/merge origin/main avant push Sur une branche de travail : git fetch origin git rebase origin/main # ou git merge origin/main ## 7) Gitea : “Not allowed to push to protected branch main” # Symptôme pre-receive hook declined # Cause Protection de branche (normal/attendu). # Fix Push sur une branche Ouvrir PR Merger via UI Gitea ## 8) Docker build : BuildKit / buildx / API version # Symptômes typiques the --network option requires BuildKit BuildKit is enabled but the buildx component is missing client version ... too new. Maximum supported API version ... # Fix “robuste” (principe) installer buildx si nécessaire si DSM/docker API ancienne : définir DOCKER_API_VERSION= (selon ton environnement) garder le build en --network host si nécessaire ## 9) Container Manager / Docker : “database is locked” (logging driver db) # Symptôme failed to initialize logging driver : database is locked # Cause Le driver de logs Docker est db (Synology) et sa DB est verrouillée. # Fix rapide Redémarrer “Container Manager” depuis le centre de paquets DSM. Vérifier que le conteneur redémarre ensuite. ## 10) Checklist “tout marche” curl -I http://127.0.0.1:8082/ => 200 curl -kI https:/// => 200 PUBLIC_GITEA_* corrects “Proposer” : 1 onglet, pas de 404, issue pré-remplie CI passe sur PR merge