Skip to content

Operação e deploy ​

Deploy (Dokploy) ​

Serviço Compose no Dokploy apontando para o docker-compose.yml da raiz deste repositório. Sobem três containers: app (painel e webhooks, porta 3100), worker (fila de envios, IA, follow-up, remarketing e consulta da Safefy) e postgres. O app e o worker aplicam as migrações sozinhos ao subir. Mantenha 1 worker.

VariávelPara que serve
POSTGRES_PASSWORDSenha do PostgreSQL
APP_ENCRYPTION_KEY32 bytes (openssl rand -hex 32) que cifram os segredos salvos pelo painel. Guarde: sem ela os segredos não podem ser lidos
PUBLIC_BASE_URLEndereço público com HTTPS (https://app.tesseract-ai.com.br)
ADMIN_EMAIL / ADMIN_PASSWORDPrimeiro administrador da plataforma, dono da conta da plataforma (apague a senha depois do primeiro deploy)
DIAGNOSTICS_TOKEN (opcional)Libera GET /api/diagnostics para análise remota
WUZAPI_URL / WUZAPI_ADMIN_TOKEN (opcional)Preenchem a conexão com a WuzAPI
NEXT_SERVER_ACTIONS_ENCRYPTION_KEY (opcional)Chave estável das Server Actions
RESEND_API_KEY / EMAIL_FROME-mails da plataforma pelo Resend (cadastro, convites, senha, avisos). Sem eles, cadastro público e convites ficam desligados

O deploy do bot é feito pelo Dokploy, não pela Cloudflare: depois do merge na main, confira no Dokploy (ou no diagnóstico) se a nova versão subiu.

Site da documentação ​

Estes guias são publicados em docs.tesseract-ai.com.br por um serviço próprio no Dokploy, separado do painel: Application com Build Type Dockerfile, Docker Context docs, porta 80 e o domínio com HTTPS. Em Watch Paths, use docs/** para que só mudanças na documentação reconstruam o site. A imagem gera o site estático com VitePress e o serve com nginx (/healthz responde ok).

Para ver localmente: cd docs && npm install && npm run dev. O npm run build falha se algum link interno estiver quebrado.

Diagnóstico ​

  • Página Logs do painel: worker, fila, WhatsApp, OpenAI, webhooks e eventos recentes.
  • GET https://app.tesseract-ai.com.br/api/diagnostics?limit=100&level=error com Authorization: Bearer <DIAGNOSTICS_TOKEN>: versão no ar (appStartedAt, migrações), worker, fila, configuração (só se cada item está preenchido), sessão do WhatsApp, consulta da Safefy, vendas e logs. Nunca devolve segredos, telefones ou mensagens.

Problemas comuns ​

SintomaO que conferir
Nada é enviadoWorker vivo em Logs; Automação ligada; WhatsApp conectado; conversa dentro da janela de 24 h
Mensagens fora de ordem ou repetidasUma só réplica do worker
Venda não aparece na conversaSegredo igual nos dois painéis; o link usado tinha o código da conversa; "Reenviar ao bot" no admin do site; chaves da Safefy
"Requisição rejeitada: Assinatura ausente" nos logsAlgo chamou o webhook de pagamentos sem a assinatura do site (ex.: a Safefy direto). Com as chaves da Safefy no bot, ele passa a conferir na Safefy
QR Code não apareceURL e token de administrador da WuzAPI em Configurações → Conectar WhatsApp
IA não respondeTestar OpenAI ou Testar Gemini; limites de custo em Configurações → Inteligência artificial; conversa com Atenção ou com a equipe
IA não responde no grupoO fluxo do grupo está ligado? Foi chamada (@, resposta a ela ou palavra)? Intervalo e máximo por dia do gatilho; Logs (escopo group)
Fluxo não ligaO editor lista as pendências (passo sem texto, seta faltando, mensagem reserva vazia)
Pessoa não consegue entrarConfirmou o e-mail? A conta foi liberada em Plataforma? Está desativada? O login diz qual é o caso
E-mails não chegamRESEND_API_KEY e EMAIL_FROM definidos; domínio do EMAIL_FROM verificado no Resend; Logs (escopo email)

Testes ​

bash
npm test   # Vitest + PostgreSQL real; WhatsApp, OpenAI e Safefy simulados

Tesseract é um produto da Safefy Pay.