Chatbotaurus en 5 minutes
Chatbotaurus est une plateforme MGaaS (MCP Gateway as a Service) souveraine
européenne, écrite en Rust : un backend Axum (forge-api) et un frontend
Dioxus compilé en wasm (forge-ui). Elle réunit un agent conversationnel, une
passerelle MCP et des fiches de connecteurs YAML.
Cette page montre un chemin court : lancer la pile en local, ouvrir l'application, poser une première question.
Chiffres du catalogue : 195 fiches YAML de connecteurs, mesurées le 3 octobre 2026 (
connectors/*.yaml). Le nombre exact change à chaque ajout ; la source est le dossier, pas cette page.
Trois parcours de lecture
Ce livre se lit selon votre rôle. Chaque étape renvoie au chapitre qui la traite ; la page que vous lisez reste un chemin court pour lancer la pile en local.
Décideur (dirigeant, délégué à la protection des données, acheteur)
- Cas d'usage par secteur : ce que la plateforme fait pour votre métier
- Tarification et offres : les quatre offres et les capacités par plan
- SLA, support et niveaux de service : disponibilité, délais de support, pénalités
- Conformité RGPD : données personnelles, hébergement et sous-traitants dans l'UE
- Comparatifs : ce qui distingue une passerelle hébergée dans l'UE
- Limites et ce que la plateforme ne fait pas : le périmètre, dit sans détour
Délégué à la protection des données (répondre à une demande d'un utilisateur, documenter la sous-traitance) : Conformité RGPD, Paramètres (la page Compte porte l'export et la suppression), Journaux (chaîne d'audit) et Réponse aux incidents (notification d'une violation).
Utilisateur (responsable métier, équipe)
En production, l'application est sur app.chatbotaurus.eu (voir En production). En local, lancez d'abord la pile avec le chemin court plus bas.
- Prise en main guidée : du compte au premier workflow
- Tableau de bord : la première page après la connexion
- Workflows : l'éditeur, la palette de nœuds, les exécutions
- Chat : parler à un workflow déployé
- Connaissances : collections de documents et recherche ancrée (l'envoi de documents depuis l'application n'est pas encore branché)
- Questions fréquentes : les réponses courtes aux questions courantes
Pour brancher votre Odoo : Sécurité et identifiants (enregistrer les identifiants), puis Connecter Odoo à la passerelle MCP (un premier outil appelé, puis le chat).
Opérateur ou intégrateur (développeur, administrateur système)
- Installation de Chatbotaurus : compiler et lancer la pile
- Variables d'environnement : chaque variable lue par le code
- Déploiement avec Podman : deux plans, unités Quadlet en production
- Créer votre premier connecteur MCP : une fiche YAML, sans Rust
- Routes MCP (Streamable HTTP) : le transport, les sessions, le catalogue
- Supervision : points de santé et métriques en service
Une fois la pile en service : Sauvegarde et restauration, Gestion des conteneurs (mise à jour, dépannage) et Réponse aux incidents.
Pour appeler l'API depuis un script : Documentation Swagger (obtenir un jeton), puis Connecter Odoo à la passerelle MCP (un premier appel d'outil de bout en bout) et Gestion des erreurs (lire un code d'erreur).
Prérequis
| Outil | Version | Usage |
|---|---|---|
| Rust (rustup) | 1.91 ou plus (rust-version du workspace) | Compiler forge-api et forge-ui |
Dioxus CLI (dx) | 0.7 | Serveur de développement et bundler wasm |
| Git | 2.x | Récupérer le dépôt |
| Podman | 4.x ou plus | Conteneurs d'infrastructure (PostgreSQL, Valkey, Qdrant, Ollama, entre autres) |
podman-compose | avec un tiret | Lancer les deux plans compose du dépôt |
| Cible wasm | wasm32-unknown-unknown | rustup target add wasm32-unknown-unknown, nécessaire à la compilation de forge-ui (étapes 3 et 6) |
Installez le CLI Dioxus avec :
cargo install dioxus-cli --locked
1. Récupérer le dépôt
git clone <url-du-depot>
cd <dossier-du-depot>
cp .env.example .env
Éditez .env. Les valeurs secrètes de .env.example sont des gabarits
CHANGE_ME_... : l'application refuse de démarrer avec elles. Générez les
vôtres, par exemple avec openssl rand -hex 64.
Variables minimales (toutes lues par le code ; la liste complète est dans Variables d'environnement) :
DATABASE_URL=postgresql://<utilisateur>:<mot-de-passe>@localhost:5432/<base>
REDIS_URL=redis://localhost:6380
JWT_SECRET=<64 octets hexadécimaux>
QDRANT_URL=http://localhost:6334
OLLAMA_BASE_URL=http://localhost:11434
SMTP_HOST=<serveur-smtp>
SMTP_USER=<compte>
SMTP_PASSWORD=<mot-de-passe-applicatif>
Pourquoi le SMTP : le second facteur (FORCE_2FA, vrai par défaut) envoie un
code par courriel. Sans SMTP configuré, le démarrage est refusé.
2. Lancer l'infrastructure
Le dépôt a deux plans compose (voir Déploiement avec Podman).
Pour un premier essai, le plan
chatbotaurus-vps1 suffit (PostgreSQL, Valkey, Qdrant, Ollama, Authentik,
OpenBao, voix, observabilité) :
podman-compose -p chatbotaurus-vps1 -f podman-compose.yml up -d
Le plan mgaas-vps2 (passerelle et serveurs mcp-*) se lance de la même
façon avec podman-compose.vps2.yml. Il n'est pas nécessaire pour ce
tutoriel.
Téléchargez ensuite le modèle de dialogue souverain dans Ollama :
podman exec forge-ollama ollama pull cas/eurollm-1.7b-instruct-q8
3. Lancer le backend et le frontend
Appliquer les migrations :
cargo run -p forge-cli -- db migrate
Backend, port 3000 :
cargo run -p forge-api
Frontend, port 8080, dans un second terminal :
dx serve --platform web --port 8080 --package forge-ui
La première compilation wasm est longue. Ensuite le rechargement à chaud prend
quelques secondes : ne relancez pas dx pour une modification.
Vérifiez que le backend répond (les autres sondes sont dans Diagnostics et signalement) :
curl http://localhost:3000/api/v1/health
La réponse est un JSON avec "status":"ok", le nom du service et la version.
4. Première conversation
- Ouvrez l'interface locale (http://localhost:8080). Sans session, elle vous renvoie vers l'écran de connexion (
/auth/login). - Créez un compte sur
/auth/signup, puis connectez-vous sur/auth/login. Le code à usage unique arrive par courriel (/auth/verify-otp). - Au premier accès, l'assistant d'accueil (
/onboarding) vous demande votre secteur et un modèle de départ. Voir Prise en main guidée. - Ouvrez
/chatou/orchestratoret posez une question, par exemple :
Quels connecteurs sont disponibles pour l'ERP ?
L'assistant s'appuie sur le catalogue de connecteurs de votre instance. La page est décrite dans Chat.
5. Interroger l'API
Les routes de l'API sont sous /api/v1. Le catalogue des connecteurs (contrat et
authentification : Documentation Swagger) exige un
jeton (Authorization: Bearer <jeton>), obtenu par la connexion (voir
Authentification) :
curl -H "Authorization: Bearer <jeton>" \
http://localhost:3000/api/v1/mcp/catalogue
Le transport MCP (JSON-RPC 2.0, HTTP streamable) est monté sur
/api/v1/mcp, lui aussi authentifié. Voir Routes MCP.
Les passerelles (Routes des gateways et de la prédiction) se manipulent par
/api/v1/mcp-gateway/*.
6. Vérifier
cargo test -p forge-replay
cargo build -p forge-ui --target wasm32-unknown-unknown --bin chatbotaurus
Pour regénérer ce livre en local : cargo run -p forge-docs. dx serve le
sert ensuite sous /docs/.
En production
L'application publique est servie sur chatbotaurus.eu (site) et
app.chatbotaurus.eu (application). Les prix publics sont sur la page
/pricing : Starter 9 EUR, Pro 29,90 EUR, Enterprise 99,90 EUR par mois
(HT), Souverain sur devis. Le détail des offres est dans
Tarification.
Prochaines étapes
- Installation complète
- Prise en main guidée
- Fournisseurs de modèles
- Utiliser les connecteurs MCP
- Architecture
- Guide utilisateur
- Contribuer
Voir aussi
- Glossaire : les termes du livre (MCP, gateway, connecteur, nœud) définis en une ligne
- Problèmes connus : ce qui bloque fréquemment au premier lancement
- Fichiers de configuration : les fichiers que le code lit, au-delà du fichier d'environnement
- Gestion des conteneurs : commandes courantes une fois les plans démarrés