Skip to main content

Relatório de Instalação - Waha

🚀 WAHA + Evolution API - Configuração Dual WhatsApp

✅ Status da Implementação

Ambas as APIs WhatsApp estão funcionando em paralelo:

🔗 URLs de Acesso

Serviço URL Porta Status
WAHA (WhatsApp HTTP API) https://waha.memudecore.com.br 3000 ✅ Funcionando
Evolution API https://evo.memudecore.com.br 8080 ✅ Funcionando
N8N (Automação) https://n8n.memudecore.com.br - ✅ Funcionando

🏗️ Arquitetura Implementada

graph TB
    N8N[N8N Workflows] --> WAHA[WAHA API]
    N8N --> EVO[Evolution API]
    WAHA --> WA1[WhatsApp Session 1]
    EVO --> WA2[WhatsApp Session 2]

    TRAEFIK[Traefik] --> WAHA
    TRAEFIK --> EVO
    TRAEFIK --> N8N

🔧 Configuração do WAHA

Container Docker

# Container em execução
docker ps | grep waha
# Output: waha container running on port 3000

Configuração Aplicada

  • Engine: NOWEB (compatível com ARM64)
  • Webhook: https://n8n.memudecore.com.br/webhook/waha
  • Porta: 3000
  • Rede: minha_rede (Docker Swarm)
  • SSL: Certificado Let's Encrypt via Traefik

📝 Como Usar Cada API

1. 🆕 WAHA (WhatsApp HTTP API)

Endpoints Principais

# Base URL
https://waha.memudecore.com.br

# Health Check
GET https://waha.memudecore.com.br/api/health

# Documentação Swagger
GET https://waha.memudecore.com.br/docs

# Criar Sessão
POST https://waha.memudecore.com.br/api/sessions
{
  "name": "default",
  "config": {
    "webhooks": [{
      "url": "https://n8n.memudecore.com.br/webhook/waha",
      "events": ["message"]
    }]
  }
}

# Enviar Mensagem
POST https://waha.memudecore.com.br/api/sendText
{
  "session": "default",
  "chatId": "5511999999999@c.us",
  "text": "Mensagem via WAHA"
}

Workflow N8N para WAHA

// Exemplo de nó HTTP Request no N8N
{
  "method": "POST",
  "url": "https://waha.memudecore.com.br/api/sendText",
  "headers": {
    "Content-Type": "application/json"
  },
  "body": {
    "session": "default",
    "chatId": "{{ $json.phoneNumber }}@c.us",
    "text": "{{ $json.message }}"
  }
}

2. 🔄 Evolution API (Existente)

Endpoints Principais

# Base URL
https://evo.memudecore.com.br

# Manager Interface
https://evo.memudecore.com.br/manager

# Criar Instância
POST https://evo.memudecore.com.br/instance/create
{
  "instanceName": "minha-instancia",
  "qrcode": true,
  "integration": "WHATSAPP-BAILEYS"
}

# Enviar Mensagem
POST https://evo.memudecore.com.br/message/sendText/minha-instancia
{
  "number": "5511999999999",
  "text": "Mensagem via Evolution"
}

🔀 Cenários de Uso Dual

Caso 1: Segregação por Cliente

// N8N Workflow - Escolher API por cliente
if (cliente.tipo === 'premium') {
  // Usar Evolution API para clientes premium
  useEvolutionAPI(message);
} else {
  // Usar WAHA para clientes básicos
  useWAHA(message);
}

Caso 2: Failover Automático

// N8N Workflow - Failover entre APIs
try {
  await sendViaWAHA(message);
} catch (error) {
  console.log('WAHA failed, trying Evolution API');
  await sendViaEvolution(message);
}

Caso 3: Load Balancing

// Distribuir carga entre as duas APIs
const api = Math.random() > 0.5 ? 'waha' : 'evolution';

if (api === 'waha') {
  await sendViaWAHA(message);
} else {
  await sendViaEvolution(message);
}

🔍 Monitoramento e Troubleshooting

Verificar Status dos Serviços

# WAHA
curl -s https://waha.memudecore.com.br/api/health
# Evolution API
curl -s https://evo.memudecore.com.br/

# Logs WAHA
docker logs waha --tail 50

# Logs Evolution API
docker service logs evolution_evolution --tail 50

Webhooks N8N

# Webhook WAHA
https://n8n.memudecore.com.br/webhook/waha

# Webhook Evolution (existente)
https://n8n.memudecore.com.br/webhook/whatsapp-krayin

🎯 Vantagens da Configuração Dual

✅ Benefícios

  1. Redundância: Se uma API falhar, a outra continua funcionando
  2. Flexibilidade: Diferentes engines para diferentes necessidades
  3. Segregação: Diferentes clientes em APIs diferentes
  4. Testing: Testar funcionalidades em paralelo
  5. Performance: Distribuição de carga

🚨 Considerações

  1. Recursos: Duas APIs consomem mais CPU/RAM
  2. Complexidade: Mais pontos de falha para monitorar
  3. Webhooks: Certificar que estão indo para endpoints corretos
  4. Sessões: Não misturar sessões WhatsApp entre as APIs

🔧 Comandos de Manutenção

Reiniciar WAHA

docker restart waha

Reiniciar Evolution API

docker service update evolution_evolution --force

Ver Logs Unificados

# Monitoring script
while true; do
  echo "=== WAHA ==="
  docker logs waha --tail 5 --since 1m
  echo "=== Evolution ==="
  docker service logs evolution_evolution --tail 5 --since 1m
  sleep 30
done

🎉 Configuração Completa!

Ambas as APIs WhatsApp estão funcionando:

  • ✅ WAHA em https://waha.memudecore.com.br
  • ✅ Evolution API em https://evo.memudecore.com.br
  • ✅ Integração com N8N configurada
  • ✅ Traefik/SSL funcionando
  • ✅ Webhooks configurados

Agora você pode usar qualquer uma das APIs conforme sua necessidade!


Documentação criada em: $(date) APIs: WAHA + Evolution API funcionando em paralelo