NOVO 📢 Oferta de lançamento limitada: até 70% de desconto no seu primeiro mês, em todos os jogos!Ver planos

Como rodar o OpenClaw com Docker

OpenClawUpdated Nov 6, 20269 min read

Resposta curta. Clone o repositório do OpenClaw e rode ./scripts/docker/setup.sh com OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest" definido, para ele usar a imagem oficial já pronta em vez de construir uma (compilar a partir do código-fonte exige pelo menos 6 GB de RAM). O script roda o onboarding, grava um token do Gateway no .env e inicia o Gateway com o Docker Compose. Monte a pasta de estado ~/.openclaw para que nada se perca quando o contêiner for substituído, e mantenha a porta 18789 fechada para a internet: as portas publicadas do Docker passam por fora do UFW. Dê ao contêiner pelo menos 2 GB de memória; limitada a 1 GB sem swap, a imagem oficial foi encerrada por falta de memória no nosso teste.

Verificado em 6 de novembro de 2026, correto para o OpenClaw 2026.11.1.

Este guia usa a documentação de Docker do OpenClaw, o docker-compose.yml do repositório dele e um teste da imagem oficial que fizemos no nosso próprio servidor (números abaixo).

Você precisa mesmo do Docker?

A documentação do OpenClaw chama o Docker de opcional: útil para um Gateway isolado e descartável ou para uma máquina onde você não quer instalar o Node.js. Em um VPS que só roda o OpenClaw, a instalação simples com npm e um serviço do systemd é o caminho principal (veja como hospedar o OpenClaw 24/7). O Docker é uma boa escolha quando você já roda outras coisas em contêineres.

O que é a imagem oficial

  • Onde fica: ghcr.io/openclaw/openclaw (principal) e o espelho no Docker Hub openclaw/openclaw. O OpenClaw desaconselha espelhos não oficiais.
  • Tags: latest, versões exatas como 2026.11.1, variantes -slim e variantes -browser, que incluem o Chromium para automação de navegador.
  • Por dentro: ela roda como o usuário node sob o tini, e o entrypoint roda openclaw doctor --fix no seu estado montado antes de iniciar o Gateway, então as atualizações da imagem migram o estado para você. Uma verificação de saúde embutida chama /healthz.

O que medimos

Baixamos ghcr.io/openclaw/openclaw:2026.11.1 em um dos nossos servidores Linux e iniciamos o Gateway duas vezes com docker run (não com o Compose), sem modelo, sem app de chat, sem porta publicada, limitado a 1 CPU e sem swap: uma vez com limite de memória de 2 GB e outra com 1 GB. Os valores de memória estão em MiB, como o Linux informa.

Resultado
DownloadCerca de 695 MB comprimidos (amd64), 2.818 MiB (cerca de 3 GB) em disco depois de baixada
Node.js na imagem24.22.1
Limite de 2 GB: início/healthz respondeu 48 segundos depois do docker run, incluindo a passada do doctor. O Gateway carregou 14 plugins e registrou "ready" 22 segundos depois de começar a própria inicialização
Limite de 2 GB: memória em repouso1.349 MiB 30 segundos depois de responder à verificação de saúde, 1.106 MiB dois minutos depois, máximo de 1.439 MiB. Nenhum evento de falta de memória
Limite de 1 GBO Gateway chegou a "ready", e então o contêiner inteiro foi encerrado por falta de memória cerca de 54 segundos depois do início (código de saída 137)

O FAQ do OpenClaw dá 1 GB como mínimo absoluto para um VPS. Com esta versão em um contêiner limitado a 1 GB, isso não foi suficiente. Conte com 2 GB ou mais, e ainda mais para conversas reais, vários apps de chat ou uma imagem -browser. Mais em quanta memória o OpenClaw precisa.

Passo a passo com o Docker Compose

  1. Instale o Docker Engine e o Docker Compose v2 e depois baixe o repositório:
    git clone https://github.com/openclaw/openclaw.git
    cd openclaw
  2. Rode o script de instalação com a imagem pronta:
    export OPENCLAW_IMAGE="ghcr.io/openclaw/openclaw:latest"
    ./scripts/docker/setup.sh
    Sem OPENCLAW_IMAGE, o script constrói openclaw:local a partir do código-fonte, o que exige pelo menos 6 GB de RAM; uma construção que termina em Killed ou com código de saída 137 ficou sem memória. O script pede a chave de API do seu provedor, gera o token do Gateway e o grava no .env, e então inicia o Gateway.
  3. Abra o painel de controle em http://127.0.0.1:18789/ na mesma máquina e cole o token do .env em Settings. Se precisar do link de novo: docker compose run --rm openclaw-cli dashboard --no-open.
  4. Adicione um app de chat:
    docker compose run --rm openclaw-cli channels add --channel telegram --token "<token>"
    docker compose run --rm openclaw-cli channels add --channel discord --token "<token>"
    Os novos DMs começam no modo pairing: mande uma mensagem ao seu bot e depois rode docker compose run --rm openclaw-cli pairing approve telegram <CODE>. Mais em conectar o OpenClaw ao Telegram.
  5. Confira:
    docker compose ps
    docker compose logs --tail=100 openclaw-gateway
    curl -fsS http://127.0.0.1:18789/healthz

