Déployer OpenClaw avec Docker constitue une solution efficace pour exécuter cet agent IA dans un en­vi­ron­ne­ment isolé, stable et facile à maintenir. La con­te­neu­ri­sa­tion permet de séparer clai­re­ment l’ap­pli­ca­tion du système hôte, de sim­pli­fier la gestion des dé­pen­dances et de faciliter les mises à jour. Dans cet article, nous vous ex­pli­quons étape par étape comment préparer votre serveur, installer OpenClaw avec Docker et Docker Compose, sécuriser la con­fi­gu­ra­tion et mettre en place une ex­ploi­ta­tion fiable en pro­duc­tion.

Pourquoi installer OpenClaw avec Docker Compose ?

Avant de vous lancer, vous devez com­prendre ce qu’est OpenClaw et pourquoi il est judicieux d’exploiter la solution avec Docker Compose:

  • OpenClaw est un agent IA autonome, capable d’exécuter dif­fé­rentes tâches de manière in­dé­pen­dante. Il peut traiter des messages, analyser des fichiers et au­to­ma­ti­ser des con­ver­sa­tions par chat.
  • OpenClaw peut fonc­tion­ner sur votre propre serveur, est open source et propose plus de 50 in­té­gra­tions (WhatsApp, Telegram, Slack, Discord, etc.).
  • La méthode d’ins­tal­la­tion re­com­man­dée et la plus stable est via Docker Compose, car toutes les dé­pen­dances sont au­to­ma­ti­que­ment gérées de manière isolée. Vous pourrez de plus les mettre à jour ou les étendre plus fa­ci­le­ment par la suite.

OpenClaw utilise Docker comme en­vi­ron­ne­ment isolé. Via Docker Compose, plusieurs con­te­neurs sont ensuite démarrés si­mul­ta­né­ment, notamment Gateway, CLI, éven­tuel­le­ment Sandbox et des outils externes, qui cons­ti­tuent ensemble le système.

Note

OpenClaw agit, dans de nombreux en­vi­ron­ne­ments, prin­ci­pa­le­ment comme service de pas­se­relle et d’or­ches­tra­tion, qui relie des mes­sa­ge­ries, des outils et des services à un grand modèle de langage (LLM). Le degré d’autonomie avec lequel OpenClaw fonc­tion­nera ensuite dépend fortement de votre con­fi­gu­ra­tion in­di­vi­duelle, comme les règles réseau. Pour des raisons de sécurité et de gestion des attentes, vous devez en par­ti­cu­lier concevoir la gestion des droits selon le principe du moindre privilège et n’autoriser que les accès réel­le­ment né­ces­saires à vos au­to­ma­ti­sa­tions.

Étape 1 : trouver le serveur adapté

OpenClaw n’est pas sim­ple­ment un chatbot, mais un outil autonome qui fonc­tionne sur votre serveur et interagit avec des pro­grammes, des mes­sa­ge­ries et des services. Par exemple, vous pouvez utiliser le logiciel pour gérer des ca­len­driers, ad­mi­nis­trer des fichiers et envoyer des no­ti­fi­ca­tions. Il est également possible de dé­clen­cher des au­to­ma­ti­sa­tions ou d’exécuter des workflows complets de dé­ve­lop­pe­ment via API ou webhooks.

Pour la plupart des cas d’usage, les con­fi­gu­ra­tions VPS sont par­ti­cu­liè­re­ment re­com­man­dées, car elles offrent une base à la fois éco­no­mique et per­for­mante pour la com­bi­nai­son OpenClaw / Docker. C’est encore plus pratique si l’hé­ber­ge­ment VPS peut s’appuyer sur l’au­to­ma­ti­sa­tion n8n, car la connexion de Docker et OpenClaw à d’autres outils en est d’autant facilitée. En règle générale, plus vos tâches sont exi­geantes, plus vous devez prévoir de RAM et de CPU. Docker Compose et les modèles d’IA con­som­ment de la mémoire pour les images, les journaux des con­te­neurs et la per­sis­tance des données. De manière générale, les res­sources né­ces­saires dépendent aussi fortement de la charge de travail et du fait que vous utilisiez un LLM Cloud ou que vous exécutiez les modèles en local. Le tableau ci-dessous vous propose, à titre indicatif, quelques cas d’usage exem­plaires et la puissance VPS re­com­man­dée.

