Intermédiaire 12 minAgents

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.

Par Samir K.·Màj 2026-10-04·Testé sur Windows, macOS, Linux

#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.
Terminal — la méthode script, pour mémoire
# Télécharger et exécuter l'installateur officiel
curl -fsSL https://openclaw.ai/install.sh | bash

# Lancer l'onboarding et installer le service
openclaw onboard --install-daemon

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.

!
Seulement les sources officielles
Le projet a changé deux fois de nom (Clawdbot, puis Moltbot, puis OpenClaw) et sa popularité a attiré de faux dépôts, de faux paquets et des « installateurs en un clic » douteux. Ne collez jamais dans un terminal une commande d'installation trouvée dans une vidéo, un forum ou un billet de blog, y compris celui-ci, sans la comparer à la documentation. Trois adresses font foi : openclaw.ai pour le script, github.com/openclaw/openclaw pour le code, docs.openclaw.ai pour la documentation. Et rien n'interdit de lire un script avant de l'exécuter : téléchargez-le dans un fichier, ouvrez-le, puis lancez-le.

#Prérequis

Le kit Agents Locaux

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.
Terminal — vérifier les outils
docker --version
docker compose version
git --version

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

Terminal
git clone https://github.com/openclaw/openclaw.git
cd openclaw

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.

Terminal — repérer le script
ls docker-setup.sh scripts/docker/setup.sh 2>/dev/null

#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.

Terminal — option : utiliser l'image publiée
export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"

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

Terminal
./docker-setup.sh

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.

Terminal — ajouter une messagerie après coup
# WhatsApp : affiche un QR code à scanner depuis le téléphone
docker compose run --rm openclaw-cli channels login

# Telegram : avec le jeton du bot créé auprès de BotFather
docker compose run --rm openclaw-cli channels add --channel telegram --token "<jeton-du-bot>"

#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.

Terminal
docker compose ps
docker compose logs -f openclaw-gateway

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.

Interface de contrôle (depuis la machine elle-même)
http://127.0.0.1:18789/
Terminal — réafficher le lien d'accès
docker compose run --rm openclaw-cli dashboard --no-open

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.

Terminal — diagnostic et audit
docker compose run --rm openclaw-cli doctor
docker compose run --rm openclaw-cli security audit --deep

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.

!
Docker passe devant UFW
Docker écrit ses propres règles de pare-feu. Un port publié par un conteneur reste joignable de l'extérieur même quand UFW affiche une politique de refus. La documentation de sécurité d'OpenClaw renvoie pour cette raison à la chaîne DOCKER-USER. Ne vous fiez pas au seul UFW : vérifiez ce qui écoute réellement.
Terminal (sur le VPS) — sur quelle adresse le port est-il publié ?
docker compose port openclaw-gateway 18789
ss -tlnp | grep 18789

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.
docker-compose.override.yml — exemple à adapter
services:
  openclaw-gateway:
    ports: !override
      - "127.0.0.1:18789:18789"
      - "127.0.0.1:18790:18790"

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.

Terminal (sur votre ordinateur) — tunnel SSH vers la passerelle
ssh -N -L 18789:127.0.0.1:18789 utilisateur@adresse-du-vps

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.

  1. 01
    Sauvegarder le dossier de données
    Archivez ~/.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.
  2. 02
    Récupérer la nouvelle version
    Mettez 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.
  3. 03
    Recréer le conteneur
    Relancez le service openclaw-gateway. Docker Compose remplace le conteneur dès qu'il détecte une image différente.
  4. 04
    Contrôler
    Lancez doctor, lisez les dernières lignes des journaux et envoyez un message de test depuis votre messagerie.
Terminal — 1. sauvegarde
tar czf openclaw-sauvegarde-$(date +%F).tar.gz -C ~ .openclaw
Terminal — 2 et 3, avec une image construite localement
cd openclaw
git pull
docker build -t openclaw:local -f Dockerfile .
docker compose up -d openclaw-gateway
Terminal — 2 et 3, avec l'image publiée
cd openclaw
git pull
docker compose pull openclaw-gateway
docker compose up -d openclaw-gateway
Terminal — 4. contrôle
docker compose run --rm openclaw-cli doctor
docker compose logs --tail 50 openclaw-gateway

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.

→
Lire les notes de version avant, pas après
La page des releases du dépôt signale les changements incompatibles et les correctifs de sécurité. Trente secondes de lecture avant un git pull évitent de découvrir un réglage renommé dans les journaux d'un assistant qui ne répond plus.

Avec la méthode script, la mise à jour passe par la commande intégrée, suivie du même diagnostic.

Terminal — installation par script
openclaw update
openclaw doctor

#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.

Terminal — 1. conteneurs et images
cd openclaw
docker compose down

# Supprimer l'image utilisée (l'une ou l'autre selon votre cas)
docker image rm openclaw:local
docker image rm ghcr.io/openclaw/openclaw:latest

# Vérifier qu'il ne reste ni conteneur ni volume
docker ps -a --filter name=openclaw
docker volume ls --filter name=openclaw

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.

Terminal — 2. données (irréversible)
rm -rf ~/.openclaw

# Le dépôt cloné, avec son fichier .env
cd ..
rm -rf openclaw
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).
WhatsApp
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.

Terminal — installation par script
openclaw uninstall
npm rm -g openclaw

#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.
Terminal — approuver le navigateur
docker compose run --rm openclaw-cli dashboard --no-open
docker compose run --rm openclaw-cli devices list
docker compose run --rm openclaw-cli devices approve <requestId>

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.

Documentation : installation avec Docker
https://docs.openclaw.ai/install/docker
Documentation : mise à jour
https://docs.openclaw.ai/install/updating
Documentation : désinstallation
https://docs.openclaw.ai/install/uninstall
Documentation : sécurité de la passerelle
https://docs.openclaw.ai/gateway/security
Dépôt officiel et notes de version
https://github.com/openclaw/openclaw/releases

#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
Ce guide vous a aidé ?

Un retour, une erreur, une précision ? Faites-nous signe, ça améliore le guide pour tout le monde.