feat(infra): prêt au déploiement GitOps Portainer + Telegram optionnel (v0.32.0)

Compose de prod docker-compose.prod.yml (GitOps, sans env_file, réseau proxy
réel, certresolver letsencrypt) + runbook docs/deploy.md (Phase 1, users
chlova restreints Portainer/n8n). Surface Telegram rendue optionnelle pour un
déploiement UI-only ; garde assertHasSurface fail-closed. Typecheck + 78 tests
verts.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016w5jRe87MGdd6AMvXQcHNi
This commit is contained in:
Kantin-Petit
2026-06-23 11:25:30 +02:00
parent faa1e82301
commit d824d16eed
7 changed files with 379 additions and 21 deletions
+17
View File
@@ -6,6 +6,23 @@ incompatibles. Chaque ligne renvoie à un commit dédié (un artefact = un commi
## [Unreleased]
## [0.32.0] — 2026-06-23 — prêt au déploiement (GitOps Portainer, Phase 1)
### Added
- **`infra/docker-compose.prod.yml`** : compose de PRODUCTION pour GitOps
Portainer. Sans `env_file` (secrets via variables de stack), réseau Traefik
réel `proxy` (external), certresolver `letsencrypt`, backend joint `proxy`
pour atteindre n8n en interne. Cible : env `vps-pogoo-002`.
- **`docs/deploy.md`** : runbook Phase 1 — dépôt git, génération secrets,
users restreints `chlova` (Portainer + n8n, étapes UI), variables de stack,
déploiement, vérification, rollback, bascule Phase 2.
- `config.assertHasSurface()` : refuse de démarrer si aucune surface (Telegram
OU API/UI) n'est configurée. 3 tests (11 au total dans config).
### Changed
- **Surface Telegram rendue optionnelle** (`telegramBotToken` optionnel ;
`index.ts` ne démarre la surface que si le token est présent). Permet le
déploiement **UI-only** voulu. `.env.example` documenté en conséquence.
- Typecheck vert, 78 tests verts.
## [0.31.0] — 2026-06-23 — app mobile (React Native / Expo)
### Added
- Package **`mobile/`** : app Expo SDK 56 (expo-router) réutilisant l'API backend.