Cas d’usage Fonctions prin­ci­pales Res­sources VPS re­com­man­dées
Assistant numérique du quotidien Synthèses de rendez-vous, messages, ca­len­drier 4 vCores CPU, 4 Go de RAM, 120 Go d’espace disque
Au­to­ma­ti­sa­tion de workflows et do­cu­men­ta­tion Créer des documents, traiter des données, upload de fichiers 6 vCores CPU, 8 Go de RAM, 240 Go d’espace disque
Pro­duc­ti­vité dé­ve­lop­peur et au­to­ma­ti­sa­tion à distance Tests, builds, logs, tâches shell 8 vCores CPU, 16 Go de RAM, 480 Go d’espace disque

Étape 2 : installer le système d’ex­ploi­ta­tion et établir une connexion sécurisée

Avant de pouvoir installer des logiciels comme OpenClaw avec Docker Compose, vous avez besoin d’un système d’ex­ploi­ta­tion sur votre serveur. Pour la con­fi­gu­ra­tion d’OpenClaw avec Docker, une dis­tri­bu­tion Linux comme Ubuntu Server est par­ti­cu­liè­re­ment adaptée. Installez donc une version Ubuntu récente sur votre VPS, puis éta­blis­sez une connexion sécurisée à votre serveur, par exemple via SSH (Secure Shell). Veillez à utiliser des accès SSH avec clés plutôt que des mots de passe, afin de protéger votre serveur contre les accès non autorisés.

Note

Ce tutoriel présente un setup standard fonc­tion­nel pour des en­vi­ron­ne­ments de test et de dé­ve­lop­pe­ment. N’utilisez pas la con­fi­gu­ra­tion par défaut telle quelle pu­bli­que­ment sur Internet. Pour les systèmes de pro­duc­tion, vous devez mettre en œuvre des mesures de dur­cis­se­ment sup­plé­men­taires, comme la sé­cu­ri­sa­tion TLS/HTTPS via un reverse proxy, une gestion cen­tra­li­sée des secrets, l’isolation réseau et des règles de pare-feu, ainsi que le mo­ni­to­ring, les alertes et des sau­ve­gardes ré­gu­lières des données et des con­fi­gu­ra­tions.

Étape 3 : installer Docker Compose

Dès que vous avez établi une connexion sécurisée au serveur et configuré le système d’ex­ploi­ta­tion souhaité, vous pouvez installer Docker Compose. Pour cela, vous devez d’abord mettre le système à jour :

sudo apt update && sudo apt upgrade -y
sudo apt install -y ca-certificates curl gnupg lsb-release
bash

Ensuite, ajoutez la clé GPG de Docker et con­fi­gu­rez le dépôt :

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
bash

Mettez de nouveau à jour la liste des paquets, puis installez le moteur Docker, la CLI Docker (interface en ligne de commande) ainsi que le service « con­tai­nerd » :

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
bash

Lors de la dernière étape, installez Docker Compose. De nombreux nouveaux systèmes peuvent pour cela s’appuyer sur le système de plugins :

sudo apt install -y docker-compose-plugin
bash

Vous pouvez aussi té­lé­char­ger ma­nuel­le­ment les fichiers d’ins­tal­la­tion :

mkdir -p ~/.docker/cli-plugins
curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 \
    -o ~/.docker/cli-plugins/docker-compose
chmod +x ~/.docker/cli-plugins/docker-compose
bash

Vous pouvez vérifier le succès de l’ins­tal­la­tion avec la commande suivante :

docker --version
docker compose version
bash

Étape 4 : cloner le dépôt OpenClaw

Récupérez main­te­nant le code source d’OpenClaw, qui contient également la con­fi­gu­ra­tion Docker requise :

sudo apt install git -y
git clone https://github.com/openclaw/openclaw.git
cd openclaw
bash

Vous voyez ensuite, entre autres, un fichier nommé « docker-setup.sh » (script de con­fi­gu­ra­tion) et le fichier « docker-compose.yml », qui décrit les con­te­neurs standard. Dans ce dernier fichier de con­fi­gu­ra­tion YAML, sont con­sig­nées les in­for­ma­tions suivantes :

  • openclaw-gateway : le service principal qui lance OpenClaw avec Docker
  • env_file : cette in­for­ma­tion indique au conteneur où se trouvent les variables d’en­vi­ron­ne­ment
  • volumes : cette entrée garantit que vos données sont stockées de manière per­sis­tante au lieu d’être perdues dans le conteneur
  • ports : le port 18789 doit être ouvert afin que vous puissiez y accéder plus tard dans le na­vi­ga­teur

Étape 5 : créer les variables d’en­vi­ron­ne­ment et saisir les clés API

