Guia técnico para execução contínua do Clawdbot Gateway com persistência de dados e reinicialização segura.

Objetivo

Este artigo descreve o procedimento para instalar e executar o Clawdbot Gateway de forma contínua (24/7) em uma cloud instance Linux, utilizando Docker, garantindo persistência de estado e reinicialização segura do serviço.

Público-alvo

Este guia é destinado a usuários que:

  • Executam workloads contínuos em cloud instances
  • Possuem conhecimento básico de Linux e Docker
  • Desejam operar o Clawdbot Gateway de forma persistente
  • Precisam evitar perda de sessões e autenticações

Arquitetura da solução

  • Uma instância criada na LetsCloud ou em outro provedor de sua preferência
  • Docker Engine
  • Docker Compose

O container Docker não armazena estado permanente.

Pré-requisitos

  • Cloud instance com Ubuntu ou Debian
  • Acesso root via SSH
  • Docker e Docker Compose
  • Credenciais de autenticação dos modelos
  • Tokens opcionais (WhatsApp, Telegram, Gmail)

1. Provisionamento da cloud instance

Criar uma cloud instance Linux com Ubuntu ou Debian.

$

ssh root@IP_DA_INSTANCE

2. Instalação do Docker

$$$

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

$$

docker --version docker compose version

3. Clonagem do repositório Clawdbot

$$

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

4. Criação de diretórios persistentes no host

$$$$

mkdir -p /root/.clawdbot mkdir -p /root/clawd

chown -R 1000:1000 /root/.clawdbot chown -R 1000:1000 /root/clawd

5. Configuração de variáveis de ambiente

Criar o arquivo .env:

CLAWDBOT_IMAGE=clawdbot:latest
CLAWDBOT_GATEWAY_TOKEN=change-me-now
CLAWDBOT_GATEWAY_BIND=lan
CLAWDBOT_GATEWAY_PORT=18789

CLAWDBOT_CONFIG_DIR=/root/.clawdbot
CLAWDBOT_WORKSPACE_DIR=/root/clawd

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

6. Configuração do Docker Compose

services:
  clawdbot-gateway:
    image: ${CLAWDBOT_IMAGE}
    build: .
    restart: unless-stopped
    env_file:
      - .env
    environment:
      - HOME=/home/node
      - NODE_ENV=production
      - TERM=xterm-256color
      - CLAWDBOT_GATEWAY_BIND=${CLAWDBOT_GATEWAY_BIND}
      - CLAWDBOT_GATEWAY_PORT=${CLAWDBOT_GATEWAY_PORT}
      - CLAWDBOT_GATEWAY_TOKEN=${CLAWDBOT_GATEWAY_TOKEN}
      - GOG_KEYRING_PASSWORD=${GOG_KEYRING_PASSWORD}
      - XDG_CONFIG_HOME=${XDG_CONFIG_HOME}
    volumes:
      - ${CLAWDBOT_CONFIG_DIR}:/home/node/.clawdbot
      - ${CLAWDBOT_WORKSPACE_DIR}:/home/node/clawd
    ports:
      - "127.0.0.1:${CLAWDBOT_GATEWAY_PORT}:18789"

7. Inclusão de binaries externos no Dockerfile

FROM node:22-bookworm

RUN apt-get update && apt-get install -y socat && rm -rf /var/lib/apt/lists/*

RUN curl -L https://github.com/steipete/gog/releases/latest/download/gog_Linux_x86_64.tar.gz \
  | tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/gog

RUN curl -L https://github.com/steipete/goplaces/releases/latest/download/goplaces_Linux_x86_64.tar.gz \
  | tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/goplaces

RUN curl -L https://github.com/steipete/wacli/releases/latest/download/wacli_Linux_x86_64.tar.gz \
  | tar -xz -C /usr/local/bin && chmod +x /usr/local/bin/wacli

8. Build e execução

$$

docker compose build docker compose up -d clawdbot-gateway

9. Acesso ao Gateway

$

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

Acessar:

http://127.0.0.1:18789/

Persistência de dados

Componente Local Persistência
Configurações /home/node/.clawdbot Volume no host
Tokens /home/node/.clawdbot Volume no host
Skills /home/node/.clawdbot/skills Volume no host
Workspace /home/node/clawd Volume no host
Binaries externos /usr/local/bin Imagem Docker

Considerações finais

Este procedimento permite executar o Clawdbot Gateway em uma cloud instance utilizando Docker, mantendo todo o estado fora do container e garantindo reinicialização segura.