Para uma máquina sem prompts de terminal, o OpenClaw documenta um bootstrap sem interação: coloque a chave do provedor, OPENCLAW_GATEWAY_TOKEN e TELEGRAM_BOT_TOKEN no .env, depois rode onboard --non-interactive e channels add --channel telegram --use-env pelo contêiner do Gateway antes de docker compose up -d openclaw-gateway.

Persistência: o que montar e o que fazer backup

No contêinerO que guardaLado do host (padrão do setup)
/home/node/.openclawopenclaw.json, os bancos SQLite (autenticação do provedor, sessões), os plugins instalados, os segredos do .env$HOME/.openclaw
/home/node/.openclaw/workspaceO workspace e os arquivos de memória do agente$HOME/.openclaw/workspace
/home/node/.config/openclawA chave das credenciais criptografadas mais antigas$HOME/.openclaw-auth-profile-secrets
  • Monte a pasta, nunca um arquivo só. O OpenClaw salva o openclaw.json substituindo-o, então um bind mount de um único arquivo pode fazer o contêiner continuar lendo uma cópia antiga.
  • Mantenha o estado em um disco local. Compartilhamentos NFS, SMB e CIFS não dão ao SQLite a coordenação de memória compartilhada de que ele precisa e podem corrompê-lo.
  • Um Gateway por pasta de estado. Pare o contêiner antigo antes de iniciar o substituto.
  • Trate os backups como segredos. A documentação do OpenClaw diz que os tokens OAuth ficam em texto puro nesses arquivos SQLite.
  • Tudo o que você instala dentro de um contêiner em execução se perde quando ele é recriado. Ferramentas extras entram na imagem na hora da construção.

Mantenha a porta privada

O docker-compose.yml do repositório publica 18789 (e 18790 e 3978) no host e inicia o Gateway com --bind lan, então a porta publicada chega até ele. Em um VPS isso significa que a porta do painel de controle fica no endereço público, a não ser que você a bloqueie. Duas armadilhas:

  • O UFW não cobre isso. As portas publicadas dos contêineres passam pelas cadeias de encaminhamento do próprio Docker, não só pelas regras INPUT do host. A documentação do OpenClaw traz regras para a cadeia DOCKER-USER; um firewall na nuvem que admita só SSH também resolve.
  • Use um túnel para acessar o painel de controle: ssh -N -L 18789:127.0.0.1:18789 root@<vps-ip>, e depois abra http://127.0.0.1:18789/ no seu próprio computador.

O Compose também define restart: unless-stopped, então o Gateway volta depois de uma falha ou de um reinício, e remove as capabilities NET_RAW e NET_ADMIN.

Atualizando

docker compose pull openclaw-gateway openclaw-cli
docker compose stop openclaw-gateway
docker compose up -d openclaw-gateway

O entrypoint da imagem repara e migra o estado montado no início. Faça backup de ~/.openclaw antes. Com latest você acompanha cada versão estável; fixe uma tag como 2026.11.1 para ficar parado.

Sem Docker: rode o OpenClaw na PlayNHost

Um servidor da PlayNHost já é um contêiner isolado com o próprio limite de memória, então não há nada para compor. Não usamos a imagem oficial: o servidor roda o Node.js 26 e instala o pacote npm openclaw no primeiro início, e depois procura uma versão mais nova a cada início.

  • Configuração: cole uma chave de provedor de IA e um token de bot do Telegram ou do Discord na página Agente, e aperte Start. No nosso teste da mesma configuração, o agente estava rodando 67 segundos depois do primeiro Start, instalação incluída.
  • Persistência: .openclaw fica no disco do servidor e nos backups dele (cerca de 4 MB no nosso teste); o programa e os caches são reinstalados, não entram no backup.
  • Porta: o Gateway escuta só no endereço loopback do próprio servidor, porta 18789, com um token que o painel gera. Nada é publicado, então não há firewall para configurar errado.
  • Memória: planos de 2 GB, 4 GB e 8 GB. O início se recusa a rodar o OpenClaw com menos de 2 GB.
  • Ainda não incluído: o painel de controle web, apps de chat além do Telegram e do Discord, e a automação de navegador (sem Chromium).

Crie um servidor OpenClaw.

A PlayNHost não é afiliada à OpenClaw Foundation. O OpenClaw é um software de código aberto sob a licença MIT.

Já tem um em outro lugar? Traga seu servidor para nós

NOSSOS ÚLTIMOS ARTIGOS