Pour qu’OpenClaw sache quel four­nis­seur d’IA utiliser, comment com­mu­ni­quer avec des services externes et comment s’au­then­ti­fier, vous devez définir quelques pa­ra­mètres im­por­tants dans un fichier .env. Il s’agit d’un simple fichier texte dans lequel figurent des éléments sensibles comme les clés API et les tokens ; ils ne doivent jamais être rendus publics, surtout dans les dépôts. Protégez en plus le fichier .env avec des droits d’accès res­tric­tifs à l’aide de la commande chmod 600 .env.

Comment créer le fichier .env ?

  1. Copiez le fichier d’exemple déjà présent dans le dépôt avec la commande suivante : cp .env.example .env.
  2. Ouvrez le nouveau fichier pour le modifier avec la commande suivante : nano .env.
  3. Vous voyez main­te­nant de nombreux espaces réservés possibles. Les lignes les plus im­por­tantes que vous devriez modifier dans ce fichier sont les suivantes (les valeurs sont données à titre d’exemple) :
LLM_PROVIDER=anthropic
ANTHROPIC_API_KEY=sk-ihrapikey123xyz
GATEWAY_TOKEN=my_secure_gateway_token_abc
MODEL_VERSION=claude-4-5-sonnet-20260101
txt

LLM_PROVIDER définit quel four­nis­seur d’IA vous souhaitez utiliser. Anthropic est en quelque sorte le standard re­com­mandé, mais vous pouvez bien entendu choisir n’importe quel autre four­nis­seur. Les clés API cor­res­pon­dantes sont né­ces­saires pour qu’OpenClaw aient accès aux LLM dans le Cloud. GATEWAY_TOKEN sécurise l’accès au tableau de bord et, avec MODEL_VERSION, vous indiquez enfin la version souhaitée du modèle d’IA, par exemple Claude 4.5. Les noms de four­nis­seurs et les versions de modèles changent fré­quem­ment, c’est pourquoi les valeurs utilisées ici ne servent qu’à titre d’exemple. Référez-vous toujours à la do­cu­men­ta­tion la plus récente de votre four­nis­seur.

Note

Pour des en­vi­ron­ne­ments de pro­duc­tion, les Docker secrets ou un ges­tion­naire de mots de passe sont souvent un meilleur choix que de stocker des clés en clair dans des fichiers texte.

Étape 6 : exécuter le script de con­fi­gu­ra­tion

Après avoir cloné le dépôt OpenClaw avec Docker, vous y trouverez, comme déjà mentionné, un fichier nommé « docker-setup.sh ». Ce fichier est un script de con­fi­gu­ra­tion qui au­to­ma­tise de nom­breuses tâches que vous devriez autrement effectuer ma­nuel­le­ment. Il fait partie de la do­cu­men­ta­tion of­fi­cielle du projet. Sans ce script, vous devriez vous‑même :

  • Cons­truire les images Docker
  • Adapter les con­fi­gu­ra­tions Docker Compose
  • Saisir les variables d’en­vi­ron­ne­ment (si vous ne l’avez pas fait ma­nuel­le­ment comme décrit à l’étape 5)
  • Démarrer les con­te­neurs

Le script de con­fi­gu­ra­tion vous évite ce travail et veille à ce que les con­te­neurs soient cor­rec­te­ment installés et con­fi­gu­rés. Pour vérifier au préalable ce que fait exac­te­ment le script, vous pouvez exécuter la commande less docker-setup.sh. Si vous pouvez suivre les mo­di­fi­ca­tions, lancez‑le avec la commande suivante dans le terminal :

./docker-setup.sh
bash

Pendant l’ins­tal­la­tion, il vous sera demandé de manière in­te­rac­tive de choisir des options de con­fi­gu­ra­tion (mode pas­se­relle, four­nis­seur, tokens). Répondez aux questions selon vos pré­fé­rences afin de finaliser la mise en place d’OpenClaw avec Docker.

Étape 7 : démarrer Docker Compose

Lorsque les fichiers Compose sont prêts, démarrez tous les services. Avec la commande suivante, vous té­lé­char­gez les images, lancez les con­te­neurs concernés et montez au­to­ma­ti­que­ment les volumes né­ces­saires :

docker compose up -d
bash

Pour vous assurer qu’aucune erreur ne survient et que tous les services ont bien démarré et fonc­tion­nent cor­rec­te­ment, activez sim­ple­ment la fonction de jour­na­li­sa­tion afin de consulter les logs en temps réel :

docker compose logs -f
bash
Conseil

