Installer OpenClaw avec Docker : pas à pas et mise à jour
Ce guide montre comment installer OpenClaw avec Docker Compose sur un PC ou un VPS : récupération du dépôt officiel, onboarding, première connexion à l'interface de contrôle, puis mise à jour et désinstallation sans rien laisser derrière soi. Les commandes reprennent la documentation du projet, à relire avant de les coller car elle évolue vite ; ce guide ne contient ni test maison ni durée d'installation. Une règle traverse toutes les étapes : la passerelle d'OpenClaw ne doit jamais être joignable depuis Internet.
#Installer OpenClaw : script officiel ou Docker ?
Le projet documente deux façons d'installer OpenClaw. La première passe par un script qui pose la commande openclaw directement sur le système. La seconde fait tourner la passerelle (le processus central qui relie vos messageries au modèle) dans un conteneur Docker. Les deux aboutissent au même logiciel et au même assistant de configuration, appelé onboarding.
- Script officiel
- La voie la plus courte sur une machine personnelle sous macOS, Linux ou WSL2. Le script installe la commande openclaw et Node.js si besoin, puis l'onboarding enregistre la passerelle comme service de votre session.
- Docker Compose
- La passerelle tourne dans un conteneur et rien d'autre que Docker n'est installé sur l'hôte. C'est la voie pratique sur un VPS, ou pour pouvoir tout supprimer d'un geste. La documentation la présente comme optionnelle.
- Ce que Docker ne change pas
- Le conteneur garde un accès complet au dossier de configuration et à l'espace de travail montés depuis l'hôte, ainsi qu'au réseau. C'est une cloison utile, pas un coffre-fort.
La suite de ce guide suit la voie Docker, avec un rappel de la commande équivalente pour la méthode script aux étapes de mise à jour et de désinstallation. Si vous hésitez encore sur l'intérêt de l'outil lui-même, notre page « OpenClaw : c'est quoi » traite cette question ; ici, on installe.
#Prérequis
Des agents qui agissent sur ta machine : Cline agentique, MCP, n8n + Ollama, automatisations locales.
- Espace en ligne à vie
- PDF + fichiers
- Remboursé 30 j
La passerelle elle-même consomme peu : elle relaie des messages et appelle un modèle. Les exigences ci-dessous concernent surtout Docker et la construction de l'image.
- Docker et Compose v2
- Docker Desktop sous macOS et Windows (avec WSL2), ou Docker Engine accompagné du plugin Compose sous Linux. La commande s'écrit docker compose, avec une espace : l'ancien binaire docker-compose en version 1 ne convient pas.
- Git
- Pour cloner le dépôt officiel, qui contient le Dockerfile, le fichier docker-compose.yml et le script d'installation.
- Mémoire
- La documentation demande au moins 2 Go de RAM pour construire l'image. Sur un hôte à 1 Go, la compilation peut être interrompue par le système faute de mémoire (code de sortie 137). L'image préconstruite, vue plus bas, évite cette étape.
- Disque
- De la place pour les images Docker et les journaux. La documentation ne donne pas de chiffre : surveillez l'espace avec docker system df.
- Un modèle
- Une clé d'API chez un fournisseur en ligne, avec un plafond de dépense, ou un modèle local. Le branchement d'un modèle local est un sujet à part, que ce guide ne traite pas.
- Sur un VPS
- Un accès SSH par clé et le pare-feu du fournisseur réglé pour ne laisser entrer que SSH. Aucun autre port n'a besoin d'être ouvert, comme on le verra.
Sous Windows, travaillez depuis un terminal WSL2 : le script d'installation est un script shell, et la documentation oriente de toute façon les utilisateurs Windows vers WSL2. Quelle que soit la machine, évitez celle qui contient vos documents personnels et vos mots de passe : un agent capable d'exécuter des commandes se place sur une machine dédiée, une machine virtuelle ou un serveur loué.
#Installer OpenClaw avec Docker Compose, pas à pas
L'installation Docker repose sur un script fourni dans le dépôt. Il enchaîne la préparation de l'image, l'onboarding et le démarrage de la passerelle. Les quatre étapes ci-dessous suivent cet ordre.
#1. Cloner le dépôt officiel
Vérifiez l'adresse caractère par caractère : c'est l'organisation openclaw sur GitHub, pas un dépôt au nom approchant. Le script d'installation Docker s'appelle docker-setup.sh à la racine du dépôt dans la documentation que nous connaissons. Le projet réorganise souvent ses fichiers et des versions récentes peuvent le ranger sous scripts/docker/ : la commande suivante montre lequel existe chez vous.
#2. Choisir entre image préconstruite et construction locale
Par défaut, le script construit l'image sur votre machine à partir du Dockerfile et la nomme openclaw:local. C'est la voie la plus transparente, puisque vous compilez le code que vous venez de cloner, mais elle demande de la mémoire et du temps de calcul. L'alternative consiste à télécharger l'image publiée par le projet sur le registre de GitHub, en renseignant la variable OPENCLAW_IMAGE avant de lancer le script.
L'étiquette latest suit la dernière version publiée. Sur un serveur, mieux vaut la remplacer par un numéro de version précis, pris sur la page des releases du dépôt : c'est vous qui décidez alors du moment de la mise à jour, et vous savez vers quelle version revenir en cas de souci.
#3. Lancer le script d'installation
D'après la documentation, ce script fait cinq choses à la suite :
- Image
- Il construit l'image localement, ou la télécharge si OPENCLAW_IMAGE est défini.
- Onboarding
- Il lance l'assistant de configuration dans un conteneur temporaire.
- Jeton
- Il génère le jeton d'accès de la passerelle et l'écrit dans un fichier .env à la racine du dépôt.
- Démarrage
- Il démarre la passerelle avec Docker Compose, sous le nom de service openclaw-gateway.
- Données
- Il place la configuration et l'espace de travail sur l'hôte, dans ~/.openclaw et ~/.openclaw/workspace. Ces dossiers survivent à la suppression du conteneur.
#4. Répondre à l'onboarding
L'assistant pose des questions sur le modèle, sur les messageries et sur la passerelle. Pour cette dernière partie, le script affiche les réponses attendues dans un conteneur. Elles diffèrent de celles d'une installation classique, et la première mérite une explication.
- Gateway bind : lan
- À l'intérieur du conteneur, la passerelle doit écouter sur l'interface du réseau Docker, sinon le port publié vers l'hôte ne l'atteint pas. Ce réglage ne décide pas de ce qui est visible depuis l'extérieur : cela se joue sur l'hôte, voir la section VPS.
- Gateway auth : token
- L'accès à l'interface et à l'API de la passerelle exige un jeton.
- Gateway token
- Reprenez celui que le script vient d'afficher, pour qu'il corresponde au fichier .env.
- Tailscale exposure : Off
- Pas d'exposition automatique. Un accès distant se décide plus tard, en connaissance de cause.
- Install Gateway daemon : No
- Dans cette configuration, c'est Docker Compose qui relance le conteneur, pas un service du système.
Côté modèle, fournissez une clé d'API limitée en budget plutôt que votre clé principale. Côté messageries, vous pouvez passer l'étape et y revenir une fois la passerelle vérifiée. Retenez la règle de conversion : toute commande de la documentation qui commence par openclaw s'exécute ici en la préfixant par docker compose run --rm openclaw-cli.
#Vérifier que la passerelle tourne
Avant de brancher quoi que ce soit d'autre, assurez-vous que le conteneur est démarré et que ses journaux ne signalent pas d'erreur.
Ouvrez ensuite l'interface de contrôle dans le navigateur de la même machine, puis collez le jeton dans ses réglages. Si vous avez perdu le lien, la commande dashboard le réaffiche sans tenter d'ouvrir un navigateur.
Deux contrôles intégrés complètent la vérification. Le premier diagnostique l'installation et la configuration ; le second passe en revue les réglages dangereux. Relancez-les après chaque changement de configuration.
Dernier geste : protégez le fichier .env. Il contient le jeton de la passerelle, et quiconque possède ce jeton pilote l'agent, donc tout ce à quoi l'agent a accès. Un chmod 600 .env limite sa lecture à votre compte. Ne le copiez ni dans un dépôt Git, ni dans une capture d'écran.
#OpenClaw sur un VPS : ne pas exposer la passerelle
Sur un PC derrière une box, un port publié par Docker reste dans le réseau local. Sur un VPS, la machine possède une adresse publique : un port publié sans précision d'adresse est joignable par tout Internet. Début 2026, des chercheurs ont recensé des milliers de passerelles OpenClaw accessibles de cette façon. Le jeton protège l'accès, mais une seule faille suffit à le contourner : la vulnérabilité CVE-2026-25253, corrigée fin janvier 2026, permettait justement de le voler. La bonne posture consiste à ne rien exposer du tout.
Si la réponse commence par 0.0.0.0, le port est publié sur toutes les interfaces. Trois protections se cumulent, de la plus extérieure à la plus proche du conteneur.
- Pare-feu du fournisseur
- Le filtrage proposé dans la console de l'hébergeur agit avant la machine, donc avant Docker. N'y laissez entrer que SSH.
- Publication sur 127.0.0.1
- Demandez à Docker de ne publier le port que sur l'adresse locale de l'hôte, avec le fichier ci-dessous.
- Accès par tunnel
- Rejoignez l'interface de contrôle par un tunnel SSH ou un VPN, jamais par une adresse publique.
Ce fichier est un exemple de notre part, pas un extrait de la documentation d'OpenClaw : comparez le nom du service et la liste des ports avec le docker-compose.yml de votre version avant de l'utiliser. L'étiquette !override remplace la liste des ports au lieu de s'y ajouter ; elle exige Docker Compose 2.24.4 ou plus récent. Placez le fichier à côté de docker-compose.yml, recréez le conteneur avec docker compose up -d openclaw-gateway, puis relancez la vérification : elle doit maintenant répondre 127.0.0.1:18789.
Tant que ce tunnel est ouvert, l'adresse http://127.0.0.1:18789/ de votre ordinateur mène à la passerelle du serveur. Les messageries, elles, n'ont besoin d'aucun port entrant dans leur mode courant : pour WhatsApp, Telegram ou Discord, c'est la passerelle qui ouvre des connexions sortantes. Il n'y a donc aucune raison de publier l'interface de contrôle derrière un nom de domaine. Le raisonnement est le même que pour un serveur de modèles, détaillé dans notre guide sur la sécurisation d'un serveur Ollama.
#Mettre à jour OpenClaw
Le projet publie des versions à un rythme soutenu, et certaines corrigent des failles. Une installation laissée telle quelle pendant des mois est un risque, pas une économie de temps. Avec Docker, mettre à jour revient à remplacer l'image puis à recréer le conteneur ; vos données, dans ~/.openclaw, ne bougent pas.
- 01Sauvegarder le dossier de donnéesArchivez ~/.openclaw avant toute mise à jour. Une nouvelle version peut migrer la configuration, et le retour en arrière n'est fiable qu'avec une copie de l'état précédent.
- 02Récupérer la nouvelle versionMettez le dépôt à jour avec git pull pour obtenir le Dockerfile et le fichier Compose courants, puis reconstruisez l'image locale ou téléchargez l'image publiée, selon le choix fait à l'installation.
- 03Recréer le conteneurRelancez le service openclaw-gateway. Docker Compose remplace le conteneur dès qu'il détecte une image différente.
- 04ContrôlerLancez doctor, lisez les dernières lignes des journaux et envoyez un message de test depuis votre messagerie.
La variante avec image publiée suppose que la ligne OPENCLAW_IMAGE figure dans le fichier .env, ce que fait le script quand la variable était définie à l'installation. Si vous avez épinglé un numéro de version, modifiez d'abord cette ligne. Pour revenir en arrière, remettez l'ancien numéro, recréez le conteneur et, si la configuration a été migrée entre-temps, restaurez la sauvegarde.
Avec la méthode script, la mise à jour passe par la commande intégrée, suivie du même diagnostic.
#Désinstaller OpenClaw proprement
Une désinstallation complète retire trois choses : les conteneurs et les images, les données sur le disque, et les accès que vous aviez confiés à l'assistant. La troisième est celle qu'on oublie.
Le dossier ~/.openclaw contient la configuration, les clés d'API, les sessions de messagerie et la mémoire de l'assistant. Sa suppression est irréversible : gardez une archive si vous pensez revenir un jour, ou si vous voulez relire ce que l'assistant avait noté. Le dépôt cloné contient de son côté le fichier .env et son jeton.
- Clés d'API
- Révoquez chez le fournisseur du modèle la clé confiée à OpenClaw. Supprimer le fichier local ne l'invalide pas.
- Bot Telegram ou Discord
- Révoquez le jeton du bot ou supprimez le bot depuis l'outil du service (BotFather pour Telegram, portail développeur pour Discord).
- Dans l'application, ouvrez la liste des appareils connectés et déconnectez celui qui correspond à la passerelle.
- Accès réseau
- Retirez la règle de pare-feu, le tunnel ou la machine du VPN créés pour l'occasion. Sur un VPS loué pour cet usage seul, résiliez le serveur.
Avec la méthode script, la commande de désinstallation intégrée retire le service et propose de supprimer les données ; il reste ensuite à enlever la commande elle-même.
#Dépannage : les blocages les plus courants
- « unauthorized » ou « pairing required (1008) »
- Le navigateur n'est pas encore approuvé par la passerelle. Réaffichez le lien d'accès, puis listez et approuvez l'appareil avec les commandes ci-dessous. Ce cas est fréquent en Docker et derrière un tunnel, car la connexion n'arrive pas de l'adresse locale du conteneur.
- Construction interrompue, code 137
- Le système a tué la compilation faute de mémoire. Passez à l'image publiée avec OPENCLAW_IMAGE, ou prenez une machine d'au moins 2 Go de RAM.
- Permission refusée sur /home/node/.openclaw
- L'image s'exécute avec l'utilisateur node, d'identifiant 1000. Les dossiers montés depuis l'hôte doivent lui appartenir : sudo chown -R 1000:1000 ~/.openclaw.
- Port 18789 déjà utilisé
- Un autre service, ou une ancienne installation d'OpenClaw, occupe le port. Arrêtez-le, ou changez OPENCLAW_GATEWAY_PORT dans le fichier .env avant de recréer le conteneur.
- docker compose introuvable
- Vous avez l'ancien binaire docker-compose ou pas de plugin Compose. Installez le plugin Compose v2 de votre distribution.
- Modèle local injoignable
- Dans un conteneur, localhost désigne le conteneur, pas l'hôte. Un Ollama qui écoute sur http://localhost:11434 côté hôte n'est donc pas visible tel quel depuis la passerelle. Ce réglage relève du branchement du modèle, hors du périmètre de ce guide.
Quand rien de tout cela ne correspond, les journaux du service restent le meilleur point de départ, suivis de la commande doctor. Avant de chercher une solution ailleurs, vérifiez la date des réponses que vous trouvez : celles qui mentionnent Clawdbot ou Moltbot décrivent d'anciennes commandes.
#Sources officielles à garder sous la main
Ce guide ne repose sur aucun test maison : il ne contient ni durée, ni mesure, ni comparaison chiffrée. Les commandes reprennent la documentation du projet, qui change d'une version à l'autre : nom du script, variables, étapes de l'onboarding. En cas d'écart entre cette page et la documentation, c'est la documentation qui fait foi.
#Pour aller plus loin
L'installation n'est que la première moitié du travail : un agent se configure, se surveille et se compare. Ces guides du site prolongent les notions utilisées ici.
- OpenClaw : c'est quoi, et faut-il l'installer ?
- Le fonctionnement de la passerelle, les usages et les risques, pour décider avant d'installer. https://quelllm.fr/guide/openclaw-c-est-quoi
- Sécuriser un serveur Ollama
- Pare-feu, écoute locale et accès distant : la même logique d'exposition minimale, appliquée au serveur de modèles. https://quelllm.fr/guide/securiser-serveur-ollama
- Déployer un LLM avec Docker Compose en production
- Fichiers Compose, redémarrage, journaux et sauvegardes pour une pile qui tourne en continu. https://quelllm.fr/guide/deployer-llm-docker-compose-production
- Installer Ollama avec Docker
- Pour faire tourner le serveur de modèles dans un conteneur, sur la même machine ou une autre. https://quelllm.fr/guide/ollama-docker-installation-guide
- Agent Zero avec Ollama dans Docker
- Un autre agent auto-hébergé livré en conteneur, pour comparer les approches. https://quelllm.fr/guide/agent-zero-ollama-docker
Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.