OpenClaw en GCP Compute Engine (Docker, guía de VPS de producción)
Objetivo
Ejecutar un OpenClaw Gateway persistente en una VM de GCP Compute Engine usando Docker, con estado duradero, binarios incorporados y un comportamiento de reinicio seguro. Si quieres “OpenClaw 24/7 por ~$5-12/mes”, esta es una configuración fiable 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 de tamaño si encuentras errores OOM.¿Qué estamos haciendo? (en términos sencillos)
- 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 OpenClaw Gateway en Docker
- Conservar
~/.openclaw+~/.openclaw/workspaceen el host (sobrevive a reinicios/reconstrucciones) - Acceder a la UI de Control 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 puerto SSH desde tu laptop
- exposición directa del puerto si administras tú mismo el firewall y los tokens
Ruta rápida (operadores con experiencia)
- Crear un proyecto de GCP + habilitar la API de Compute Engine
- Crear una VM de Compute Engine (e2-small, Debian 12, 20GB)
- Conectarte por SSH a la VM
- Instalar Docker
- Clonar el repositorio de OpenClaw
- Crear directorios persistentes en el host
- Configurar
.envydocker-compose.yml - Incorporar los binarios requeridos, compilar e iniciar
Qué necesitas
- Cuenta de GCP (elegible para el nivel gratuito de e2-micro)
- CLI
gcloudinstalada (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 proveedor
- QR de WhatsApp
- token de bot de Telegram
- OAuth de Gmail
Instalar la CLI de gcloud (o usar Console)
Opción A: CLI Opción B: Cloud ConsoleTodos los pasos se pueden hacer mediante la interfaz web en https://console.cloud.google.com
gcloud (recomendada para automatización)Instala desde https://cloud.google.com/sdk/docs/installInicializa y autentícate:Crear un proyecto de GCP
CLI:Habilita la facturación en https://console.cloud.google.com/billing (obligatorio para Compute Engine).Habilita la API de Compute Engine:Console:
- Ve a IAM & Admin > Create Project
- Ponle nombre y créalo
- Habilita la facturación para el proyecto
- Ve a APIs & Services > Enable APIs > busca “Compute Engine API” > Enable
Crear la VM
Tipos de máquina:
CLI:Console:
| Tipo | Especificaciones | Costo | Notas |
|---|---|---|---|
| e2-medium | 2 vCPU, 4GB RAM | ~$25/mes | La opción más fiable 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 nivel gratuito | A menudo falla con OOM en compilaciones de Docker (exit 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
Conectarte 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 entre 1 y 2 minutos después de crear la VM. Si la conexión es rechazada, espera y vuelve a intentarlo.
Instalar Docker (en la VM)
Clonar el repositorio de OpenClaw
Crear directorios persistentes en el host
Los contenedores Docker son efímeros.
Todo el estado de larga duración debe vivir en el host.
Configurar variables de entorno
Crea Genera secretos robustos:No confirmes este archivo al repositorio.Este archivo
.env en la raíz del repositorio..env es para variables de entorno del contenedor/entorno de ejecución como OPENCLAW_GATEWAY_TOKEN.
La autenticación almacenada de proveedores OAuth/claves API vive en
~/.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 correcta del gateway. Aun así, establece la autenticación (gateway.auth.token o contraseña) y usa configuraciones de bind seguras para tu implementación.Pasos compartidos del tiempo de ejecución de Docker en VM
Usa la guía compartida de tiempo de ejecución para el flujo común de host Docker:
Notas de inicio específicas de GCP
En GCP, si la compilación falla con Si cambiaste el puerto del gateway, sustituye
Killed o exit code 137 durante pnpm install --frozen-lockfile, la VM no tiene suficiente memoria. Usa como mínimo e2-small, o e2-medium para que las primeras compilaciones sean más fiables.Cuando hagas bind a la LAN (OPENCLAW_GATEWAY_BIND=lan), configura un origen de navegador de confianza antes de continuar:18789 por el puerto configurado.Acceder desde tu laptop
Crea un túnel SSH para reenviar el puerto del Gateway:Ábrelo en tu navegador:Si la UI solicita autenticación por secreto compartido, pega el token o la
contraseña configurados en la configuración de la UI de Control. Este flujo de 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 UI de Control muestra ¿Necesitas otra vez la referencia de persistencia y actualización compartidas?
Consulta Tiempo de ejecución de Docker en VM y actualizaciones del tiempo de ejecución de Docker en VM.
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 entre 1 y 2 minutos después de crear la VM. Espera y vuelve a intentarlo. Problemas de OS Login Comprueba tu perfil de OS Login:Killed y exit code 137, la VM fue finalizada por OOM. Sube a e2-small (mínimo) o e2-medium (recomendado para compilaciones locales fiables):
Cuentas de servicio (mejor práctica de seguridad)
Para uso personal, tu cuenta de usuario predeterminada funciona bien. Para automatización o canalizaciones CI/CD, crea una cuenta de servicio dedicada con permisos mínimos:-
Crea una cuenta de servicio:
-
Concede el rol Compute Instance Admin (o un rol personalizado más limitado):
Siguientes pasos
- Configurar canales de mensajería: Canales
- Emparejar dispositivos locales como nodos: Nodos
- Configurar el Gateway: Configuración del gateway