From somtech-silo-manager
Déployer un silo généré — containers Docker, branche Git, Netlify, dev-env Fly.io
How this command is triggered — by the user, by Claude, or both
Slash command
/somtech-silo-manager:deploy-silo <client_slug> <app_slug>The summary Claude sees in its command listing — used to decide when to auto-load this command
# /deploy-silo
Déployer un silo préalablement généré par `/generate-silo`.
## Prérequis
- Les configs doivent exister dans `config/silos/{client}-{app}/`
- Les secrets doivent être disponibles : `SOMTECH_DESK_API_KEY`, `NETLIFY_AUTH_TOKEN`
- Accès Docker, Fly CLI (`flyctl`), Git
## Comportement
1. **Vérifier les configs** — Confirmer que `config/silos/{client}-{app}/` existe et contient tous les fichiers attendus (docker-compose, fly/*.toml, constitutions, .env.template, slack-channels.json).
2. **Relire la fiche** — Via MCP `applications.get(client_slug, app_slug)` pour avoir les inf...Déployer un silo préalablement généré par /generate-silo.
config/silos/{client}-{app}/SOMTECH_DESK_API_KEY, NETLIFY_AUTH_TOKENflyctl), GitVérifier les configs — Confirmer que config/silos/{client}-{app}/ existe et contient tous les fichiers attendus (docker-compose, fly/*.toml, constitutions, .env.template, slack-channels.json).
Relire la fiche — Via MCP applications.get(client_slug, app_slug) pour avoir les infos à jour.
Présenter le plan de déploiement — Afficher ce qui va être fait et demander confirmation :
Déployer les containers Docker (7 agents) :
docker compose -f docker-compose.silo-{client}-{app}.yml up -d
Vérifier que chaque container démarre correctement.
Créer l'organisation Fly.io (une seule fois par app) :
flyctl orgs create {client}-{app}
Provisionner le dev-env Fly.io (6 services) : Pour chaque service (pg, rest, auth, kong, storage, studio) :
flyctl apps create devenv-{client}-{app}-{service} --org {client}-{app}
flyctl deploy --config fly/{service}.toml --app devenv-{client}-{app}-{service}
Appliquer les migrations sur Postgres. Récupérer les connection_info (URLs, anon_key, service_role_key).
Créer la branche Git silo :
git branch silo/{client}-{app} main
git push origin silo/{client}-{app}
Configurer Netlify (UNE SEULE FOIS) via MCP Netlify :
netlify-project-services → activer le branch deploy sur silo/{client}-{app}netlify-project-services → set env vars du deploy context de la branche silo :
VITE_SUPABASE_URL = https://devenv-{client}-{app}-kong.fly.devVITE_SUPABASE_ANON_KEY = {anon_key du devenv}VITE_APP_ENV = developmentnetlify-deploy-services → trigger le premier build de la branche silosilo_preview_urlMettre à jour le Service Desk via MCP Desk :
update_silo_status(client, app, "active", { containers }) → marquer le silo actiflog_silo_event(client, app, "provisioned", "silo-manager", { configs, urls }) → logger l'événementapplications.update(client, app, { metadata.silo.silo_preview_url, metadata.silo.silo_deployed_at }) → sauvegarder l'URL de preview et la dateRapport final — Afficher un résumé complet :
https://silo-{client}-{app}--{site-name}.netlify.apphttps://devenv-{client}-{app}-studio.fly.devhttps://devenv-{client}-{app}-kong.fly.devsilo/{client}-{app}npx claudepluginhub somtechsolutionmaxime/somtech-pack --plugin somtech-silo-manager