OpenClaw sur Hetzner (Docker, guide VPS de production)
Objectif
Exécuter une Gateway (passerelle) OpenClaw persistante sur un VPS Hetzner en utilisant Docker, avec un état durable, des binaires intégrés et un comportement de redémarrage sûr. Si vous voulez « OpenClaw 24/7 pour ~5 $ », c’est la configuration fiable la plus simple. Les tarifs Hetzner évoluent ; choisissez le plus petit VPS Debian/Ubuntu et montez en gamme si vous rencontrez des OOM.Que faisons-nous (en termes simples) ?
- Louer un petit serveur Linux (VPS Hetzner)
- Installer Docker (environnement d’exécution d’applications isolé)
- Démarrer la Gateway (passerelle) OpenClaw dans Docker
- Rendre persistants
~/.openclaw+~/.openclaw/workspacesur l’hôte (survit aux redémarrages/reconstructions) - Accéder à l’interface de contrôle depuis votre ordinateur portable via un tunnel SSH
- Redirection de port SSH depuis votre ordinateur portable
- Exposition directe de ports si vous gérez vous‑même le pare‑feu et les jetons
Si vous utilisez un autre VPS Linux, adaptez les paquets en conséquence. Pour le flux Docker générique, voir Docker.
Chemin rapide (opérateurs expérimentés)
- Approvisionner un VPS Hetzner
- Installer Docker
- Cloner le dépôt OpenClaw
- Créer des répertoires hôte persistants
- Configurer
.envetdocker-compose.yml - Intégrer les binaires requis dans l’image
docker compose up -d- Vérifier la persistance et l’accès à la Gateway (passerelle)
Ce dont vous avez besoin
- Un VPS Hetzner avec accès root
- Un accès SSH depuis votre ordinateur portable
- Une aisance de base avec SSH + copier/coller
- Environ 20 minutes
- Docker et Docker Compose
- Identifiants d’authentification du modèle
- Identifiants de fournisseurs optionnels
- QR WhatsApp
- Jeton de bot Telegram
- OAuth Gmail
1. Approvisionner le VPS
Créez un VPS Ubuntu ou Debian sur Hetzner. Connectez‑vous en tant que root :2. Installer Docker (sur le VPS)
3. Cloner le dépôt OpenClaw
4. Créer des répertoires hôte persistants
Les conteneurs Docker sont éphémères. Tout l’état de longue durée doit résider sur l’hôte.5. Configurer les variables d’environnement
Créez.env à la racine du dépôt.
6. Configuration Docker Compose
Créez ou mettez à jourdocker-compose.yml.
--allow-unconfigured est uniquement destiné à faciliter l’amorçage, ce n’est pas un remplacement d’une configuration de passerelle appropriée. Configurez toujours l’authentification (gateway.auth.token ou mot de passe) et utilisez des paramètres de bind sûrs pour votre déploiement.
7. Intégrer les binaires requis dans l’image (critique)
Installer des binaires dans un conteneur en cours d’exécution est un piège. Tout ce qui est installé à l’exécution sera perdu au redémarrage. Tous les binaires externes requis par les Skills doivent être installés lors de la construction de l’image. Les exemples ci‑dessous montrent seulement trois binaires courants :gogpour l’accès Gmailgoplacespour Google Placeswaclipour WhatsApp
- Mettre à jour le Dockerfile
- Reconstruire l’image
- Redémarrer les conteneurs
8. Construire et lancer
9. Vérifier la Gateway (passerelle)
http://127.0.0.1:18789/
Collez votre jeton de Gateway (passerelle).
Ce qui persiste où (source de vérité)
OpenClaw s’exécute dans Docker, mais Docker n’est pas la source de vérité. Tout l’état de longue durée doit survivre aux redémarrages, reconstructions et redémarrages système.| Composant | Emplacement | Mécanisme de persistance | Notes |
|---|---|---|---|
| Configuration Gateway | /home/node/.openclaw/ | Montage de volume hôte | Inclut openclaw.json, jetons |
| Profils d’authentification du modèle | /home/node/.openclaw/ | Montage de volume hôte | Jetons OAuth, clés API |
| Configurations des Skills | /home/node/.openclaw/skills/ | Montage de volume hôte | État au niveau des Skills |
| Espace de travail de l’agent | /home/node/.openclaw/workspace/ | Montage de volume hôte | Code et artefacts de l’agent |
| Session WhatsApp | /home/node/.openclaw/ | Montage de volume hôte | Préserve la connexion par QR |
| Trousseau Gmail | /home/node/.openclaw/ | Volume hôte + mot de passe | Nécessite GOG_KEYRING_PASSWORD |
| Binaires externes | /usr/local/bin/ | Image Docker | Doit être cuit au four au moment de la construction |
| Runtime Node | Système de fichiers du conteneur | Image Docker | Reconstruit à chaque build d’image |
| Paquets OS | Système de fichiers du conteneur | Image Docker | Ne pas installer à l’exécution |
| Conteneur Docker | Éphémère | Redémarrage | Sûr à détruire |
Infrastructure as Code (Terraform)
Pour les équipes privilégiant les workflows infrastructure-as-code, une configuration Terraform maintenue par la communauté fournit :- Configuration Terraform modulaire avec gestion d’état distant
- Provisioning automatisé via cloud-init
- Scripts de déploiement (bootstrap, deploy, backup/restore)
- Renforcement de la sécurité (pare-feu, UFW, accès SSH uniquement)
- Configuration de tunnel SSH pour l’accès au gateway
- Infrastructure : openclaw-terraform-hetzner
- Configuration Docker : openclaw-docker-config
Remarque : Maintenu par la communauté. Pour les problèmes ou les contributions, consultez les liens vers le dépôt ci-dessus.