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

23
docker-compose.prod.yml Normal file
View File

@@ -0,0 +1,23 @@
# Surcouche de déploiement (spec §5.2) :
# docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d generator
#
# - contenu tiré de la prod Figures Libres par rsync/SSH (bouton « Rafraîchir »)
# - build Nuxt puis serveur Nitro (pas de serveur de dev)
# - variables à définir dans un fichier .env (non versionné) :
# PORTFOLIO_PASSWORD=… mot de passe partagé
# SESSION_SECRET=… secret de session (longue chaîne aléatoire)
# INTERNAL_TOKEN=… jeton interne du rendu print
# SYNC_REMOTE=user@host:/chemin/vers/user/pages/02.projets/
# SYNC_SSH_KEY_FILE=~/.ssh/portfolio_sync clé privée SSH (lecture seule)
services:
generator:
command: sh -c "npm run build && npm run preview"
environment:
NUXT_CONTENT_SOURCE: prod
NUXT_SYNC_REMOTE: ${SYNC_REMOTE:?SYNC_REMOTE requis en mode prod}
NUXT_SYNC_SSH_KEY: /run/secrets/sync-ssh-key
NITRO_HOST: 0.0.0.0
NITRO_PORT: 3000
volumes:
- ./generator:/app
- ${SYNC_SSH_KEY_FILE:?SYNC_SSH_KEY_FILE requis en mode prod}:/run/secrets/sync-ssh-key:ro