OpenClaw no GCP Compute Engine (Docker, guia de VPS para produção)
Objetivo
Executar um Gateway OpenClaw persistente em uma VM do GCP Compute Engine usando Docker, com estado durável, binários incluídos no build e comportamento seguro de reinicialização. Se você quer “OpenClaw 24/7 por ~US$ 5-12/mês”, esta é uma configuração confiável no Google Cloud. O preço varia por tipo de máquina e região; escolha a menor VM que atenda à sua carga de trabalho e aumente se começar a ter OOMs.O que estamos fazendo (em termos simples)?
- Criar um projeto no GCP e ativar o faturamento
- Criar uma VM do Compute Engine
- Instalar Docker (runtime isolado do app)
- Iniciar o Gateway do OpenClaw no Docker
- Persistir
~/.openclaw+~/.openclaw/workspaceno host (sobrevive a reinicializações/rebuilds) - Acessar a Control UI do seu laptop por meio de um túnel SSH
~/.openclaw inclui openclaw.json, o arquivo por agente
agents/<agentId>/agent/auth-profiles.json e .env.
O Gateway pode ser acessado por:
- Encaminhamento de porta por SSH a partir do seu laptop
- Exposição direta da porta, se você mesmo gerenciar firewall e tokens
Caminho rápido (operadores experientes)
- Criar o projeto no GCP + ativar a API do Compute Engine
- Criar a VM do Compute Engine (e2-small, Debian 12, 20GB)
- Conectar por SSH à VM
- Instalar Docker
- Clonar o repositório do OpenClaw
- Criar diretórios persistentes no host
- Configurar
.envedocker-compose.yml - Fazer o bake dos binários necessários, compilar e iniciar
O que você precisa
- Conta no GCP (com elegibilidade ao free tier para e2-micro)
- CLI
gcloudinstalada (ou use o Cloud Console) - Acesso SSH a partir do seu laptop
- Conforto básico com SSH + copiar/colar
- ~20-30 minutos
- Docker e Docker Compose
- Credenciais de autenticação de modelo
- Credenciais opcionais de provider
- QR do WhatsApp
- Token de bot do Telegram
- OAuth do Gmail
Instalar a CLI gcloud (ou usar o Console)
Opção A: CLI gcloud (recomendada para automação)Instale a partir de https://cloud.google.com/sdk/docs/installInicialize e autentique:Opção B: Cloud ConsoleTodas as etapas podem ser feitas pela interface web em https://console.cloud.google.com
Criar um projeto no GCP
CLI:Ative o faturamento em https://console.cloud.google.com/billing (obrigatório para Compute Engine).Ative a API do Compute Engine:Console:
- Vá em IAM e Admin > Create Project
- Dê um nome e crie
- Ative o faturamento para o projeto
- Vá em APIs e Services > Enable APIs > procure por “Compute Engine API” > Enable
Criar a VM
Tipos de máquina:
CLI:Console:
| Tipo | Especificações | Custo | Observações |
|---|---|---|---|
| e2-medium | 2 vCPU, 4GB RAM | ~US$25/mês | Mais confiável para builds locais com Docker |
| e2-small | 2 vCPU, 2GB RAM | ~US$12/mês | Mínimo recomendado para build com Docker |
| e2-micro | 2 vCPU (compartilhado), 1GB RAM | Elegível ao free tier | Frequentemente falha com OOM no build do Docker (exit 137) |
- Vá em Compute Engine > VM instances > Create instance
- Nome:
openclaw-gateway - Região:
us-central1, Zona:us-central1-a - Tipo de máquina:
e2-small - Disco de boot: Debian 12, 20GB
- Criar
Conectar por SSH à VM
CLI:Console:Clique no botão “SSH” ao lado da sua VM no painel do Compute Engine.Observação: a propagação da chave SSH pode levar de 1 a 2 minutos após a criação da VM. Se a conexão for recusada, aguarde e tente novamente.
Instalar Docker (na VM)
Clonar o repositório do OpenClaw
Criar diretórios persistentes no host
Contêineres Docker são efêmeros.
Todo estado de longa duração deve ficar no host.
Configurar variáveis de ambiente
Crie Gere segredos fortes:Não faça commit desse arquivo.Esse arquivo
.env na raiz do repositório..env é para variáveis de ambiente do contêiner/runtime, como OPENCLAW_GATEWAY_TOKEN.
A autenticação armazenada de providers por OAuth/API key fica em
~/.openclaw/agents/<agentId>/agent/auth-profiles.json, que está montado.Configuração do Docker Compose
Crie ou atualize
docker-compose.yml.--allow-unconfigured serve apenas para conveniência inicial de bootstrap; não substitui uma configuração correta do gateway. Ainda assim, defina autenticação (gateway.auth.token ou senha) e use configurações seguras de bind para sua implantação.Etapas compartilhadas de runtime de VM Docker
Use o guia de runtime compartilhado para o fluxo comum de host Docker:
Observações específicas de inicialização no GCP
No GCP, se o build falhar com Se você mudou a porta do gateway, substitua
Killed ou exit code 137 durante pnpm install --frozen-lockfile, a VM está sem memória. Use no mínimo e2-small, ou e2-medium para builds iniciais mais confiáveis.Ao fazer bind em LAN (OPENCLAW_GATEWAY_BIND=lan), configure uma origem confiável do navegador antes de continuar:18789 pela porta configurada.Acesso a partir do seu laptop
Crie um túnel SSH para encaminhar a porta do Gateway:Abra no navegador:Se a UI solicitar autenticação por segredo compartilhado, cole o token ou
senha configurado nas configurações da Control UI. Esse fluxo Docker grava um token por
padrão; se você mudar a configuração do contêiner para autenticação por senha, use essa
senha.Se a Control UI mostrar Precisa novamente da referência de persistência e atualização compartilhada?
Consulte Docker VM Runtime e Docker VM Runtime updates.
http://127.0.0.1:18789/Reimprima um link limpo do painel:unauthorized ou disconnected (1008): pairing required, aprove o dispositivo do navegador:Solução de problemas
Conexão SSH recusada A propagação da chave SSH pode levar de 1 a 2 minutos após a criação da VM. Aguarde e tente novamente. Problemas com OS Login Verifique seu perfil do OS Login:Killed e exit code 137, a VM foi encerrada por OOM. Faça upgrade para e2-small (mínimo) ou e2-medium (recomendado para builds locais confiáveis):
Contas de serviço (boa prática de segurança)
Para uso pessoal, sua conta de usuário padrão funciona bem. Para automação ou pipelines de CI/CD, crie uma conta de serviço dedicada com permissões mínimas:-
Crie uma conta de serviço:
-
Conceda o papel Compute Instance Admin (ou um papel personalizado mais restrito):
Próximos passos
- Configurar canais de mensagens: Channels
- Parear dispositivos locais como nodes: Nodes
- Configurar o Gateway: Gateway configuration