Mon CV
← Retour aux projets
🤖 Projet Personnel · Administration Système

Infrastructure Multi-Agents OpenClaw

🐧 VPS Hetzner (Ubuntu) 🐳 Docker Compose 🤖 OpenAI API 📱 Telegram Bot

📌 Le projet

Déploiement de deux instances indépendantes de l'agent IA OpenClaw sur un VPS Hetzner via Docker Compose. Chaque instance est accessible via une interface Web et un bot Telegram dédié, pour deux utilisateurs distincts et totalement isolés.

VPS Hetzner Docker Compose OpenClaw OpenAI API Telegram Bot API

🏗️ Architecture

Deux stacks Docker Compose fonctionnent en parallèle sur le même serveur, chacune composée de :

  • Web Control UI — Interface d'administration accessible via tunnel, protégée par Gateway Token.
  • Gateway — Point d'entrée gérant les connexions WebSocket sécurisées.
  • Provider (LLM) — Moteur d'exécution envoyant les prompts à l'API OpenAI.
  • Bot Telegram — Interface frontale relayant les messages vers l'agent OpenClaw.

⚙️ Mise en œuvre

Préparation du VPS (Docker, Docker Compose), configuration des fichiers docker-compose.yml et .env (clés OpenAI et Telegram), démarrage et appairage des conteneurs. La seconde instance a été créée par duplication avec des ports, volumes et token Telegram distincts pour garantir l'isolation complète.

⚠️ Défis techniques

WebSocket — Pairing Required (erreur 1008)

OpenClaw impose une approbation manuelle de chaque périphérique. Résolu via la CLI du conteneur : devices list puis devices approve <requestId>.

API OpenAI — Quota insuffisant (erreur 429)

L'agent ne répondait pas. Diagnostiqué via un appel direct POST /v1/responses. Résolu en activant la facturation et en ajoutant des crédits.

Telegram — Conflit de token (409 Conflict)

Les deux instances utilisaient le même token. Résolu en générant un second token via BotFather et en mettant à jour le .env dédié.

Modèle incorrect sur l'instance secondaire

L'instance tentait de se connecter à Anthropic sans clé configurée. Résolu en forçant le provider OpenAI dans la configuration de l'agent.

🔒 Sécurité

Gestion des secrets
Clés API injectées uniquement via fichiers .env non versionnés.
Isolation
Dossiers, volumes Docker et réseaux séparés pour chaque instance.
Contrôle d'accès
Gateway Token + approbation manuelle des périphériques (pairing).

🎓 Compétences acquises

Techniques
Docker Compose Administration Linux Analyse de logs API OpenAI Telegram Bot API Variables d'environnement
Transversales
Troubleshooting Isolation des environnements Autonomie