Hosting
GCP
Ejecuta un Gateway persistente de OpenClaw en una VM de GCP Compute Engine mediante Docker, con estado duradero, binarios integrados y un comportamiento de reinicio seguro.
Los precios varían según el tipo de máquina y la región; elige la VM más pequeña que se adapte a tu carga de trabajo y amplíala si se producen errores de memoria insuficiente.
Puedes acceder al Gateway mediante el reenvío de puertos SSH desde tu portátil o exponiendo directamente el puerto si administras por tu cuenta el cortafuegos y los tokens.
Esta guía utiliza Debian en GCP Compute Engine. Ubuntu también funciona; adapta los paquetes según corresponda. Para consultar el flujo genérico de Docker, consulta Docker.
Lo que necesitas
- Cuenta de GCP (
e2-microcumple los requisitos del nivel gratuito) - CLI de
gcloudo Cloud Console - 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)
- Entre 20 y 30 minutos aproximadamente
Ruta rápida
- Crea un proyecto de GCP y habilita la facturación y la API de Compute Engine
- Crea una VM de Compute Engine (
e2-small, Debian 12, 20 GB) - Accede a la VM mediante SSH e instala Docker
- Clona el repositorio de OpenClaw
- Crea directorios persistentes en el host
- Configura
.envydocker-compose.yml - Integra los binarios necesarios, compila e inicia
Instalar la CLI de gcloud (o usar la consola)
Instálala desde cloud.google.com/sdk/docs/install y, a continuación, ejecuta:
gcloud initgcloud auth loginComo alternativa, realiza todos los pasos siguientes mediante la interfaz web de Cloud Console.
Crear un proyecto de GCP
gcloud projects create my-openclaw-project --name="OpenClaw Gateway"gcloud config set project my-openclaw-projectgcloud services enable compute.googleapis.comHabilita la facturación en console.cloud.google.com/billing (es obligatoria para Compute Engine).
Equivalente en la consola: IAM & Admin > Create Project, habilita la facturación y, a continuación, ve a APIs & Services > Enable APIs > "Compute Engine API" > Enable.
Crear la VM
| Tipo | Especificaciones | Coste | Notas |
|---|---|---|---|
| e2-medium | 2 vCPU, 4 GB de RAM | ~25 USD/mes | La opción más fiable para compilaciones locales de Docker |
| e2-small | 2 vCPU, 2 GB de RAM | ~12 USD/mes | Mínimo recomendado para una compilación de Docker |
| e2-micro | 2 vCPU (compartidas), 1 GB de RAM | Cumple los requisitos del nivel gratuito | Suele fallar por memoria insuficiente al compilar con Docker (salida 137) |
gcloud compute instances create openclaw-gateway \ --zone=us-central1-a \ --machine-type=e2-small \ --boot-disk-size=20GB \ --image-family=debian-12 \ --image-project=debian-cloudAcceder a la VM mediante SSH
gcloud compute ssh openclaw-gateway --zone=us-central1-aConsola: haz clic en "SSH" junto a la VM en el panel de Compute Engine.
La propagación de la clave SSH puede tardar entre 1 y 2 minutos después de crear la VM; espera y vuelve a intentarlo si se rechaza la conexión.
Instalar Docker (en la VM)
sudo apt-get updatesudo apt-get install -y git curl ca-certificatescurl -fsSL https://get.docker.com | sudo shsudo usermod -aG docker $USERCierra la sesión y vuelve a iniciarla para que el cambio de grupo surta efecto; después, vuelve a conectarte mediante SSH:
exitgcloud compute ssh openclaw-gateway --zone=us-central1-aVerifica la instalación:
docker --versiondocker compose versionClonar el repositorio de OpenClaw
git clone https://github.com/openclaw/openclaw.gitcd openclawEsta guía compila una imagen personalizada para que todos los binarios que integres se conserven después de los reinicios.
Crear directorios persistentes en el host
Los contenedores de Docker son efímeros; todo el estado duradero debe residir en el host.
mkdir -p ~/.openclawmkdir -p ~/.openclaw/workspaceConfigurar 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=/home/$USER/.openclawOPENCLAW_WORKSPACE_DIR=/home/$USER/.openclaw/workspace GOG_KEYRING_PASSWORD=XDG_CONFIG_HOME=/home/node/.openclawEstablece OPENCLAW_GATEWAY_TOKEN para administrar el token estable del Gateway mediante
.env; de lo contrario, configura gateway.auth.token antes de depender de clientes
entre reinicios. Si no se establece ninguno, OpenClaw utiliza un token exclusivo del tiempo 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 tiempo de ejecución, como
OPENCLAW_GATEWAY_TOKEN. La autenticación almacenada del proveedor mediante OAuth o clave de API 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 accesible solo mediante loopback en la VM; accede a él mediante un túnel SSH. # Para exponerlo públicamente, elimina el prefijo `127.0.0.1:` y configura el cortafuegos como 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 configuración inicial; no sustituye una configuración real del Gateway. Aun así, configura la autenticación (gateway.auth.token o una contraseña) y un modo de vinculación seguro para tu implementación.
Pasos compartidos del entorno de ejecución para una VM con Docker
Sigue la guía compartida del entorno de ejecución para el flujo habitual de un host Docker:
Notas de inicio específicas de GCP
Si la compilación falla con Killed o exit code 137 durante pnpm install --frozen-lockfile, la VM se ha quedado sin memoria. Utiliza como mínimo e2-small o e2-medium para que las primeras compilaciones sean más fiables.
Si vinculas el servicio a la LAN (OPENCLAW_GATEWAY_BIND=lan), configura un origen de navegador de confianza antes de continuar:
docker compose run --rm openclaw-cli config set gateway.controlUi.allowedOrigins '["http://127.0.0.1:18789"]' --strict-jsonSustituye 18789 por el puerto configurado si lo has cambiado.
Acceder desde tu portátil
Crea un túnel SSH para reenviar el puerto del Gateway:
gcloud compute ssh openclaw-gateway --zone=us-central1-a -- -L 18789:127.0.0.1:18789Abre http://127.0.0.1:18789/ en tu navegador.
Vuelve a mostrar un enlace limpio al panel:
docker compose run --rm openclaw-cli dashboard --no-openSi la interfaz solicita autenticación mediante un secreto compartido, pega el token o la contraseña configurados en los ajustes de Control UI (este flujo de Docker escribe un token de forma predeterminada; si has cambiado a la autenticación mediante contraseña, utiliza en su lugar la contraseña configurada).
Si Control UI muestra unauthorized o disconnected (1008): pairing required, aprueba el dispositivo del navegador:
docker compose run --rm openclaw-cli devices listdocker compose run --rm openclaw-cli devices approve <requestId>Consulta Entorno de ejecución de una VM con Docker para ver el mapa de persistencia compartido y el flujo de actualización.
Solución de problemas
Conexión SSH rechazada
La propagación de la clave SSH puede tardar entre 1 y 2 minutos después de crear la VM. Espera y vuelve a intentarlo.
Problemas con OS Login
Comprueba tu perfil de OS Login:
gcloud compute os-login describe-profileAsegúrate de que tu cuenta tenga los permisos de IAM necesarios (Compute OS Login o Compute OS Admin Login).
Memoria insuficiente (OOM)
Si la compilación de Docker falla con Killed y exit code 137, el sistema finalizó la VM por falta de memoria:
# Detén primero la VMgcloud compute instances stop openclaw-gateway --zone=us-central1-a # Cambia el tipo de máquinagcloud compute instances set-machine-type openclaw-gateway \ --zone=us-central1-a \ --machine-type=e2-small # Inicia la VMgcloud compute instances start openclaw-gateway --zone=us-central1-aCuentas de servicio (práctica recomendada de seguridad)
Para uso personal, tu cuenta de usuario predeterminada funciona correctamente. Para automatización o CI/CD, crea una cuenta de servicio dedicada con permisos mínimos:
gcloud iam service-accounts create openclaw-deploy \ --display-name="OpenClaw Deployment" gcloud projects add-iam-policy-binding my-openclaw-project \ --member="serviceAccount:openclaw-deploy@my-openclaw-project.iam.gserviceaccount.com" \ --role="roles/compute.instanceAdmin.v1"Evita el rol de propietario para la automatización; utiliza el rol más restrictivo que funcione. Consulta Descripción de los roles.
Pasos siguientes
- Configura canales de mensajería: Canales
- Empareja dispositivos locales como nodos: Nodos
- Configura el Gateway: Configuración del Gateway