OpenClaw no Hetzner (Docker, Guia de Producao VPS)

Objetivo

Executar um Gateway OpenClaw persistente em um VPS Hetzner usando Docker, com estado duravel, binarios integrados e comportamento de reinicio seguro.

Se voce quer “OpenClaw 24/7 por ~5 dolares”, esta e a configuracao confiavel mais simples. Os precos do Hetzner mudam; escolha o menor VPS Debian/Ubuntu e escale se encontrar OOMs.

Lembrete sobre modelo de seguranca:

  • Agentes compartilhados por empresa funcionam bem quando todos estao no mesmo perimetro de confianca e o runtime e exclusivamente profissional.
  • Mantenha separacao estrita: VPS/runtime dedicado + contas dedicadas; sem perfis pessoais Apple/Google/navegador/gerenciador de senhas nesse host.
  • Se os usuarios sao adversarios entre si, separe por gateway/host/usuario do SO.

Consulte Seguranca e Hospedagem VPS.

Em termos simples, o que estamos fazendo?

  • Alugar um servidor Linux pequeno (VPS Hetzner)
  • Instalar Docker (runtime de app isolado)
  • Iniciar o Gateway OpenClaw no Docker
  • Persistir ~/.openclaw + ~/.openclaw/workspace no host (sobrevive a reinicializacoes/reconstrucoes)
  • Acessar a interface de controle do seu notebook via tunel SSH

O Gateway pode ser acessado via:

  • Redirecionamento de porta SSH do seu notebook
  • Exposicao direta de porta se voce gerencia firewall e tokens

Este guia assume Ubuntu ou Debian no Hetzner. Se voce esta em outro VPS Linux, adapte os pacotes conforme necessario. Para o fluxo Docker generico, consulte Docker.


Caminho rapido (operadores experientes)

  1. Provisionar VPS Hetzner
  2. Instalar Docker
  3. Clonar repositorio OpenClaw
  4. Criar diretorios persistentes no host
  5. Configurar .env e docker-compose.yml
  6. Integrar binarios necessarios na imagem
  7. docker compose up -d
  8. Verificar persistencia e acesso ao Gateway

O que voce precisa

  • VPS Hetzner com acesso root
  • Acesso SSH do seu notebook
  • Conforto basico com SSH + copiar/colar
  • ~20 minutos
  • Docker e Docker Compose
  • Credenciais de autenticacao de modelo
  • Credenciais opcionais de provedor
    • QR WhatsApp
    • Token de bot Telegram
    • OAuth Gmail

1) Provisionar o VPS

Crie um VPS Ubuntu ou Debian no Hetzner.

Conecte como root:

ssh root@YOUR_VPS_IP

Este guia assume que o VPS e com estado. Nao o trate como infraestrutura descartavel.


2) Instalar Docker (no VPS)

apt-get update
apt-get install -y git curl ca-certificates
curl -fsSL https://get.docker.com | sh

Verifique:

docker --version
docker compose version

3) Clonar o repositorio OpenClaw

git clone https://github.com/openclaw/openclaw.git
cd openclaw

Este guia assume que voce construira uma imagem personalizada para garantir a persistencia dos binarios.


4) Criar diretorios persistentes no host

Containers Docker sao efemeros. Todo estado de longa duracao deve residir no host.

mkdir -p /root/.openclaw/workspace

# Definir propriedade para o usuario do container (uid 1000):
chown -R 1000:1000 /root/.openclaw

5) Configurar variaveis de ambiente

Crie .env na raiz do repositorio.

OPENCLAW_IMAGE=openclaw:latest
OPENCLAW_GATEWAY_TOKEN=change-me-now
OPENCLAW_GATEWAY_BIND=lan
OPENCLAW_GATEWAY_PORT=18789

OPENCLAW_CONFIG_DIR=/root/.openclaw
OPENCLAW_WORKSPACE_DIR=/root/.openclaw/workspace

GOG_KEYRING_PASSWORD=change-me-now
XDG_CONFIG_HOME=/home/node/.openclaw

Gere segredos fortes:

openssl rand -hex 32

Nao faca commit deste arquivo.


6) Configuracao Docker Compose

Crie ou atualize 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:
      - "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 e apenas para conveniencia no bootstrap, nao substitui uma configuracao adequada do gateway.


7) Etapas compartilhadas do runtime Docker VM

Use o guia de runtime compartilhado para o fluxo comum Docker no host:


8) Acesso especifico Hetzner

Apos as etapas compartilhadas de build e inicializacao, faca tunel do seu notebook:

ssh -N -L 18789:127.0.0.1:18789 root@YOUR_VPS_IP

Abra:

http://127.0.0.1:18789/

Cole seu token do gateway.


O mapa de persistencia compartilhado esta em Docker VM Runtime.

Infrastructure as Code (Terraform)

Para equipes que preferem workflows de infrastructure-as-code, uma configuracao Terraform mantida pela comunidade fornece:

  • Configuracao Terraform modular com gerenciamento de estado remoto
  • Provisionamento automatizado via cloud-init
  • Scripts de deploy (bootstrap, deploy, backup/restore)
  • Hardening de seguranca (firewall, UFW, acesso apenas SSH)
  • Configuracao de tunel SSH para acesso ao gateway

Repositorios:

Esta abordagem complementa a configuracao Docker acima com deploys reprodutiveis, infraestrutura versionada e recuperacao automatizada de desastres.

Nota: Mantido pela comunidade. Para problemas ou contribuicoes, consulte os links dos repositorios acima.