La fonction de jour­na­li­sa­tion est également im­por­tante plus tard, en phase d’ex­ploi­ta­tion de votre ins­tal­la­tion OpenClaw avec Docker. De cette manière, vous sur­veil­lez du­ra­ble­ment les res­sources (CPU/RAM/disque) et les taux d’erreur !

Étape 8 : accéder à l’interface Web

Dès que tout fonc­tionne, vous pouvez accéder à l’interface d’ad­mi­nis­tra­tion Web dans votre na­vi­ga­teur en appelant l’URL http://VOTRE_SERVEUR_IP:18789. Remplacez pour cela la partie VOTRE_SERVEUR_IP par l’adresse IP de votre serveur. Via le tableau de bord OpenClaw, vous pouvez désormais :

  • Démarrer des con­ver­sa­tions de chat
  • Con­fi­gu­rer vos agents
  • Créer des tokens d’appairage pour les clients et appareils

Si des messages d’erreur tels que « Unau­tho­ri­zed » ou « Pairing required » ap­pa­rais­sent dans le na­vi­ga­teur, générez sim­ple­ment un nouveau token de tableau de bord avec la commande suivante :

docker compose run --rm openclaw-cli dashboard --no-open
bash

Ensuite, validez le processus comme suit :

docker compose run --rm openclaw-cli devices list
docker compose run --rm openclaw-cli devices approve <requestID>
bash
Conseil

Le conteneur ne démarre pas ? Inspectez les logs avec docker compose logs -f pour iden­ti­fier le problème ou vérifiez le fichier .env afin de repérer des clés man­quantes ou des fautes de frappe. Si le port n’est pas ac­ces­sible, il est probable que vous deviez ajuster les pa­ra­mètres du pare-feu ou des groupes de sécurité.

Étape 9 : sécuriser l’instance OpenClaw

OpenClaw peut in­ter­ve­nir en pro­fon­deur dans le système et exécuter des tâches. Cela signifie que, s’il fonc­tionne sans pro­tec­tion sur Internet, n’importe quelle personne pourrait, en principe, y accéder. Pour cette raison, respectez les règles de sécurité suivantes :

  • Protégez votre serveur avec un pare-feu. Seules les con­nexions né­ces­saires doivent être au­to­ri­sées.
  • N’ouvrez le port OpenClaw (par défaut 18789) que si né­ces­saire. Si vous souhaitez autoriser un accès public, limitez-le de pré­fé­rence à des adresses IP de confiance et imposez la connexion via un reverse proxy avec HTTPS ou un VPN.
  • Sécurisez vos con­te­neurs de manière ciblée en les lançant si possible sans droits root, en utilisant des systèmes de fichiers en mode read-only et en sup­pri­mant les au­to­ri­sa­tions inutiles. Évitez les montages de volumes hôtes superflus et limitez l’accès réseau aux seules cibles né­ces­saires, comme les API de mes­sa­ge­rie et les four­nis­seurs de LLM.
  • Utilisez l’au­then­ti­fi­ca­tion basée sur des tokens. Le GATEWAY_TOKEN que vous avez défini dans le fichier .env sert à empêcher les accès non autorisés.
  • Si l’image le permet, veillez à ne pas exécuter OpenClaw en tant que root à l’intérieur du conteneur et à res­treindre les au­to­ri­sa­tions à l’aide d’options (flags) comme --read-only, --cap-drop=ALL et --security-opt=no-new-privileges, afin de réduire les po­ten­tielles surfaces d’attaque.
  • Créez un en­vi­ron­ne­ment réseau Docker isolé ou utilisez des règles per­met­tant à OpenClaw d’atteindre uni­que­ment les services externes réel­le­ment né­ces­saires (par ex. des API de four­nis­seurs d’IA), plutôt que de disposer d’un accès illimité à Internet.
  • Veillez à appliquer les bons réglages dans la con­fi­gu­ra­tion de sécurité d’OpenClaw. Tous les mé­ca­nismes d’au­then­ti­fi­ca­tion doivent être activés et toutes les règles du gateway pour l’en­vi­ron­ne­ment de pro­duc­tion cor­rec­te­ment définies.

Sur des systèmes Linux comme Ubuntu, vous pouvez activer ra­pi­de­ment une bonne pro­tec­tion de base à l’aide de l’Un­com­pli­ca­ted Firewall (ufw). Remplacez ici<IP_AUTORISÉE> par l’adresse IP publique à partir de laquelle vous souhaitez accéder à l’interface.

sudo ufw allow 22/tcp
sudo ufw allow from <IP_AUTORISÉE> to any port 18789 proto tcp
sudo ufw enable
bash

