Hosting
Hetzner
Ejecuta un Gateway persistente de OpenClaw en un VPS de Hetzner mediante Docker, con estado duradero, binarios integrados y un comportamiento de reinicio seguro.
Los precios de Hetzner cambian; elige el VPS Debian/Ubuntu más pequeño que cumpla tus necesidades y amplíalo si se producen errores por falta de memoria (OOM).
Puedes acceder al Gateway mediante el reenvío de puertos SSH desde tu portátil o mediante la exposición directa del puerto si gestionas por tu cuenta el cortafuegos y los tokens.
Recordatorio del modelo de seguridad:
- Los agentes compartidos en una empresa son adecuados cuando todos se encuentran dentro del mismo límite de confianza y el entorno de ejecución se utiliza exclusivamente para fines empresariales.
- Mantén una separación estricta: VPS y entorno de ejecución dedicados, además de cuentas dedicadas; no uses perfiles personales de Apple, Google, navegadores ni gestores de contraseñas en ese host.
- Si los usuarios pueden actuar de forma hostil entre sí, sepáralos por Gateway, host o usuario del sistema operativo.
Consulta Seguridad y Alojamiento en VPS.
Esta guía presupone que se utiliza Ubuntu o Debian en Hetzner. En otro VPS Linux, adapta los paquetes según corresponda. Para conocer el flujo genérico de Docker, consulta Docker.
Qué necesitas
- Un VPS de Hetzner con acceso root
- Acceso SSH desde tu portátil
- Docker y Docker Compose
- Credenciales de autenticación del modelo
- Credenciales opcionales de proveedores (código QR de WhatsApp, token de bot de Telegram, OAuth de Gmail)
- Unos 20 minutos
Procedimiento rápido
- Aprovisionar el VPS de Hetzner
- Instalar Docker
- Clonar el repositorio de OpenClaw
- Crear directorios persistentes en el host
- Configurar
.envydocker-compose.yml - Integrar los binarios necesarios en la imagen
- Ejecutar
docker compose up -d - Verificar la persistencia y el acceso al Gateway
Aprovisionar el VPS
Crea un VPS con Ubuntu o Debian en Hetzner y, a continuación, conéctate como root:
ssh root@YOUR_VPS_IPTrata el VPS como infraestructura con estado, no como infraestructura desechable.
Instalar Docker (en el VPS)
apt-get updateapt-get install -y git curl ca-certificatescurl -fsSL https://get.docker.com | shVerifica la instalación:
docker --versiondocker compose versionClonar el repositorio de OpenClaw
git clone https://github.com/openclaw/openclaw.gitcd openclawEsta guía crea una imagen personalizada para que los binarios integrados se conserven después de los reinicios.
Crear directorios persistentes en el host
Los contenedores Docker son efímeros; todo el estado de larga duración debe residir en el host.
mkdir -p /root/.openclaw/workspace # Establece como propietario al usuario del contenedor (uid 1000):chown -R 1000:1000 /root/.openclawConfigurar las variables de entorno
Crea .env en la raíz del repositorio:
OPENCLAW_IMAGE=openclaw:latestOPENCLAW_GATEWAY_TOKEN=OPENCLAW_GATEWAY_BIND=lanOPENCLAW_GATEWAY_PORT=18789 OPENCLAW_CONFIG_DIR=/root/.openclawOPENCLAW_WORKSPACE_DIR=/root/.openclaw/workspace GOG_KEYRING_PASSWORD=XDG_CONFIG_HOME=/home/node/.openclawDefine OPENCLAW_GATEWAY_TOKEN para administrar el token estable del Gateway mediante
.env; de lo contrario, configura gateway.auth.token antes de depender de clientes
tras los reinicios. Si no se define ninguno de los dos, OpenClaw utiliza un token
exclusivo del entorno de ejecución para ese inicio. Genera una contraseña para el llavero en GOG_KEYRING_PASSWORD:
openssl rand -hex 32No confirmes este archivo en el repositorio. Contiene variables de entorno del contenedor y del entorno de ejecución, como
OPENCLAW_GATEWAY_TOKEN. La autenticación almacenada mediante OAuth o claves de API de los proveedores reside en
el archivo montado ~/.openclaw/agents/<agentId>/agent/auth-profiles.json.
Configuración de Docker Compose
Crea o actualiza 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: # Recomendado: mantén el Gateway limitado a la interfaz de bucle invertido en el VPS y accede mediante un túnel SSH. # Para exponerlo públicamente, elimina el prefijo `127.0.0.1:` y configura el cortafuegos según corresponda. - "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 solo facilita la inicialización; no sustituye una configuración real del Gateway. Configura de todos modos la autenticación (gateway.auth.token o una contraseña) y un modo de enlace seguro para tu despliegue.
Pasos compartidos del entorno de ejecución de la máquina virtual Docker
Sigue la guía compartida del entorno de ejecución para el flujo habitual en un host Docker:
Acceso específico de Hetzner
Después de completar los pasos compartidos de compilación e inicio, abre el túnel.
Requisito previo: asegúrate de que la configuración de sshd del VPS permita el reenvío TCP. Si
has reforzado la configuración de SSH, revisa /etc/ssh/sshd_config y establece:
AllowTcpForwarding locallocal permite los reenvíos locales ssh -L desde tu portátil, a la vez que bloquea
los reenvíos remotos desde el servidor. Si se establece en no, el túnel falla con:
channel 3: open failed: administratively prohibited: open failed
Después de confirmar que el reenvío TCP está habilitado, reinicia el servicio SSH
(systemctl restart ssh) y ejecuta el túnel desde tu portátil:
ssh -N -L 18789:127.0.0.1:18789 root@YOUR_VPS_IPAbre http://127.0.0.1:18789/ y pega el secreto compartido configurado.
Esta guía utiliza de forma predeterminada el token del Gateway; si has cambiado a la autenticación
mediante contraseña, utiliza en su lugar la contraseña configurada.
El mapa compartido de persistencia se encuentra en Entorno de ejecución de máquina virtual Docker.
Infraestructura como código (Terraform)
Para los 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 remota del estado
- Aprovisionamiento automatizado mediante cloud-init
- Scripts de despliegue (inicialización, despliegue, copia de seguridad y restauración)
- Refuerzo de la seguridad (cortafuegos, UFW y acceso exclusivo mediante SSH)
- Configuración de un túnel SSH para acceder al Gateway
Repositorios:
- Infraestructura: openclaw-terraform-hetzner
- Configuración de Docker: openclaw-docker-config
Este enfoque complementa la configuración de Docker anterior con despliegues reproducibles, infraestructura controlada por versiones y recuperación automatizada ante desastres.
Pasos siguientes
- Configura canales de mensajería: Canales
- Configura el Gateway: Configuración del Gateway
- Mantén OpenClaw actualizado: Actualización