GCP
Ejecutar OpenClaw Gateway 24/7 en una VM de GCP Compute Engine (Docker) con estado duradero
Objetivo
Ejecutar un Gateway de OpenClaw persistente en una VM de GCP Compute Engine usando Docker, con estado duradero, binarios integrados y comportamiento de reinicio seguro.
Si quieres "OpenClaw 24/7 por ~$5-12/mes", esta es una configuración confiable en Google Cloud.
Los precios varían por tipo de máquina y región; elige la VM más pequeña que se ajuste a tu carga de trabajo y escala si encuentras OOMs.
Qué estamos haciendo (en términos simples)
- Crear un proyecto GCP y habilitar facturación
- Crear una VM de Compute Engine
- Instalar Docker (runtime de app aislado)
- Iniciar OpenClaw Gateway en Docker
- Persistir ''~/.openclaw'' + ''~/.openclaw/workspace'' en el host (sobrevive reinicios/reconstrucciones)
- Acceder a la UI de Control desde tu laptop vía un tunnel SSH
El Gateway puede ser accedido vía:
- SSH port forwarding desde tu laptop
- Exposición directa de puertos si gestionas firewalling y tokens tú mismo
Esta guía usa Debian en GCP Compute Engine.
Ubuntu también funciona; mapea los paquetes correspondientemente.
Para flujo Docker genérico, ver ''Docker''.
Qué necesitas
- Cuenta GCP (elegible para tier gratuito con e2-micro)
- gcloud CLI instalado (o usa 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 de proveedor opcionales
- QR de WhatsApp
- Token de bot de Telegram
- OAuth de Gmail
2) Crear un proyecto GCP
CLI:
gcloud projects create mi-proyecto-openclaw --name="OpenClaw Gateway" gcloud config set project mi-proyecto-openclaw
Habilita facturación en https://console.cloud.google.com/billing (requerido para Compute Engine).
Habilita la API de Compute Engine:
gcloud services enable compute.googleapis.com
Console:
1. Ve a IAM & Admin > Create Project
2. Nómbralo y crea
3. Habilita facturación para el proyecto
4. Navega a APIs & Services > Enable APIs > busca "Compute Engine API" > Enable
4) Hacer SSH a la VM
CLI:
gcloud compute ssh openclaw-gateway --zone=us-central1-a
Console:
Haz clic en el botón "SSH" junto a tu VM en el dashboard de Compute Engine.
Nota: La propagación de clave SSH puede tomar 1-2 minutos después de la creación de la VM. Si la conexión es rechazada, espera y reintenta.
6) Clonar repositorio de OpenClaw
git clone https://github.com/openclaw/openclaw.git cd openclaw
Esta guía asume que construirás una imagen personalizada para garantizar persistencia de binarios.
8) Configurar variables de entorno
Crea ''.env'' en la raíz del repositorio.
OPENCLAW_IMAGE=openclaw:latest OPENCLAW_GATEWAY_TOKEN=cambiar-esto-ahora OPENCLAW_GATEWAY_BIND=lan OPENCLAW_GATEWAY_PORT=18789 OPENCLAW_CONFIG_DIR=/home/$USER/.openclaw OPENCLAW_WORKSPACE_DIR=/home/$USER/.openclaw/workspace GOG_KEYRING_PASSWORD=cambiar-esto-ahora XDG_CONFIG_HOME=/home/node/.openclaw
Genera secretos fuertes:
openssl rand -hex 32
No hagas commit de este archivo.
10) Integrar binarios requeridos en la imagen (crítico)
Instalar binarios dentro de un contenedor en ejecución es una trampa.
Cualquier cosa instalada en runtime se perderá al reiniciar.
Todos los binarios externos requeridos por skills deben instalarse al momento de construir la imagen.
Los ejemplos abajo muestran solo tres binarios comunes:
- ''gog'' para acceso a Gmail
- ''goplaces'' para Google Places
- ''wacli'' para WhatsApp
Estos son ejemplos, no una lista completa.
Puedes instalar tantos binarios como necesites usando el mismo patrón.
Si agregas nuevos skills después que dependen de binarios adicionales, debes:
1. Actualizar el Dockerfile
2. Reconstruir la imagen
3. Reiniciar los contenedores
Ejemplo de Dockerfile
FROM node:22-bookworm RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/* RUN curl -L https://github.com/steipete/gog/releases/latest/download/gog_Linux_x86_64.tar.gz \ | tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/gog RUN curl -L https://github.com/steipete/goplaces/releases/latest/download/goplaces_Linux_x86_64.tar.gz \ | tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/goplaces RUN curl -L https://github.com/steipete/wacli/releases/latest/download/wacli_Linux_x86_64.tar.gz \ | tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/wacli WORKDIR /app COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .npmrc ./ COPY ui/package.json ./ui/package.json COPY scripts ./scripts RUN corepack enable RUN pnpm install --frozen-lockfile COPY . . RUN pnpm build RUN pnpm ui:install RUN pnpm ui:build ENV NODE_ENV=production CMD ["node","dist/index.js"]
12) Verificar Gateway
docker compose logs -f openclaw-gateway
Éxito:
[gateway] listening on ws://0.0.0.0:18789
Qué persiste dónde (fuente de verdad)
OpenClaw corre en Docker, pero Docker no es la fuente de verdad.
Todo el estado de larga duración debe sobrevivir reinicios, reconstrucciones y reboots.
| Componente | Ubicación | Mecanismo de persistencia | Notas |
| Config del Gateway | ''/home/node/.openclaw/'' | Host volume mount | Incluye ''openclaw.json'', tokens |
| Perfiles auth modelo| ''/home/node/.openclaw/'' | Host volume mount | Tokens OAuth, claves API |
| Configs de skills | ''/home/node/.openclaw/skills/'' | Host volume mount | Estado a nivel de skill |
| Workspace del agente| ''/home/node/.openclaw/workspace/'' | Host volume mount | Código y artefactos del agente |
| Sesión de WhatsApp | ''/home/node/.openclaw/'' | Host volume mount | Preserva login QR |
| Keyring de Gmail | ''/home/node/.openclaw/'' | Host volume + contraseña | Requiere ''GOG_KEYRING_PASSWORD'' |
| Binarios externos | ''/usr/local/bin/'' | Docker image | Deben integrarse al build |
| Runtime de Node | Container filesystem | Docker image | Reconstruido cada image build |
| Paquetes del OS | Container filesystem | Docker image | No instalar en runtime |
| Contenedor Docker | Efímero | Reiniciable | Seguro de destruir |
Solución de Problemas
Conexión SSH rechazada
La propagación de clave SSH puede tomar 1-2 minutos después de la creación de la VM. Espera y reintenta.
Problemas de OS Login
Verifica tu perfil de OS Login:
gcloud compute os-login describe-profile
Asegúrate que tu cuenta tiene los permisos IAM requeridos (Compute OS Login o Compute OS Admin Login).
Sin memoria (OOM)
Si usas e2-micro y encuentras OOM, actualiza a e2-small o e2-medium:
gcloud compute instances stop openclaw-gateway --zone=us-central1-a gcloud compute instances set-machine-type openclaw-gateway \ --zone=us-central1-a \ --machine-type=e2-small gcloud compute instances start openclaw-gateway --zone=us-central1-a
Siguientes pasos
- Configurar canales de mensajería: ''Canales''
- Emparejar dispositivos locales como nodos: ''Nodos''
- Configurar el Gateway: ''Configuración del Gateway''