En ouvrant le port TCP 22, vous permettez un accès SSH sécurisé. Le port TCP 18789 est le port standard pour OpenClaw, sauf si vous avez défini un autre port. Si vous ne souhaitez pas ouvrir com­plè­te­ment ce port, vous pouvez aussi le limiter à certaines adresses IP.

Conseil

Un exemple de con­fi­gu­ra­tion de connexion sécurisée est le suivant : vous utilisez un reverse proxy comme NGINX, Traefik ou Caddy. Vous installez en com­plé­ment un cer­ti­fi­cat TLS tel que le cer­ti­fi­cat gratuit Let’s Encrypt. Vous redirigez ensuite en interne vers l’adresse localhost:18789. Lorsque c’est possible, il est également re­com­mandé de con­fi­gu­rer une li­mi­ta­tion de débit pour res­treindre le nombre de requêtes, ainsi que Basic-Auth/OIDC pour renforcer l’au­then­ti­fi­ca­tion.

Étape 10 : con­fi­gu­rer les in­té­gra­tions de mes­sa­ge­rie

OpenClaw peut se connecter à dif­fé­rentes pla­te­formes de chat tels que Slack, WhatsApp, Telegram et bien d’autres. Vous pouvez ainsi piloter votre agent IA di­rec­te­ment depuis votre chat de travail. Par exemple, si vous connectez OpenClaw à Slack, votre agent IA agit comme un bot Slack. Vous pouvez alors lui poser des questions ou lui envoyer des tâches dans le chat d’équipe, et il répond ou exécute des actions.

L’in­té­gra­tion fonc­tionne glo­ba­le­ment de la manière suivante (il peut y avoir de légères dif­fé­rences de con­fi­gu­ra­tion selon l’in­té­gra­tion) :

  1. Bot / ap­pli­ca­tion en­re­gis­trer : créez un bot ou une ap­pli­ca­tion dans le service concerné (par ex. Telegram, Slack, Discord). En général, cela se fait via le portail dé­ve­lop­peurs du service. À la fin, vous obtenez un ou plusieurs tokens/clefs d’API per­met­tant d’au­then­ti­fier votre bot.
  2. Tokens / clefs saisir dans OpenClaw : saisissez les iden­ti­fiants d’accès à l’API (par ex. TELEGRAM_BOT_TOKEN, SLACK_BOT_TOKEN) dans le fichier de con­fi­gu­ra­tion .env d’OpenClaw ou dans une interface de con­fi­gu­ra­tion ap­pro­priée.
  3. Re­dé­mar­rer ou con­fi­gu­rer OpenClaw : re­dé­mar­rez OpenClaw afin qu’il puisse prendre en compte les nouveaux réglages d’in­té­gra­tion.
  4. Appairage / au­then­ti­fi­ca­tion : selon le service, vous devez autoriser une fois le bot ou la connexion, par exemple via des codes d’appairage, des flux OAuth ou des liens de con­fir­ma­tion fournis par le service ou affichés par OpenClaw.
  5. Tester : envoyez un message de test via le bot ou le chat afin de vérifier qu’OpenClaw réagit cor­rec­te­ment.
Conseil

Traitez les tokens d’API de façon con­fi­den­tielle, n’accordez que les au­to­ri­sa­tions né­ces­saires, testez la connexion im­mé­dia­te­ment après la con­fi­gu­ra­tion et terminez en­tiè­re­ment la procédure d’au­to­ri­sa­tion (par ex. appairage/OAuth). En cas de problème, vérifiez les logs et utilisez de pré­fé­rence un channel ou workspace privé pour les premiers tests.

Étape 11 : garder OpenClaw à jour

Pour pouvoir toujours utiliser les dernières fonc­tion­na­li­tés de l’outil et bé­né­fi­cier des cor­rec­tifs de bugs ainsi que des mises à jour de sécurité, il est important de mettre ré­gu­liè­re­ment OpenClaw à jour. Pour cela, commencez par ouvrir le ré­per­toire :

cd ~/openclaw
bash

Ensuite, récupérez la dernière version avec la commande suivante :

git pull
docker compose pull
bash

Re­dé­mar­rez ensuite votre instance Docker OpenClaw :

docker compose up -d
bash
Conseil

Planifiez des sau­ve­gardes des volumes per­sis­tants (con­fi­gu­ra­tion, tokens, données per­ti­nentes) afin de disposer, en cas de besoin, de copies de sécurité pour restaurer vos projets.

Aller au menu principal