OpenClaw en GCP Compute Engine (Docker, guía de VPS en producción)
Objetivo
Ejecutar un Gateway de OpenClaw persistente en una VM de GCP Compute Engine usando Docker, con estado persistente, binarios integrados y un comportamiento de reinicio seguro. Si quieres “OpenClaw 24/7 por ~$5-12/mes”, esta es una configuración confiable en Google Cloud. El precio varía según el tipo de máquina y la región; elige la VM más pequeña que se ajuste a tu carga de trabajo y aumenta recursos si te encuentras con OOM.¿Qué vamos a hacer (en términos simples)?
- Crear un proyecto de GCP y habilitar la facturación
- Crear una VM de Compute Engine
- Instalar Docker (entorno de ejecución aislado para la app)
- Iniciar el Gateway de OpenClaw en Docker
- Persistir
~/.openclaw+~/.openclaw/workspaceen el host (sobrevive a reinicios/reconstrucciones) - Acceder a la Control UI desde tu laptop mediante un túnel SSH
~/.openclaw incluye openclaw.json, por agente
agents/<agentId>/agent/auth-profiles.json, y .env.
Se puede acceder al Gateway mediante:
- Reenvío de puertos SSH desde tu laptop
- Exposición directa del puerto si gestionas tú mismo el firewall y los tokens
Ruta rápida (operadores con experiencia)
- Crea el proyecto de GCP y habilita la API de Compute Engine
- Crea la VM de Compute Engine (e2-small, Debian 12, 20GB)
- Conéctate por SSH a la VM
- Instala Docker
- Clona el repositorio de OpenClaw
- Crea directorios persistentes en el host
- Configura
.envydocker-compose.yml - Integra los binarios necesarios, compila e inicia
Lo que necesitas
- Cuenta de GCP (elegible para capa gratuita con e2-micro)
- CLI de gcloud instalada (o usar Cloud Console)
- Acceso SSH desde tu laptop
- Comodidad básica con SSH + copiar/pegar
- ~20-30 minutos
- Docker y Docker Compose
- Credenciales de autenticación del modelo
- Credenciales opcionales de proveedores
- QR de WhatsApp
- Token de bot de Telegram
- OAuth de Gmail
Instala la CLI de gcloud (o usa Console)
Opción A: CLI de gcloud (recomendada para automatización)Instala desde https://cloud.google.com/sdk/docs/installInicializa y autentícate:Opción B: Cloud ConsoleTodos los pasos se pueden hacer desde la interfaz web en https://console.cloud.google.com
Crea un proyecto de GCP
CLI:Habilita la facturación en https://console.cloud.google.com/billing (requerido para Compute Engine).Habilita la API de Compute Engine:Console:
- Ve a IAM & Admin > Create Project
- Asígnale un nombre y créalo
- Habilita la facturación para el proyecto
- Ve a APIs & Services > Enable APIs > busca “Compute Engine API” > Enable
Crea la VM
Tipos de máquina:
CLI:Console:
| Tipo | Especificaciones | Costo | Notas |
|---|---|---|---|
| e2-medium | 2 vCPU, 4GB RAM | ~$25/mes | Más confiable para compilaciones locales con Docker |
| e2-small | 2 vCPU, 2GB RAM | ~$12/mes | Mínimo recomendado para compilación con Docker |
| e2-micro | 2 vCPU (compartidas), 1GB RAM | Elegible para capa gratuita | A menudo falla con OOM en compilaciones de Docker (salida 137) |
- Ve a Compute Engine > VM instances > Create instance
- Nombre:
openclaw-gateway - Región:
us-central1, Zona:us-central1-a - Tipo de máquina:
e2-small - Disco de arranque: Debian 12, 20GB
- Crear
Conéctate por SSH a la VM
CLI:Console:Haz clic en el botón “SSH” junto a tu VM en el panel de Compute Engine.Nota: La propagación de claves SSH puede tardar 1-2 minutos después de crear la VM. Si se rechaza la conexión, espera e inténtalo de nuevo.
Instala Docker (en la VM)
Clona el repositorio de OpenClaw
Crea directorios persistentes en el host
Los contenedores Docker son efímeros.
Todo el estado de larga duración debe vivir en el host.
Configura las variables de entorno
Crea Deja No confirmes este archivo en git.Este archivo
.env en la raíz del repositorio.OPENCLAW_GATEWAY_TOKEN vacío a menos que explícitamente quieras
gestionarlo mediante .env; OpenClaw escribe un token aleatorio del gateway en la
configuración en el primer inicio. Genera una contraseña de keyring y pégala en
GOG_KEYRING_PASSWORD:.env es para variables de entorno del contenedor/entorno de ejecución como OPENCLAW_GATEWAY_TOKEN.
La autenticación almacenada de OAuth/clave API del proveedor vive en el montaje
~/.openclaw/agents/<agentId>/agent/auth-profiles.json.Configuración de Docker Compose
Crea o actualiza
docker-compose.yml.--allow-unconfigured es solo para facilitar el arranque inicial; no sustituye una configuración adecuada del gateway. Aun así, configura la autenticación (gateway.auth.token o contraseña) y usa opciones de bind seguras para tu despliegue.Pasos compartidos de entorno de ejecución de Docker en VM
Usa la guía compartida de entorno de ejecución para el flujo común del host Docker:
Notas de inicio específicas de GCP
En GCP, si la compilación falla con Si cambiaste el puerto del gateway, reemplaza
Killed o exit code 137 durante pnpm install --frozen-lockfile, la VM se quedó sin memoria. Usa como mínimo e2-small, o e2-medium para compilaciones iniciales más confiables.Al enlazar a LAN (OPENCLAW_GATEWAY_BIND=lan), configura un origen de navegador de confianza antes de continuar:18789 por el puerto configurado.Acceso desde tu laptop
Crea un túnel SSH para reenviar el puerto del Gateway:Abre en tu navegador:Si la UI solicita autenticación con secreto compartido, pega el token o la
contraseña configurados en la configuración de la Control UI. Este flujo Docker escribe un token por
defecto; si cambias la configuración del contenedor a autenticación por contraseña, usa esa
contraseña en su lugar.Si la Control UI muestra ¿Necesitas de nuevo la referencia de persistencia compartida y actualización?
Consulta Docker VM Runtime y actualizaciones de Docker VM Runtime.
http://127.0.0.1:18789/Vuelve a imprimir un enlace limpio del panel:unauthorized o disconnected (1008): pairing required, aprueba el dispositivo del navegador:Solución de problemas
Conexión SSH rechazada La propagación de claves SSH puede tardar 1-2 minutos después de crear la VM. Espera e inténtalo de nuevo. Problemas de OS Login Verifica tu perfil de OS Login:Killed y exit code 137, la VM fue finalizada por OOM. Actualiza a e2-small (mínimo) o e2-medium (recomendado para compilaciones locales confiables):
Cuentas de servicio (mejor práctica de seguridad)
Para uso personal, tu cuenta de usuario predeterminada funciona bien. Para automatización o pipelines de CI/CD, crea una cuenta de servicio dedicada con permisos mínimos:-
Crea una cuenta de servicio:
-
Otorga el rol de administrador de instancias de Compute (o un rol personalizado más restringido):
Próximos pasos
- Configura los canales de mensajería: Canales
- Empareja dispositivos locales como Nodes: Nodes
- Configura el Gateway: Configuración del Gateway