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/workspaceno 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)
- Provisionar VPS Hetzner
- Instalar Docker
- Clonar repositorio OpenClaw
- Criar diretorios persistentes no host
- Configurar
.envedocker-compose.yml - Integrar binarios necessarios na imagem
docker compose up -d- 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:
- Infraestrutura: openclaw-terraform-hetzner
- Config Docker: openclaw-docker-config
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.