Wiki/compose.staging.yml
Corentin JOGUET 668576cdc4 chore: initial commit — formation-hub conception phase
Conception complete (Phase 0) pour formation-hub Acadenice :

- 19 docs Merise Agile + UML + GitOps + plans (tests/deploy/ops/api)
  cf docs/00-readme.md pour l'index complet
- Stack Docker compose (Docmost + Baserow + Postgres + Redis + MinIO local FS)
  compose.yml + compose.staging.yml + compose.prod.yml
- CI/CD GitHub Actions skeleton (ci, deploy-staging, deploy-prod)
- Bridge service skeleton (Hono + TS + Biome + Vitest + zod + pino)
- Templates GitHub : PR + 3 issue types + CODEOWNERS + dependabot.yml
- Scripts ops : healthcheck, backup quotidien, smoke-test post-deploy
- LICENSE AGPL-3.0 + SECURITY.md + CONTRIBUTING.md + CHANGELOG.md
- Diagramme drawIO archi infra (XML importable dans diagrams.net)

Decisions structurelles enregistrees :
- Scope CFA + Agence avec entite PERSONNE pivot multi-roles (ADR-001)
- Stack composite Docmost AGPL + Baserow MIT + bridge custom (ADR-001)
- Path B : UX quasi-unified via Tiptap node-views custom (ADR-002)
- Monorepo trunk-based development (ADR-003)
- Postgres separe Docmost/Baserow (ADR-004)
- Bridge stack Node 22 + Hono (ADR-005)
- Repo neuf prefere a fork Docmost
- Prod-like des le jour 1 (pas MVP)
2026-05-07 12:16:19 +02:00

44 lines
1.4 KiB
YAML

# compose.staging.yml — overrides pour env staging
# Usage : docker compose -f compose.yml -f compose.staging.yml up -d
services:
docmost:
restart: always
environment:
APP_URL: ${DOCMOST_URL:?DOCMOST_URL requis sur staging}
LOG_LEVEL: info
labels:
- "traefik.enable=true"
- "traefik.http.routers.docmost-staging.rule=Host(`wiki.staging.acadenice.fr`)"
- "traefik.http.routers.docmost-staging.entrypoints=websecure"
- "traefik.http.routers.docmost-staging.tls.certresolver=letsencrypt"
- "traefik.http.services.docmost-staging.loadbalancer.server.port=3000"
ports: !reset []
baserow:
restart: always
environment:
BASEROW_PUBLIC_URL: ${BASEROW_URL:?BASEROW_URL requis sur staging}
labels:
- "traefik.enable=true"
- "traefik.http.routers.baserow-staging.rule=Host(`baserow.staging.acadenice.fr`)"
- "traefik.http.routers.baserow-staging.entrypoints=websecure"
- "traefik.http.routers.baserow-staging.tls.certresolver=letsencrypt"
- "traefik.http.services.baserow-staging.loadbalancer.server.port=80"
ports: !reset []
docmost-db:
restart: always
# Sur staging, on garde un volume persiste mais on accepte un dump regulier en backup
deploy:
resources:
limits:
memory: 1G
docmost-redis:
restart: always
networks:
default:
external: true
name: traefik # network commun avec Traefik (a adapter selon setup)