OpenClawSkills
GitHub
Plataformas • 5 min de lectura

GCP

Ejecutar OpenClaw Gateway 24/7 en una VM de GCP Compute Engine (Docker) con estado duradero

Tutorial.step

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.

Tutorial.step

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''.

Tutorial.step

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

Tutorial.step

2) Crear un proyecto GCP

CLI:

Bash
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:

Bash
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

Tutorial.step

4) Hacer SSH a la VM

CLI:

Bash
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.

Tutorial.step

6) Clonar repositorio de OpenClaw

Bash
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.

Tutorial.step

8) Configurar variables de entorno

Crea ''.env'' en la raíz del repositorio.

Bash
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:

Bash
openssl rand -hex 32

No hagas commit de este archivo.

Tutorial.step

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

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"]
Tutorial.step

12) Verificar Gateway

Bash
docker compose logs -f openclaw-gateway

Éxito:

Terminal
[gateway] listening on ws://0.0.0.0:18789
Tutorial.step

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 |

Tutorial.step

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:

Bash
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:

Bash
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
Tutorial.step

Siguientes pasos

- Configurar canales de mensajería: ''Canales''

- Emparejar dispositivos locales como nodos: ''Nodos''

- Configurar el Gateway: ''Configuración del Gateway''