Stack d'orchestration Figures Libres (Docker Compose)

Câble ensemble le générateur (dépôt generator/) et le CMS Grav d'exemple
(dépôt grav-reference/, monté :ro), tous deux clonés côte à côte et non
versionnés ici. Contient : docker-compose dev + surcouche prod (rsync/SSH),
image Grav (docker/grav), doc de câblage.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-05 18:38:04 +02:00
commit 48b7f97954
6 changed files with 273 additions and 0 deletions

46
CLAUDE.md Normal file
View File

@@ -0,0 +1,46 @@
# CLAUDE.md — stack Figures Libres (orchestration)
Dépôt d'**orchestration** de l'environnement du générateur de portfolios. Il ne
contient **pas** de code applicatif : il câble ensemble trois checkouts posés
côte à côte, via Docker Compose.
```
portfolio-maker/ ← CE dépôt (stack)
├── docker-compose.yml # grav-reference (8089) + generator (8091)
├── docker-compose.prod.yml # surcouche déploiement (build Nitro + rsync prod)
├── docker/grav/Dockerfile # image PHP+Apache servant grav-reference/
├── generator/ ← dépôt À PART (l'app) — cloné ici, git-ignoré
└── grav-reference/ ← dépôt À PART (CMS d'exemple) — cloné ici, git-ignoré
```
## Règle absolue : tout tourne dans Docker
Node, build Nuxt, Playwright/Chromium, Ghostscript, ffmpeg, rsync — **rien sur
l'hôte**. Exception connue : vérifier le rendu d'un PDF (`pdftoppm`) peut se faire
sur l'hôte, les templates print étant piégeux (voir `generator/CLAUDE.md`).
```bash
docker compose up -d # grav-reference + generator
```
- Générateur : http://localhost:8091 — mot de passe dev `figureslibres`.
- Grav de référence : http://localhost:8089 (CMS d'exemple, **pas** l'app à développer).
## Les trois composants
- **`generator/`** — l'app Nuxt = le livrable. Dépôt autonome (Dockerfile inclus),
poussé sur le gitea figureslibres.io. Toute la doc app est dans `generator/CLAUDE.md`.
- **`grav-reference/`** — le vrai site Grav, **son propre dépôt** (~4,8 Go), monté
`:ro`. Source de contenu en lecture seule, jamais modifié.
- **Ce dépôt** — compose, image Grav, doc de câblage. Ne versionne ni `generator/`
ni `grav-reference/` (ils ont chacun leur dépôt).
## Déploiement (mode prod)
Contenu tiré de la prod par rsync/SSH en lecture seule vers
`generator/data/content-cache/`, déclenché par le bouton « Rafraîchir ». Voir les
variables `.env` (non versionné) documentées dans `docker-compose.prod.yml`.
```bash
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d generator
```