Déploiement
Dev local
Lancer la plateforme en local avec Docker Compose et l'ingress Caddy.
En local, la plateforme tourne en docker-compose : 4 conteneurs + Caddy en ingress.
Démarrer
cd platform
cp .env.example .env # ajuster les secrets
docker compose up --buildAccès
Accès direct aux conteneurs (dev) :
| Service | URL |
|---|---|
| Frontend | http://localhost:8080 |
| Backend (health) | http://localhost:3000/health |
| MCP endpoint | http://localhost:3001/mcp |
Accès via l'ingress Caddy (comme en prod) — Caddy provisionne un TLS local pour
localhost et redirige HTTP→HTTPS (CA auto-signée → -k avec curl) :
| Surface | URL |
|---|---|
| App | https://localhost/ |
| API | https://localhost/api/health |
| MCP | https://mcp.localhost/mcp |
Base de données & seed
Au démarrage, le conteneur backend exécute entrypoint.sh : migrations (dist/migrate.js)
puis seed idempotent (dist/seed/seed.js) avant de lancer le serveur.
- ORM : Drizzle (Postgres). Schéma dans
backend/src/db/schema/*.ts, migrationsdrizzle-kitdansbackend/src/db/migrations/. - Le seed lit le catalogue monté (
/catalog) et crée : le compte démo (GRACE_OWNER_EMAIL/GRACE_OWNER_PASSWORD, e-mail/mot de passe) owner d'une organisation démo pré-approuvée (grace-demo, statutapproved), le catalogue (catalog_talents), un projet démobilling-demorattaché à cette organisation, un token projet de dev et la sélection (project_talents, tout le catalogue activé pour la démo). Les vrais utilisateurs se créent via e-mail/mot de passe, Google ou le SSO de leur organisation. - Token de dev :
grc_proj_demo(override viaGRACE_DEV_TOKEN). Le hash est stocké, le clair est imprimé au seed — c'est le bearer à coller dans le.mcp.jsondu repo client.
Inspecter la base :
docker compose exec postgres psql -U grace -d grace -c "\dt"→ La liste des variables est dans Variables d'environnement.