OpenClaw sur Hetzner (Docker, guide de production VPS)
Objectif
Faire tourner une passerelle OpenClaw persistante sur un VPS Hetzner avec Docker, un etat durable, des binaires integres et un comportement de redemarrage fiable.
Si vous voulez “OpenClaw 24/7 pour ~5 $”, c’est la configuration fiable la plus simple. Les tarifs Hetzner changent ; choisissez le plus petit VPS Debian/Ubuntu et montez en gamme si vous rencontrez des OOM.
Rappel sur le modele de securite :
- Les agents partages au sein d’une entreprise fonctionnent bien quand tout le monde est dans le meme perimetre de confiance et que le runtime est reserve a l’usage professionnel.
- Gardez une separation stricte : VPS/runtime dedie + comptes dedies ; pas de profils personnels Apple/Google/navigateur/gestionnaire de mots de passe sur cet hote.
- Si les utilisateurs sont adversaires entre eux, separezles par passerelle/hote/utilisateur OS.
Consultez Securite et Hebergement VPS.
En termes simples, que faisons-nous ?
- Louer un petit serveur Linux (VPS Hetzner)
- Installer Docker (runtime d’application isole)
- Demarrer la passerelle OpenClaw dans Docker
- Persister
~/.openclaw+~/.openclaw/workspacesur l’hote (survit aux redemarrages/reconstructions) - Acceder a l’interface de controle depuis votre portable via un tunnel SSH
La passerelle est accessible via :
- Redirection de port SSH depuis votre portable
- Exposition directe du port si vous gerez le pare-feu et les tokens vous-meme
Ce guide suppose Ubuntu ou Debian sur Hetzner. Si vous etes sur un autre VPS Linux, adaptez les paquets en consequence. Pour le flux Docker generique, consultez Docker.
Chemin rapide (operateurs experimentes)
- Provisionner le VPS Hetzner
- Installer Docker
- Cloner le depot OpenClaw
- Creer les repertoires persistants sur l’hote
- Configurer
.envetdocker-compose.yml - Integrer les binaires requis dans l’image
docker compose up -d- Verifier la persistance et l’acces a la passerelle
Ce dont vous avez besoin
- VPS Hetzner avec acces root
- Acces SSH depuis votre portable
- A l’aise avec SSH + copier/coller
- ~20 minutes
- Docker et Docker Compose
- Identifiants d’authentification de modele
- Identifiants de fournisseur optionnels
- QR WhatsApp
- Token de bot Telegram
- OAuth Gmail
1) Provisionner le VPS
Creez un VPS Ubuntu ou Debian chez Hetzner.
Connectez-vous en tant que root :
ssh root@YOUR_VPS_IP
Ce guide suppose que le VPS a un etat persistant. Ne le traitez pas comme une infrastructure jetable.
2) Installer Docker (sur le VPS)
apt-get update
apt-get install -y git curl ca-certificates
curl -fsSL https://get.docker.com | sh
Verifiez :
docker --version
docker compose version
3) Cloner le depot OpenClaw
git clone https://github.com/openclaw/openclaw.git
cd openclaw
Ce guide suppose que vous construirez une image personnalisee pour garantir la persistance des binaires.
4) Creer les repertoires persistants sur l’hote
Les conteneurs Docker sont ephemeres. Tout etat longue duree doit resider sur l’hote.
mkdir -p /root/.openclaw/workspace
# Definir la propriete sur l'utilisateur du conteneur (uid 1000) :
chown -R 1000:1000 /root/.openclaw
5) Configurer les variables d’environnement
Creez .env a la racine du depot.
OPENCLAW_IMAGE=openclaw:latest
OPENCLAW_GATEWAY_TOKEN=change-me-now
OPENCLAW_GATEWAY_BIND=lan
OPENCLAW_GATEWAY_PORT=18789
OPENCLAW_CONFIG_DIR=/root/.openclaw
OPENCLAW_WORKSPACE_DIR=/root/.openclaw/workspace
GOG_KEYRING_PASSWORD=change-me-now
XDG_CONFIG_HOME=/home/node/.openclaw
Generez des secrets solides :
openssl rand -hex 32
Ne commitez pas ce fichier.
6) Configuration Docker Compose
Creez ou mettez a jour docker-compose.yml.
services:
openclaw-gateway:
image: ${OPENCLAW_IMAGE}
build: .
restart: unless-stopped
env_file:
- .env
environment:
- HOME=/home/node
- NODE_ENV=production
- TERM=xterm-256color
- OPENCLAW_GATEWAY_BIND=${OPENCLAW_GATEWAY_BIND}
- OPENCLAW_GATEWAY_PORT=${OPENCLAW_GATEWAY_PORT}
- OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN}
- GOG_KEYRING_PASSWORD=${GOG_KEYRING_PASSWORD}
- XDG_CONFIG_HOME=${XDG_CONFIG_HOME}
- PATH=/home/linuxbrew/.linuxbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
volumes:
- ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw
- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspace
ports:
# Recommande : garder la passerelle en loopback sur le VPS ; acceder via tunnel SSH.
# Pour l'exposer publiquement, retirez le prefixe `127.0.0.1:` et configurez le pare-feu.
- "127.0.0.1:${OPENCLAW_GATEWAY_PORT}:18789"
command:
[
"node",
"dist/index.js",
"gateway",
"--bind",
"${OPENCLAW_GATEWAY_BIND}",
"--port",
"${OPENCLAW_GATEWAY_PORT}",
"--allow-unconfigured",
]
--allow-unconfigured est uniquement pour la commodite du bootstrap, ce n’est pas un remplacement pour une configuration de passerelle adequate. Definissez quand meme l’authentification (gateway.auth.token ou mot de passe) et utilisez des parametres de liaison surs pour votre deploiement.
7) Etapes partagees du runtime Docker VM
Utilisez le guide de runtime partage pour le flux commun Docker sur hote :
- Integrer les binaires requis dans l’image
- Construction et lancement
- Ce qui persiste et ou
- Mises a jour
8) Acces specifique a Hetzner
Apres les etapes partagees de construction et lancement, tunnelisez depuis votre portable :
ssh -N -L 18789:127.0.0.1:18789 root@YOUR_VPS_IP
Ouvrez :
http://127.0.0.1:18789/
Collez votre token de passerelle.
La carte de persistance partagee se trouve dans Docker VM Runtime.
Infrastructure as Code (Terraform)
Pour les equipes preferant les workflows infrastructure-as-code, une configuration Terraform maintenue par la communaute fournit :
- Configuration Terraform modulaire avec gestion d’etat distant
- Provisionnement automatise via cloud-init
- Scripts de deploiement (bootstrap, deploiement, sauvegarde/restauration)
- Renforcement de la securite (pare-feu, UFW, acces SSH uniquement)
- Configuration de tunnel SSH pour l’acces a la passerelle
Depots :
- Infrastructure : openclaw-terraform-hetzner
- Configuration Docker : openclaw-docker-config
Cette approche complete la configuration Docker ci-dessus avec des deploiements reproductibles, une infrastructure versionnee et une reprise apres sinistre automatisee.
Remarque : Maintenu par la communaute. Pour les problemes ou contributions, consultez les liens des depots ci-dessus.