Aller au contenu principal

Deploiement avec Podman

Chatbotaurus utilise exclusivement Podman (pas Docker) pour la conteneurisation. Ce guide couvre le deploiement complet de l'infrastructure.

Pre-requis

Reseaux

Chatbotaurus utilise deux reseaux Podman isoles :

# Reseau Core (services principaux)
podman network create --subnet 172.28.0.0/16 chatbotaurus-network

# Reseau MGaaS (services metier deployes)
podman network create --subnet 172.29.0.0/16 mgaas-network
ReseauSubnetUsage
chatbotaurus-network172.28.0.0/16Services core (PostgreSQL, Ollama, Keycloak, etc.)
mgaas-network172.29.0.0/16Services metier deployes (Odoo, n8n, Matomo, etc.)

Deploiement des Services Core

# Deployer les 23 services core
podman kube play --network chatbotaurus-network kubernetes/podman-local/00-core-pods.yaml

# Verifier les pods
podman pod ps

Services Core (VPS1)

ServiceConteneurIPPort
PostgreSQL TimescaleDBchatbotaurus-postgres.355432
Qdrant (vecteurs)chatbotaurus-qdrant.366333
Valkey (cache)chatbotaurus-valkey.376379
Vault (secrets)chatbotaurus-vault.388200
Ollama (LLM)chatbotaurus-ollama.4711434
Keycloak (SSO)chatbotaurus-keycloak.608080
Traefik (reverse proxy)chatbotaurus-traefikdyn80/443
Backend x2chatbotaurus-backend-1/2.61/.623000
Frontend x2chatbotaurus-frontend-1/2.73/.743001
Forgejo (Git)chatbotaurus-forgejo-dev.513000

Deploiement des Services MGaaS

# Deployer les services metier (mode dev)
podman kube play --network mgaas-network kubernetes/podman-local/01-mgaas-pods.yaml

# Ou mode VPS complet (38 services)
podman kube play --network mgaas-network kubernetes/podman-local/01-mgaas-pods-vps.yaml

Build des Images

Les images sont construites directement sur le VPS (pas en local) :

# Backend
podman build -t localhost/chatbotaurus-backend:staging \
-f packages/server/Containerfile .

# Frontend
podman build -t localhost/chatbotaurus-frontend:staging \
-f packages/new-ui/Containerfile .

Modeles Ollama

Apres le demarrage d'Ollama, telecharger les modeles :

podman exec chatbotaurus-ollama ollama pull qwen3:8b
podman exec chatbotaurus-ollama ollama pull tomng/nanbeige4.1:3b
podman exec chatbotaurus-ollama ollama pull qwen3-embedding:0.6b

# Verifier les modeles installes
podman exec chatbotaurus-ollama ollama list

Scan de Securite (Trivy)

Avant chaque deploiement, scanner les images :

.\scripts\scan-images-trivy.ps1 -SeverityThreshold HIGH
  • CRITICAL = deploiement bloque
  • SBOM genere au format SPDX JSON

Contraintes Ressources

RessourceLimiteAlerte
RAM totale VPS1< 24 Go> 20 Go
CPU< 85%> 70%
RAM Ollama16 Gi-
RAM Backend (par instance)2 Gi-
RAM Frontend (par instance)512 Mi-

Commandes Utiles

# Lister tous les conteneurs
podman ps -a

# Logs d'un conteneur
podman logs -f chatbotaurus-backend-1

# Restart d'un conteneur
podman restart chatbotaurus-backend-1

# Inspecter un conteneur
podman inspect chatbotaurus-backend-1

# Statistiques ressources
podman stats --no-stream

Notes Importantes

  • Tous les conteneurs sont rootful (sudo podman)
  • DNS fix requis : --dns 153.92.2.6 sur chaque conteneur (aardvark-dns casse)
  • Traefik utilise des IPs directes (pas de noms de conteneurs) dans la config dynamique
  • Vault se re-seal au restart : prevoir auto-unseal
  • Ollama : num_ctx:2048 obligatoire (pas 4096, sinon OOM)