Hosting

GCP

Execute um Gateway persistente do OpenClaw em uma VM do GCP Compute Engine usando Docker, com estado durável, binários incorporados e comportamento seguro de reinicialização.

Os preços variam conforme o tipo de máquina e a região; escolha a menor VM adequada à sua carga de trabalho e aumente sua capacidade se ocorrerem erros de falta de memória (OOM).

O Gateway pode ser acessado pelo seu laptop via encaminhamento de porta SSH ou por exposição direta da porta, caso você mesmo gerencie o firewall e os tokens.

Este guia usa Debian no GCP Compute Engine. O Ubuntu também funciona; adapte os pacotes conforme necessário. Para o fluxo genérico do Docker, consulte Docker.

O que você precisa

  • Conta do GCP (e2-micro é elegível para o nível gratuito)
  • CLI gcloud ou o Cloud Console
  • Acesso SSH pelo seu laptop
  • Docker e Docker Compose
  • Credenciais de autenticação do modelo
  • Credenciais opcionais de provedores (código QR do WhatsApp, token de bot do Telegram, OAuth do Gmail)
  • Cerca de 20 a 30 minutos

Caminho rápido

  1. Crie um projeto do GCP e ative o faturamento e a API do Compute Engine
  2. Crie uma VM do Compute Engine (e2-small, Debian 12, 20 GB)
  3. Acesse a VM via SSH e instale o Docker
  4. Clone o repositório do OpenClaw
  5. Crie diretórios persistentes no host
  6. Configure .env e docker-compose.yml
  7. Incorpore os binários necessários, compile e inicie
  • Instalar a CLI gcloud (ou usar o Console)

    Instale-a por meio de cloud.google.com/sdk/docs/install e execute:

    bash
    gcloud initgcloud auth login

    Como alternativa, realize todas as etapas abaixo pela interface web do Cloud Console.

  • Criar um projeto do GCP

    bash
    gcloud projects create my-openclaw-project --name="OpenClaw Gateway"gcloud config set project my-openclaw-projectgcloud services enable compute.googleapis.com

    Ative o faturamento em console.cloud.google.com/billing (obrigatório para o Compute Engine).

    Equivalente no Console: IAM & Admin > Create Project, ative o faturamento e acesse APIs & Services > Enable APIs > "Compute Engine API" > Enable.

  • Criar a VM

    Tipo Especificações Custo Observações
    e2-medium 2 vCPUs, 4 GB de RAM Cerca de US$ 25/mês Mais confiável para compilações locais do Docker
    e2-small 2 vCPUs, 2 GB de RAM Cerca de US$ 12/mês Mínimo recomendado para uma compilação do Docker
    e2-micro 2 vCPUs (compartilhadas), 1 GB de RAM Elegível para o nível gratuito Frequentemente falha por OOM na compilação do Docker (saída 137)
    bash
    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-cloud
  • Acessar a VM via SSH

    bash
    gcloud compute ssh openclaw-gateway --zone=us-central1-a

    Console: clique em "SSH" ao lado da VM no painel do Compute Engine.

    A propagação da chave SSH pode levar de 1 a 2 minutos após a criação da VM; aguarde e tente novamente se a conexão for recusada.

  • Instalar o Docker (na VM)

    bash
    sudo apt-get updatesudo apt-get install -y git curl ca-certificatescurl -fsSL https://get.docker.com | sudo shsudo usermod -aG docker $USER

    Encerre a sessão e entre novamente para que a alteração do grupo entre em vigor. Depois, conecte-se novamente via SSH:

    bash
    exit
    bash
    gcloud compute ssh openclaw-gateway --zone=us-central1-a

    Verifique:

    bash
    docker --versiondocker compose version
  • Clonar o repositório do OpenClaw

    bash
    git clone https://github.com/openclaw/openclaw.gitcd openclaw

    Este guia cria uma imagem personalizada para que todos os binários incorporados a ela persistam após reinicializações.

  • Criar diretórios persistentes no host

    Os contêineres do Docker são efêmeros; todo estado de longa duração deve residir no host.

    bash
    mkdir -p ~/.openclawmkdir -p ~/.openclaw/workspace
  • Configurar variáveis de ambiente

    Crie .env na raiz do repositório:

    bash
    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/.openclaw

    Defina OPENCLAW_GATEWAY_TOKEN para gerenciar o token estável do Gateway por meio do .env; caso contrário, configure gateway.auth.token antes de depender de clientes entre reinicializações. Se nenhum dos dois estiver definido, o OpenClaw usará somente nessa inicialização um token gerado em tempo de execução. Gere uma senha para o chaveiro em GOG_KEYRING_PASSWORD:

    bash
    openssl rand -hex 32

    Não faça commit desse arquivo. Ele contém variáveis de ambiente do contêiner e da execução, como OPENCLAW_GATEWAY_TOKEN. A autenticação armazenada de OAuth/chave de API dos provedores fica no arquivo montado ~/.openclaw/agents/<agentId>/agent/auth-profiles.json.

  • Configuração do Docker Compose

    Crie ou atualize docker-compose.yml:

    yaml
    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:      # Recommended: keep the Gateway loopback-only on the VM; access via SSH tunnel.      # To expose it publicly, remove the `127.0.0.1:` prefix and firewall accordingly.      - "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 serve apenas para facilitar a inicialização, não para substituir uma configuração real do Gateway. Ainda é necessário definir a autenticação (gateway.auth.token ou senha) e um modo de vinculação seguro para sua implantação.

  • Etapas compartilhadas de execução em VM com Docker

    Siga o guia compartilhado de execução para o fluxo comum de host com Docker:

  • Observações específicas do GCP para a inicialização

    Se a compilação falhar com Killed ou exit code 137 durante pnpm install --frozen-lockfile, a VM ficou sem memória. Use no mínimo e2-small ou e2-medium para obter maior confiabilidade nas primeiras compilações.

    Ao vincular à LAN (OPENCLAW_GATEWAY_BIND=lan), configure uma origem confiável para o navegador antes de continuar:

    bash
    docker compose run --rm openclaw-cli config set gateway.controlUi.allowedOrigins '["http://127.0.0.1:18789"]' --strict-json

    Substitua 18789 pela porta configurada caso você a tenha alterado.

  • Acessar pelo seu laptop

    Crie um túnel SSH para encaminhar a porta do Gateway:

    bash
    gcloud compute ssh openclaw-gateway --zone=us-central1-a -- -L 18789:127.0.0.1:18789

    Abra http://127.0.0.1:18789/ no navegador.

    Exiba novamente um link limpo para o painel:

    bash
    docker compose run --rm openclaw-cli dashboard --no-open

    Se a interface solicitar autenticação por segredo compartilhado, cole o token ou a senha configurada nas configurações da interface de controle (por padrão, este fluxo do Docker grava um token; caso você tenha alterado para autenticação por senha, use a senha configurada).

    Se a interface de controle exibir unauthorized ou disconnected (1008): pairing required, aprove o dispositivo do navegador:

    bash
    docker compose run --rm openclaw-cli devices listdocker compose run --rm openclaw-cli devices approve <requestId>

    Consulte Execução em VM com Docker para ver o mapa compartilhado de persistência e o fluxo de atualização.

  • 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 o OS Login

    Verifique seu perfil do OS Login:

    bash
    gcloud compute os-login describe-profile

    Confirme se sua conta tem as permissões necessárias do IAM (Compute OS Login ou Compute OS Admin Login).

    Falta de memória (OOM)

    Se a compilação do Docker falhar com Killed e exit code 137, o processo da VM foi encerrado por falta de memória:

    bash
    # Stop the VM firstgcloud compute instances stop openclaw-gateway --zone=us-central1-a # Change machine typegcloud compute instances set-machine-type openclaw-gateway \  --zone=us-central1-a \  --machine-type=e2-small # Start the VMgcloud compute instances start openclaw-gateway --zone=us-central1-a

    Contas de serviço (prática recomendada de segurança)

    Para uso pessoal, sua conta de usuário padrão funciona bem. Para automação ou CI/CD, crie uma conta de serviço dedicada com permissões mínimas:

    bash
    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"

    Evite a função Owner para automação; use a função mais restrita que atenda às suas necessidades. Consulte Entender as funções.

    Próximas etapas

    Conteúdo relacionado

    Was this useful?
    On this page

    On this page