Voltar para a landing
Tutorial de instalação

Do servidor zerado ao WhatsApp no Chatwoot

Guia completo passo a passo. Funciona mesmo sem ser técnico — você cria a VPS, cola um comando, responde algumas perguntas e está no ar.

Tutorial de instalação megaAPI + Chatwoot
Visão rápida — ordem dos passos
  1. Criar a VPS (Hetzner ou similar)
  2. Criar o Tunnel na Cloudflare e pegar o token
  3. Rodar o instalador na VPS com um comando
  4. Criar os 4 endereços públicos na Cloudflare
  5. Configurar o Chatwoot — conta + caixa de entrada API
  6. Configurar o painel Bridge — Base URL + tenant
  7. Parear o WhatsApp
  8. Verificar no Portainer — stacks e containers
1

Criar a VPS na Hetzner

  1. Acesse o Hetzner Cloud ConsoleNew Project (ou use um existente).
  2. Clique em Add Server e configure:
    • Location: a mais próxima dos seus clientes (ex.: Ashburn/EUA ou Alemanha).
    • Image: Ubuntu 24.04.
    • Type: mínimo recomendado CPX21 (2 vCPU / 4 GB RAM).
    • Networking: IPv4 público habilitado.
    • SSH Key: adicione sua chave (recomendado) ou use senha por e-mail.
  3. Clique em Create & Buy now. Anote o IP público do servidor.

Acessar por SSH

bash
local:~$
ssh root@SEU_IP

2

Criar o Tunnel na Cloudflare

O Tunnel entrega HTTPS automático sem abrir portas no servidor e sem mexer em DNS manualmente.

  1. Abra o Cloudflare Zero TrustNetworks → Tunnels → Create a tunnel.
  2. Tipo: Cloudflared → dê um nome (ex.: atendimento) → Save.
  3. Na tela "Install connector", copie o token — o texto longo depois de --token, começa com eyJ.... Guarde-o, você vai colar no instalador.
  4. Não feche — os endereços públicos são criados no passo 4.

3

Rodar o instalador na VPS

Na VPS (como root), cole o comando abaixo e pressione Enter:

