diff --git a/_INDEX.md b/_INDEX.md index ea0c898..c9e1c0a 100644 --- a/_INDEX.md +++ b/_INDEX.md @@ -13,6 +13,7 @@ | [Audit securite reseau NAS (surface WAN, crowdsec, firewall, wg-easy)](common/audit-securite-reseau-nas-20260703.md) | 2026-07-03 | infra, securite, reseau, crowdsec, firewall, wg-easy, wan | | [Fragilites de dependances stack 43 containers (restart/persistance/couplages)](common/fragilites-dependances-stack-20260703.md) | 2026-07-03 | infra, stack, restart, couplage, dependances, rla-api, n8n | | [Correctifs fragilites appliques (rla-api compose, n8n/trilium restart, bifrost-proxy healthcheck)](common/correctifs-fragilites-application-20260704.md) | 2026-07-04 | infra, correctifs, rla-api, n8n, bifrost-proxy, healthcheck | +| [Rebuild nyora-doc-api + footer Nyora DOCX (procedure SSH host, multipart, verif XML)](common/nyora-doc-api-rebuild-footer-docx.md) | 2026-07-04 | infra, nyora-doc-api, docker, rebuild, footer, docx | | [Generation / edition d'images IA (nano-banana)](common/openrouter-image-gen.md) | 2026-06-14 | infra, openrouter, image, nano-banana | | [Gotenberg HTML->PDF (piege police web)](common/gotenberg-pdf.md) | 2026-06-14 | infra, gotenberg, pdf, fonts | | [Migration provider OpenCode Go (+ fallback OpenRouter)](common/migration-provider-opencode-go.md) | 2026-06-14 | infra, opencode, hermes, family-help, fallback | diff --git a/common/nyora-doc-api-rebuild-footer-docx.md b/common/nyora-doc-api-rebuild-footer-docx.md new file mode 100644 index 0000000..ad0346b --- /dev/null +++ b/common/nyora-doc-api-rebuild-footer-docx.md @@ -0,0 +1,30 @@ +# Runbook — Rebuild & déploiement nyora-doc-api (footer Nyora DOCX) + +**Date** : 04/07/2026 · **Statut** : validé en production + +## Problème +Le footer Nyora (liseré or → · NYORA · → tagline → © 2026) n'a jamais existé dans les DOCX générés par nyora-doc-api. Le fix était écrit dans `app/services.py` (`_add_docx_page_number_footer`) mais inactif : **`/app` est cuit dans l'image Docker, pas bind-mounté** — toute modification de code exige un rebuild. + +## Procédure validée (depuis mcp-nas) +1. **Docker indisponible dans le container mcp-nas** → passer par SSH host : `ssh -p 22222 Best0f@172.17.0.1` (clé ed25519 en place dans ~/.ssh du container). Sur le host : docker = `/usr/local/bin/docker`, **sans sudo** (Best0f dans le groupe docker ; sudo échoue, pas de TTY). +2. Build : `cd /volume1/docker/nyora-doc-api && /usr/local/bin/docker compose build` (~2 min, pip timeout 180 déjà dans le Dockerfile). +3. Déploiement : `docker stop nyora-doc-api && docker rm nyora-doc-api && docker compose up -d` — jamais de simple restart, l'image ne serait pas rechargée. +4. Health : `curl http://172.17.0.1:3050/health` → 200. + +## Test /v1/generate — pièges +- Endpoint **multipart/form-data**, pas JSON : `curl -F "format=docx" -F "data=]*>([^<]*)', xml) # textes du footer +'B8862A' in xml # liseré + NYORA doré +``` +Attendu : `· NYORA ·`, `Crafted with precision · Built for excellence`, `© 2026`, pagination. + +## Notes +- Couleur or : **#B8862A (Or Bruni, charte doc-api WCAG AAA)**, pas le #d4a01a de la règle générale footer — divergence assumée, à arbitrer. +- **Git existe sur le host NAS** (`/usr/bin/git`) — l'ancienne consigne « git depuis le Mac uniquement » est périmée. Push : `git push http://bolbol:PWD@127.0.0.1:3232/bolbol/REPO.git HEAD` depuis le host. +- Heredoc contenant du python multi-lignes dans mcp-nas → hang/timeout. Transférer les fichiers en base64 chunké (~290 chars) et décoder sur place.