Hetzner
Objetivo
Sección titulada «Objetivo»Ejecuta un OpenClaw Gateway persistente en un VPS de Hetzner usando Docker, con estado duradero, binarios integrados y un comportamiento de reinicio seguro.
Si quieres “OpenClaw 24/7 por ~$5”, esta es la configuración más sencilla y confiable. Los precios de Hetzner cambian; elige el VPS más pequeño de Debian/Ubuntu y escala si experimentas errores de falta de memoria (OOMs).
Recordatorio del modelo de seguridad:
- Los agentes compartidos por la empresa están bien cuando todos están en el mismo límite de confianza y el tiempo de ejecución es solo para negocios.
- Mantén una separación estricta: VPS/tiempo de ejecución dedicado + cuentas dedicadas; sin perfiles personales de Apple/Google/navegador/gestor de contraseñas en ese host.
- Si los usuarios son adversarios entre sí, sepáralos por puerta de enlace/host/usuario del sistema operativo.
Consulta Seguridad y Alojamiento VPS.
¿Qué estamos haciendo (en términos sencillos)?
Sección titulada «¿Qué estamos haciendo (en términos sencillos)?»- Alquilar un servidor Linux pequeño (VPS de Hetzner)
- Instalar Docker (entorno de ejecución de aplicación aislado)
- Iniciar el OpenClaw Gateway en Docker
- Persistir
~/.openclaw+~/.openclaw/workspaceen el host (sobrevive a reinicios/reconstrucciones) - Acceder a la Interfaz de Control desde tu portátil a través de un túnel SSH
Ese estado ~/.openclaw montado incluye openclaw.json, por agente
agents/<agentId>/agent/auth-profiles.json, y .env.
Se puede acceder al Gateway a través de:
- Redirección de puertos SSH desde tu portátil
- Exposición directa de puertos si gestionas el firewall y los tokens tú mismo
Esta guía asume Ubuntu o Debian en Hetzner.
Si estás en otro VPS de Linux, asigna los paquetes correspondientemente.
Para el flujo genérico de Docker, consulta Docker.
Camino rápido (operadores experimentados)
Sección titulada «Camino rápido (operadores experimentados)»- Aprovisionar VPS de Hetzner
- Instalar Docker
- Clonar el repositorio de OpenClaw
- Crear directorios persistentes del host
- Configurar
.envydocker-compose.yml - Integrar los binarios necesarios en la imagen
docker compose up -d- Verificar la persistencia y el acceso al Gateway
Lo que necesitas
Sección titulada «Lo que necesitas»- VPS de Hetzner con acceso root
- Acceso SSH desde tu portátil
- Conocimientos básicos de SSH + copiar/pegar
- ~20 minutos
- Docker y Docker Compose
- Credenciales de autenticación del modelo
- Credenciales opcionales del proveedor
- Código QR de WhatsApp
- Token del bot de Telegram
- OAuth de Gmail
Aprovisionar el VPS
Crea un VPS de Ubuntu o Debian en Hetzner.
Conecta como root:
Ventana de terminal ssh root@YOUR_VPS_IPEsta guía asume que el VPS tiene estado. No lo trates como infraestructura desechable.
Instalar Docker (en el VPS)
Ventana de terminal apt-get updateapt-get install -y git curl ca-certificatescurl -fsSL https://get.docker.com | shVerificar:
Ventana de terminal docker --versiondocker compose versionClona el repositorio de OpenClaw
Ventana de terminal git clone https://github.com/openclaw/openclaw.gitcd openclawEsta guía asume que construirás una imagen personalizada para garantizar la persistencia de los binarios.
Crear directorios persistentes del host
Los contenedores de Docker son efímeros. Todo el estado de larga duración debe residir en el host.
Ventana de terminal mkdir -p /root/.openclaw/workspace# Set ownership to the container user (uid 1000):chown -R 1000:1000 /root/.openclawConfigurar variables de entorno
Crea
.enven la raíz del repositorio.Ventana de terminal OPENCLAW_IMAGE=openclaw:latestOPENCLAW_GATEWAY_TOKEN=OPENCLAW_GATEWAY_BIND=lanOPENCLAW_GATEWAY_PORT=18789OPENCLAW_CONFIG_DIR=/root/.openclawOPENCLAW_WORKSPACE_DIR=/root/.openclaw/workspaceGOG_KEYRING_PASSWORD=XDG_CONFIG_HOME=/home/node/.openclawEstablece
OPENCLAW_GATEWAY_TOKENcuando quieras gestionar el token estable de la puerta de enlace a través de.env; de lo contrario, configuragateway.auth.tokenantes de confiar en los clientes a través de reinicios. Si ninguna fuente existe, OpenClaw usa un token solo de tiempo de ejecución para ese inicio. Genera una contraseña del llavero y pégala enGOG_KEYRING_PASSWORD:Ventana de terminal openssl rand -hex 32No confirmes (commitees) este archivo.
Este archivo
.enves para el entorno del contenedor/tiempo de ejecución, comoOPENCLAW_GATEWAY_TOKEN. La autenticación almacenada de OAuth/API-key del proveedor reside en el `~/.openclaw/agents//agent/auth-profiles.json` montado.
Configuración de Docker Compose
Crea o actualiza
docker-compose.yml.services:openclaw-gateway:image: ${OPENCLAW_IMAGE}build: .restart: unless-stoppedenv_file:- .envenvironment:- 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:/binvolumes:- ${OPENCLAW_CONFIG_DIR}:/home/node/.openclaw- ${OPENCLAW_WORKSPACE_DIR}:/home/node/.openclaw/workspaceports:# Recommended: keep the Gateway loopback-only on the VPS; access via SSH tunnel.# To expose it publicly, remove the `127.0.0.1:` prefix and firewall accordingly.- "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-unconfiguredes solo por conveniencia para el arranque, no es un reemplazo para una configuración adecuada de la puerta de enlace. Aún así, establece la autenticación (gateway.auth.tokeno contraseña) y usa configuraciones de enlace (bind) seguras para tu implementación.Pasos de tiempo de ejecución compartidos de Docker VM
Usa la guía de tiempo de ejecución compartido para el flujo común de host Docker:
Acceso específico para Hetzner
Después de los pasos de construcción e inicio compartidos, complete la siguiente configuración para abrir el túnel:
Requisito previo: Asegúrese de que la configuración sshd de su VPS permita el reenvío TCP. Si ha endurecido su configuración SSH, verifique
/etc/ssh/sshd_configy establezca:AllowTcpForwarding locallocalpermitessh -Lreenvíos locales desde su portátil mientras bloquea los reenvíos remotos desde el servidor. Establecerlo ennohará fallar el túnel con:channel 3: open failed: administratively prohibited: open failedDespués de confirmar que el reenvío TCP está habilitado, reinicie el servicio SSH (
systemctl restart ssh) y ejecute el túnel desde su portátil:Ventana de terminal ssh -N -L 18789:127.0.0.1:18789 root@YOUR_VPS_IPAbra:
http://127.0.0.1:18789/Pegue el secreto compartido configurado. Esta guía utiliza el token de puerta de enlace por defecto; si cambió a la autenticación por contraseña, use esa contraseña en su lugar.
El mapa de persistencia compartido reside en Docker VM Runtime.
Infraestructura como código (Terraform)
Sección titulada «Infraestructura como código (Terraform)»Para equipos que prefieren flujos de trabajo de infraestructura como código, una configuración de Terraform mantenida por la comunidad proporciona:
- Configuración modular de Terraform con gestión de estado remoto
- Aprovisionamiento automatizado mediante cloud-init
- Scripts de implementación (inicio, despliegue, copia de seguridad/restauración)
- Endurecimiento de seguridad (cortafuegos, UFW, acceso solo SSH)
- Configuración de túnel SSH para el acceso a la puerta de enlace
Repositorios:
- Infraestructura: openclaw-terraform-hetzner
- Configuración de Docker: openclaw-docker-config
Este enfoque complementa la configuración de Docker anterior con implementaciones reproducibles, infraestructura controlada por versiones y recuperación ante desastres automatizada.
Siguientes pasos
Sección titulada «Siguientes pasos»- Configurar canales de mensajería: Canales
- Configurar la puerta de enlace: Configuración de la puerta de enlace
- Mantener OpenClaw actualizado: Actualización