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)
44 lines
1.4 KiB
YAML
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)
|