From 8c6e594ff150f011f5e6ba31d722e3943e6c9877 Mon Sep 17 00:00:00 2001 From: bolbol Date: Sat, 4 Jul 2026 00:26:00 +0000 Subject: [PATCH] docs: application correctifs fragilites (rla-api, n8n, trilium, bifrost-proxy) --- ...rectifs-fragilites-application-20260704.md | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 common/correctifs-fragilites-application-20260704.md diff --git a/common/correctifs-fragilites-application-20260704.md b/common/correctifs-fragilites-application-20260704.md new file mode 100644 index 0000000..d807534 --- /dev/null +++ b/common/correctifs-fragilites-application-20260704.md @@ -0,0 +1,26 @@ +# Correctifs fragilites stack — application (04/07/2026) + +Suite de l'analyse fragilites-dependances-stack-20260703. Correctifs appliques et verifies. + +## 1. rla-api : couplage mort ELUCIDE puis assaini (le "bug" n'existait plus) +Diagnostic initial : env GOTENBERG_URL=3001 (=pihole, 403) + PPTX_API_URL=8015 (mort). Verification par le CODE REEL (repo bolbol/Gestion-des-Marches-RLA, services/export-*.js) : depuis le refactor d'avril 2026, rla-api genere **100% en local** via pdfkit / exceljs / pptxgenjs / docx (package.json). Les variables GOTENBERG/PPTX etaient des **orphelines mortes jamais lues** — aucun appel dans le code. Les 4 exports fonctionnent (teste : PDF 4.2Ko, XLSX 18Ko, PPTX 806Ko, DOCX 25Ko, HTTP 200). L'export XLSX/PPTX/DOCX exige role=superadmin (403 sinon) — ce n'est pas un bug, c'est le middleware roles.js. +Action : container standalone (sans compose, sur bridge, sans healthcheck) -> cree un **compose declaratif** (/volume1/docker/rla-api/) : reseau n8n, env_file .env (orphelines purgees), healthcheck node http, restart unless-stopped. Recreate OK. Pousse sur bolbol/Gestion-des-Marches-RLA (docker-compose.yml). +Piege : .env doit etre chown 1026:100 sinon "permission denied" au compose up. + +## 2. n8n + n8n-DB : restart on-failure -> unless-stopped +on-failure ne remonte PAS apres arret systeme. Corrige a chaud (docker update, zero coupure) + compose /volume1/docker/n8n/docker-compose.yml (3 services dont docx-generator inactif). Backup conserve. NB : le stack est aussi reference cote Portainer (stack 254) -> re-sauver via l'UI Portainer pour coherence totale. Dossier n8n non versionne (pas de repo git). + +## 3. Trilium + reglement-definitif-api : restart no -> unless-stopped +docker update a chaud. reglement-definitif : le compose disait deja unless-stopped (le container tournait en 'no' = DESYNC compose/runtime, resolue). Trilium : pas de compose sur disque (image publique triliumnext/trilium:latest, pas de risque image locale). + +## 4. bifrost-proxy : ajout healthcheck +openresty sans healthcheck = figeage indetectable (maillon auth+cap devant Bifrost). Ajoute : wget /v1/models (endpoint servi localement, independant de l'upstream Bifrost). Healthy confirme. Compose + backup, pousse sur bolbol/bifrost-proxy. Piege : "dubious ownership" git -> git config --global --add safe.directory . + +## 5. Images locales : risque prune DEJA COUVERT +7 images locales (rla-api, reglement-definitif, dashboard-terrain, nyora-doc-api, context-hub, gsparc-mezzouna, family-help, veille-backend). Verification : TOUTES ont leur source + Dockerfile sur Gitea (racine ou backend/). Rebuild possible. panda-dashboard=nginx:alpine et Trilium=triliumnext = images publiques (hors risque). RESTE la regle : jamais `docker image prune -a`, seulement dangling. + +## Etat final verifie +rla-api healthy | n8n healthy | n8n-DB running | Trilium healthy | reglement-definitif running | bifrost-proxy healthy. Tous unless-stopped. + +## Reste (non bloquant) +Healthchecks a ajouter progressivement : family-help, redaction-pro, context-hub, veille-backend/frontend, hermes-mail-proxy, dashboard-terrain, reglement-definitif-api, n8n-DB. reglement-definitif-api : 0 env = config bakee dans l'image, a auditer (opaque).