runbook: rebuild nyora-doc-api + footer Nyora DOCX (04/07/2026)
This commit is contained in:
@@ -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=</tmp/data.json"` + header `X-API-Key` (clé dans hermes-platform/.env). Un POST -d JSON → 422 "body.format missing".
|
||||
- Payload avec apostrophes françaises : toujours l'écrire dans un fichier, jamais inline.
|
||||
|
||||
## Vérification du footer (sans ouvrir Word)
|
||||
```python
|
||||
import zipfile, re
|
||||
xml = zipfile.ZipFile('doc.docx').read('word/footer1.xml').decode()
|
||||
re.findall(r'<w:t[^>]*>([^<]*)</w:t>', 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.
|
||||
Reference in New Issue
Block a user