bash
root@vps:~#
bash <(curl -fsSL https://raw.githubusercontent.com/giovani-junior-dev/megaAPI-Chatwoot/master/install-pack/bootstrap.sh)

O instalador vai perguntar — responda com calma e atenção aos domínios:

PerguntaExemploObservação
Hostname do Chatwootchatwoot.suaempresa.com1 nível de subdomínio
Hostname do Bridgebridge.suaempresa.compainel de administração
Hostname do Portainerportainer.suaempresa.comgerenciador de containers
Hostname do Backupbackup.suaempresa.compainel de backups
Token do TunneleyJ...copiado no passo 2
E-mail do admin (Bridge)voce@suaempresa.comlogin do painel Bridge
Senha do admin (Bridge)(sua senha)login do painel Bridge
Senha do admin (Portainer)(sua senha)mínimo 12 caracteres

Erros comuns a evitar: Digite o domínio sem typos (ex.: chatwoot, não chtwoot) — um erro aqui quebra os links de mídia. Use subdomínio de 1 nível (chatwoot.suaempresa.com). Dois níveis (chat.chatwoot.suaempresa.com) quebram o HTTPS gratuito da Cloudflare.

O resto — senhas de banco, chaves de criptografia — é gerado automaticamente. O instalador sobe tudo, prepara o banco do Chatwoot e cria os administradores. Leva alguns minutos (a primeira vez baixa as imagens Docker). Ao final, um resumo com os endereços é exibido.


4

Criar os 4 endereços públicos na Cloudflare

Volte ao Tunnel → aba Public HostnamesAdd a public hostname. Faça isso 4 vezes. Em todos, o Type é HTTP (o HTTPS é entregue pela Cloudflare):

SubdomainDomainTypeURL (Service)
chatwootsuaempresa.comHTTPchatwoot_admin:3000
bridgesuaempresa.comHTTPbridge:8080
portainersuaempresa.comHTTPportainer:9000
backupsuaempresa.comHTTPpgbackupweb:8085

Os subdomínios precisam bater exatamente com os hostnames informados no instalador. Após salvar, o Tunnel deve aparecer como HEALTHY.


5

Configurar o Chatwoot

  1. Acesse https://chatwoot.suaempresa.comcrie a conta de administrador.
  2. Crie a caixa de entrada do tipo API:
    • Menu → Caixas de entradaAdicionar caixa de entradaAPI.
    • Dê um nome (ex.: WhatsApp) → criar.
    • Anote o Inbox ID — aparece na URL da caixa de entrada.
  3. Pegue os dados que o Bridge vai pedir:
    • Account ID: está na URL /app/accounts/<ID>.
    • Token de acesso: Perfil → Configurações do perfil → Token de Acesso.

Crie a caixa de entrada ANTES de criar o tenant no Bridge. Se inverter, o Bridge avisa com uma mensagem clara e não cria nada incompleto.


6

Configurar o painel Bridge

  1. Acesse https://bridge.suaempresa.com → entre com o e-mail e senha definidos no instalador.
  2. Vá em Configurações → preencha a Base URL = https://bridge.suaempresa.com → salvar.
  3. Vá em Novo tenant e preencha:
    • Slug: identificador curto, minúsculo, com hífen (ex.: empresa-x). Sem espaços.
    • megaAPI: host, instância e token da sua instância.
    • Chatwoot: URL (https://chatwoot.suaempresa.com), token de acesso, Account ID e Inbox ID.
  4. Salvar. O Bridge configura o webhook do Chatwoot automaticamente (com token de segurança).

O que cada página do painel Bridge faz

PáginaRotaO que faz
Login/loginAutenticação do administrador (e-mail + senha).
Painel/Lista todos os tenants: slug, mensagens nas últimas 24h, status de pareamento e ações rápidas.
Novo tenant/tenants/newAssistente em 4 passos para cadastrar um tenant. Configura o webhook automaticamente.
Diagnóstico/tenants/{slug}/diagVerifica a saúde do tenant — conectividade e configuração.
Mensagens/messagesHistórico de mensagens por tenant com filtro e paginação.
DLQ/dlqFila de mensagens que falharam, com botão de reenviar por mensagem.
Configurações/settingsDefine a Base URL pública do Bridge. Obrigatório antes de criar tenants.
Pareamento/pair/{slug}Página para conectar o WhatsApp: QR Code, código de pareamento e status em tempo real.

7

Parear o WhatsApp

  1. No Painel do Bridge, na linha do tenant, clique em Gerar link de pareamento.
  2. Abra o link → escaneie o QR Code com o WhatsApp do celular (ou use o código de pareamento).
  3. Quando o status mudar para conectado, faça o teste:
    • Envie uma mensagem do WhatsApp → deve aparecer no Chatwoot.
    • Responda no Chatwoot → deve chegar no WhatsApp, com texto e arquivo.

8

Verificar no Portainer

  1. Acesse https://portainer.suaempresa.com → entre com admin + a senha do instalador.
  2. Selecione o ambiente swarm-local → menu Stacks.
  3. Confira que as stacks não estão como "Limited" — devem aparecer editáveis: postgres, cloudflared, chatwoot, bridge, pgbackupweb.
  4. Em Services / Containers, todos devem estar running (verde): chatwoot_admin, chatwoot_api, chatwoot_sidekiq, chatwoot_redis, postgres, cloudflared, bridge, pgbackupweb, portainer, agent.

Se alguma stack aparecer como Limited ou faltar o ambiente swarm-local, aguarde 1–2 min e recarregue — o instalador registra o ambiente assim que o agente sobe.


?

Resolvendo problemas

SintomaCausa provável / solução
Tunnel DOWNToken errado no install. Refaça o passo do token e reinstale o connector.
Página não abre / erro de SSLSubdomínio de 2 níveis. Use 1 nível (chatwoot.suaempresa.com).
Imagem/vídeo "não disponível" no ChatwootHostname do Chatwoot digitado errado no install (ex.: chtwoot). Corrija o FRONTEND_URL para o domínio certo e reinicie o Chatwoot.
Envio do Chatwoot dá "Falha ao enviar"A caixa de entrada foi criada depois do tenant. Recrie o tenant com a caixa de entrada já existente.
Stacks aparecem como LimitedO ambiente do Portainer não registrou no momento certo. Aguarde 1–2 min e recarregue.
Mensagem do WhatsApp não chegaMensagens de grupos/canais não são atendimentos 1:1. Use conversas diretas para testar.

Acessos finais

FerramentaURLLogin
Chatwoothttps://chatwoot.suaempresa.comconta criada no passo 5
Bridge (painel)https://bridge.suaempresa.come-mail + senha do install
Portainerhttps://portainer.suaempresa.comadmin + senha do install
Backuphttps://backup.suaempresa.comadmin do pgbackweb
Agendar consultoria Voltar para a landing