Skip to content

Déploiement

Ce guide résume comment passer d’un essai local à une installation plus durable : images versionnées, secrets, réseau et mise à niveau.

Modes de déploiement

ModeFichierUsage typique
Développementdocker-compose.yml (dans le clone)Build de l’image app, volume du code, port 5173.
Distributiondocker-compose.dist.ymlPas de clone : YAML + .env, pull d’images GHCR.

Les deux injètent TATI_AUTH_REQUIRED et TATI_SESSION_TTL_DAYS dans le service applicatif pour que le comportement d’auth suive votre .env.

Images et registre

Les variables suivantes contrôlent quel code tourne en prod :

  • TATI_IMAGE_REGISTRY — préfixe du registre (ex. ghcr.io/jeffsouop en minuscules pour GitHub Container Registry).
  • TATI_IMAGE_TAG — tag aligné sur une release ou latest.

Si vous forkez le dépôt et publiez vos propres images, mettez à jour ces deux clés en cohérence avec votre pipeline CI.

Stratégie de tags

  • En test : latest peut suffire mais les builds peuvent changer sans prévenir.
  • En prod : épinglez un tag semver (v0.x.y) et documentez la valeur dans votre gestionnaire de config interne.

Ports et exposition

  • APP_PORT — port public de l’interface TaTi (mode dist).
  • POSTGRES_PORT — n’exposez Postgres vers Internet sans firewall ; préférez réseau privé ou pas d’exposition publique.
  • Ports MCP (8001, 8002, …) — en production, ne mappez que ce dont vous avez besoin ou placez les MCP derrière un VPN / réseau interne.

Schéma mental : seule l’application TaTi doit être visible aux utilisateurs finaux ; les MCP sont des backends techniques.

Secrets

  • Ne committez jamais .env.
  • Utilisez un secret manager (Vault, AWS Secrets Manager, etc.) et injectez les variables au runtime (systemd, Kubernetes secrets, GitHub Actions OIDC…).
  • Pour GitHub/GitLab MCP : jetons least privilege ; activez les garde-fous MCP_WRITE_CONFIRM_TOKEN / OpenMetadata write confirm.

Sauvegarde Postgres

Avant une mise à niveau majeure :

bash
docker exec tati-postgres pg_dump -U "$POSTGRES_USER" "$POSTGRES_DB" > backup.sql

Adaptez le nom du conteneur si vous l’avez renommé.

Mise à niveau

  1. Lire les release notes sur GitHub.
  2. Sauvegarder la base (voir ci‑dessus).
  3. Mettre à jour TATI_IMAGE_TAG si vous utilisez les images GHCR.
  4. Fusionner les nouvelles clés : comparez votre .env avec .env.example du même tag.
  5. docker compose pull && docker compose up -d.
  6. Contrôler les logs : docker compose logs -f app et les services MCP critiques.

En cas d’échec de migration applicative, restaurez la sauvegarde SQL et repassez au tag d’image précédent.

Haute disponibilité (hors scope détaillé)

Le dépôt vise un déploiement Compose simple. Pour du multi‑réplicas, orchestrateur Kubernetes, ou TLS terminé par un reverse proxy (Traefik, nginx), adaptez les manifestes et les healthchecks — les principes restent : Postgres durable, secrets injectés, MCP non exposés publiquement.


Pour la liste exhaustive des variables : Configuration.

TaTi — copilote IA delivery/ops • Documentation sous licence du dépôt