Estamos trabalhando em uma versão atualizada. Quando estiver estável, o novo repositório será disponibilizado para migração.
Enquanto isso, continue usando este repositório (docker-clawdbot) normalmente.
Setup Docker para Clawdbot — assistente pessoal de IA com hardening de segurança pronto pra usar.
- 🔒 Segurança reforçada — segue o Top 10 Security Checklist
- 🐳 Setup com um comando —
docker compose up -d - 🔐 Secrets via variáveis de ambiente — sem credenciais em texto puro
- 👤 Container não-root — roda como usuário sem privilégios
- 📝 Logging habilitado — trilha de auditoria por padrão
- 📱 Pronto pra Telegram — só adicionar o token do bot
- 🎙️ Transcrição de áudio — Faster Whisper incluso (opcional)
- 🪟 Compatível com Windows —
.gitattributesforça finais LF, Dockerfile corrige CRLF
| Plataforma | Requisito | Instalação |
|---|---|---|
| Windows | Docker Desktop | docker.com/products/docker-desktop |
| Windows | Git | git-scm.com |
| Mac | Docker Desktop | docker.com/products/docker-desktop |
| Linux | Docker Engine + Compose | curl -fsSL https://get.docker.com | sh |
⚠️ Usuários Windows: Certifique-se de que o Docker Desktop está rodando antes de continuar. Verifique o ícone do Docker na bandeja do sistema. Se o WSL mostrardocker-desktop Stopped, abra o Docker Desktop e aguarde ele iniciar.
Linux / Mac:
git clone https://github.com/inematds/docker-clawdbot.git
cd docker-clawdbotWindows (CMD ou PowerShell):
git clone https://github.com/inematds/docker-clawdbot.git
cd docker-clawdbotLinux / Mac:
cp .env.example .env
nano .env # Fill in your API keysWindows (CMD):
copy .env.example .env
notepad .envWindows (PowerShell):
Copy-Item .env.example .env
notepad .env
⚠️ Importante: Você DEVE criar E editar o arquivo.envantes de rodardocker compose up.
Abra o arquivo .env e substitua os valores placeholder pelas suas chaves reais:
# ❌ ERRADO (placeholder — não vai funcionar):
ANTHROPIC_API_KEY=sk-ant-your-key-here
# ✅ CERTO (sua chave real):
ANTHROPIC_API_KEY=sk-ant-abc123-your-actual-keyMínimo pra começar: Você precisa de pelo menos uma chave de provedor LLM (veja a tabela acima) e um token de gateway.
Pra gerar um token de gateway seguro:
# Linux / Mac:
openssl rand -hex 24
# Windows (PowerShell):
-join ((1..48) | ForEach-Object { '{0:x}' -f (Get-Random -Max 16) })
# Or just use any long random string (at least 24 characters)Obrigatórios:
GATEWAY_AUTH_TOKEN— gere comopenssl rand -hex 24- Um provedor LLM (escolha um ou mais):
| Provedor | Variável de Ambiente | Obter Chave |
|---|---|---|
| Anthropic (Claude) | ANTHROPIC_API_KEY |
console.anthropic.com |
| OpenAI (GPT) | OPENAI_API_KEY |
platform.openai.com |
| OpenRouter (multi-modelo) | OPENROUTER_API_KEY |
openrouter.ai |
| Google (Gemini) | GOOGLE_API_KEY |
ai.google.dev |
💡 Dica: O OpenRouter dá acesso a múltiplos modelos (Claude, GPT, Llama, Gemini) com uma única API key — incluindo modelos gratuitos.
Opcionais:
TELEGRAM_BOT_TOKEN— pegue com o @BotFatherBRAVE_API_KEY— para busca na web
docker compose up -d💡 Primeira execução leva alguns minutos pra fazer o build da imagem (baixa Node.js, FFmpeg, etc). As execuções seguintes são instantâneas.
⚠️ Erro no Windows "pipe/dockerDesktopLinuxEngine"? O Docker Desktop não está rodando. Abra ele pelo menu Iniciar e aguarde até mostrar "Docker is running", depois tente novamente.
Abra no seu navegador:
http://localhost:18789/chat
Quando solicitado, insira seu GATEWAY_AUTH_TOKEN do arquivo .env para autenticar.
💡 Dica: Você também pode acessar diretamente com:
http://localhost:18789/?token=SEU_TOKEN
docker compose logs -fDepois que o container estiver rodando, configure seu Clawdbot:
# Run the interactive setup wizard (API keys, channels, preferences)
docker compose exec -it clawdbot clawdbot configure
# Or just auto-fix detected issues (e.g. enable Telegram if token is set)
docker compose exec -it clawdbot clawdbot doctor --fix
# Check overall health
docker compose exec clawdbot clawdbot status| Comando | O que faz |
|---|---|
clawdbot configure |
Wizard interativo — configura API keys, canais (Telegram, WhatsApp, etc.), preferências de modelo |
clawdbot doctor --fix |
Auto-detecta e corrige problemas de config (ex: Telegram configurado mas não habilitado) |
clawdbot doctor |
Mesma verificação, mas só mostra os problemas sem corrigir |
clawdbot status |
Mostra status do gateway, canais conectados, info do modelo |
- Crie um bot com o @BotFather
- Adicione o token no
.env:TELEGRAM_BOT_TOKEN=123456:ABC-your-token - Reinicie:
docker compose restart - Mande uma mensagem pro seu bot — ele vai te dar um código de pareamento
- Aprove dentro do container:
docker compose exec clawdbot clawdbot pairing approve telegram <code>
Este setup implementa 7 de 10 medidas de hardening de segurança automaticamente. Veja SECURITY.md para o checklist completo e passos manuais.
- Gateway faz bind apenas em
127.0.0.1 - Política de DM requer aprovação de pareamento
- Arquivos de config têm
chmod 600 - Container roda como não-root
- Logging e diagnósticos habilitados
| Volume | Finalidade |
|---|---|
clawdbot-data |
Dados de config e sessão |
clawdbot-workspace |
Workspace do agente (AGENTS.md, memória, etc) |
clawdbot-logs |
Arquivos de log (/home/clawdbot/logs) |
# View logs
docker compose logs -f
# Enter container shell
docker compose exec clawdbot bash
# Restart
docker compose restart
# Update Clawdbot
docker compose build --no-cache
docker compose up -d
# Check clawdbot status
docker compose exec clawdbot clawdbot statusPor padrão, o container tem acesso à internet (necessário pras chamadas de API). Para isolamento total:
# In docker-compose.yml, change:
networks:
clawdbot-net:
internal: true # No internet accessMúltiplas formas de interagir com seu Clawdbot de qualquer lugar:
| Canal | Tipo | Acesso | Configuração |
|---|---|---|---|
| 📱 Telegram | Mensageiro | Qualquer lugar (mobile/desktop) | Crie um bot via @BotFather |
| Mensageiro | Qualquer lugar (mobile/desktop) | Vincule via QR code (clawdbot channels login) |
|
| 💬 Webchat | Interface Web | Rede local / VPN | Integrado, roda na porta do gateway |
| 🌐 Webchat (público) | Interface Web | Qualquer lugar | Proxy reverso Nginx + certificado SSL |
| 🔒 Tailscale | VPN | Qualquer lugar (zero-trust) | Instale Tailscale no servidor + dispositivos |
| 💜 Discord | Mensageiro | Qualquer lugar | Crie um bot via Discord Developer Portal |
| 💼 Slack | Mensageiro | Qualquer lugar | Crie um Slack app + bot token |
| 🔵 Signal | Mensageiro | Qualquer lugar | Signal CLI ou dispositivo vinculado |
| 🟢 Matrix | Mensageiro | Qualquer lugar | Homeserver Matrix + conta de bot |
Setup mais simples: Telegram — um bot token e pronto.
Mais privado: Signal ou Tailscale + Webchat.
Acesso de qualquer lugar sem apps extras: Telegram + WhatsApp (você já tem eles no celular).
Melhor pra times/trabalho: Slack ou Discord.
Acesso remoto mais seguro ao Webchat: Tailscale — VPN zero-trust, sem portas abertas, funciona de qualquer rede.
Você pode habilitar múltiplos canais simultaneamente. Todos os canais compartilham o mesmo agente, memória e workspace. Mensagens de qualquer canal chegam no mesmo assistente.
O gateway faz bind em 127.0.0.1 (loopback). Para acessar o Webchat de outra máquina, use um túnel SSH:
# On your local machine (PC/Mac):
ssh -L 18789:localhost:18789 root@your-server-ipDepois abra no seu navegador:
http://127.0.0.1:18789/chat
Essa é a forma mais segura de acessar a interface web remotamente — sem portas expostas, criptografado via SSH.
Se você usar seu número pessoal do WhatsApp (modo self-chat), fique atento:
⚠️ Por padrão, qualquer pessoa que te mandar mensagem pode receber uma resposta de código de pareamento do bot- ✅ Solução: Defina
dmPolicy: allowlistcom apenas seu número pra evitar isso:
{
"channels": {
"whatsapp": {
"selfChatMode": true,
"dmPolicy": "allowlist",
"allowFrom": ["+5511999999999"]
}
}
}- 🔄 Recomendado: Migre pra um número dedicado o mais rápido possível pra um setup mais limpo
Turbine seu Clawdbot com essas ferramentas adicionais:
| Ferramenta | Instalação | Finalidade |
|---|---|---|
| Codex CLI | npm i -g @openai/codex |
Agente de código IA (OpenAI) |
| agent-browser | npm i -g agent-browser |
Automação de navegador headless pra agentes IA |
| FFmpeg | apt install ffmpeg |
Processamento de áudio/vídeo |
| Faster Whisper | pip install faster-whisper |
Transcrição de áudio local |
| Serviço | Finalidade | Preço |
|---|---|---|
| OpenRouter | Gateway pra múltiplos LLMs (modelos gratuitos disponíveis) | Tier gratuito + pay-per-use |
| Kie.ai | Geração de imagem, vídeo e música (Veo 3.1, Flux, Suno) | Créditos |
| ElevenLabs | Text-to-speech (vozes realistas) | Tier gratuito + pago |
| Gamma | Apresentações e documentos com IA | Tier gratuito + pago |
| HeyGen | Avatares de vídeo com IA | Créditos |
| Skill | Instalação | Finalidade |
|---|---|---|
| Remotion Skills | Copie para .codex/skills/ |
Crie vídeos programaticamente com React |
# Install Remotion Skills for Codex
git clone https://github.com/inematds/remotion-skills.git /tmp/remotion-skills
mkdir -p .codex/skills
cp -r /tmp/remotion-skills/skills/remotion .codex/skills/Estratégia recomendada de modelos:
| Modelo | Provedor | Caso de Uso | Custo |
|---|---|---|---|
| Claude Opus 4.5 | Anthropic Max | Assistente principal (conversas, tarefas) | Plano mensal |
| gpt-5.2-codex | OpenAI ChatGPT Team | Geração de código (prioridade) | Plano mensal |
| Modelos gratuitos | OpenRouter | Sub-agentes, tarefas secundárias | Gratuito |
Modelos gratuitos no OpenRouter: DeepSeek R1, Llama 3.1 405B, Llama 3.3 70B, Gemini 2.0 Flash, Qwen3 Coder
- Docker Engine 24+
- Docker Compose v2+
- Pelo menos 2GB de RAM (4GB recomendado com Whisper)
| Erro | Causa | Solução |
|---|---|---|
open //./pipe/dockerDesktopLinuxEngine: O sistema não pode encontrar o arquivo |
Docker Desktop não está rodando | Abra o Docker Desktop e aguarde ele iniciar |
.env not found |
Arquivo de config faltando | Execute copy .env.example .env e edite com notepad .env |
the attribute version is obsolete |
Formato antigo do docker-compose | Ignore (inofensivo) ou atualize pra versão mais recente do docker-clawdbot |
WSL docker-desktop Stopped |
WSL não iniciou | Abra o Docker Desktop — ele inicia o WSL automaticamente |
| Build trava ou falha | RAM insuficiente | Garanta pelo menos 4GB alocados pro Docker (Settings → Resources) |
| Erro | Causa | Solução |
|---|---|---|
permission denied |
Não está no grupo docker | Execute sudo usermod -aG docker $USER e depois faça logout/login |
port already in use |
Outro serviço na porta 18789 | Mude a porta no docker-compose.yml ou pare o outro serviço |
no space left on device |
Disco cheio | Execute docker system prune -a pra limpar imagens antigas |
| Erro | Causa | Solução |
|---|---|---|
exec entrypoint.sh: no such file or directory |
Finais de linha CRLF do Windows | Isso é corrigido automaticamente pelo .gitattributes e o Dockerfile. Se ainda acontecer: git config core.autocrlf input e clone novamente. Ou abra entrypoint.sh no VS Code, mude CRLF → LF (canto inferior direito), salve, rebuild. |
error: unknown option '--foreground' |
Dockerfile antigo usando comando errado | Atualize o Dockerfile — CMD deve ser ["clawdbot", "gateway", "run"] (não start --foreground) |
npm error: spawn git ENOENT |
Git não instalado na imagem | Adicione git na linha apt-get install do Dockerfile |
| Container reiniciando em loop | Verifique docker logs clawdbot pro erro específico |
Veja os erros acima |
| Erro | Solução |
|---|---|
| Bot não responde | Verifique os logs: docker compose logs -f |
| Erros de API | Verifique se as API keys no .env estão corretas |
| Não consegue acessar o Webchat | Use túnel SSH: ssh -L 18789:localhost:18789 user@server |
PRs são bem-vindas! Por favor siga o checklist de segurança em SECURITY.md.
MIT


