Índice do artigo
O que é a Evolution API e por que hospedá-la?
A Evolution API se estabeleceu como uma das principais ferramentas de integração do WhatsApp para empresas e desenvolvedores que desejam automatizar suas comunicações. Ao contrário das soluções oficiais do WhatsApp Business API que podem ser complexas e caras, a Evolution API oferece uma alternativa self-hosted, permitindo que você tenha controle total sobre seus dados e infraestrutura. Hospedar a Evolution API significa ter a liberdade de customizar, escalar e integrar com quaisquer outros sistemas, como CRMs, plataformas de e-commerce ou ferramentas de automação como o N8N.
Neste artigo, focaremos na implantação prática da Evolution API em um ambiente de servidor. Se você já decidiu que a Evolution API é a solução ideal para suas necessidades de WhatsApp API e criação de chatbot, o próximo passo é garantir um servidor robusto e confiável. Vamos guiá-lo através do processo de instalação usando Docker em um VPS Ubuntu, desde os requisitos básicos até a configuração final.
Por que Self-Hosted com Docker?
Optar por uma solução self-hosted como a Evolution API, especialmente quando combinada com Docker, traz inúmeras vantagens. O Docker simplifica o gerenciamento de dependências e a portabilidade da aplicação. Você pode executar a Evolution API em praticamente qualquer ambiente Linux compatível com Docker, garantindo que sua infraestrutura seja consistente e fácil de replicar. Isso é crucial para ambientes de produção onde estabilidade e previsibilidade são fundamentais. Além disso, o Docker isola a Evolution API de outras aplicações em seu servidor, evitando conflitos de bibliotecas e facilitando atualizações e rollbacks.
Requisitos de Servidor para Evolution API
Para rodar a Evolution API de forma eficiente em produção, especialmente se você planeja lidar com um volume considerável de mensagens ou múltiplos números de WhatsApp, um servidor bem configurado é essencial. A escolha do plano de hospedagem impactará diretamente a performance e a capacidade de resposta do seu sistema.
Recursos Mínimos e Recomendados
Com base em minha experiência ajudando clientes a configurar suas soluções de automação, posso afirmar que um ambiente básico para testes pode funcionar com recursos limitados, mas para produção, é recomendado o seguinte:
- RAM: Mínimo de 4GB. Para cargas de trabalho moderadas a altas, 4GB ou mais é recomendado. Um único container da Evolution API pode consumir entre 200MB e 600MB em repouso, dependendo da configuração e do número de instâncias de WhatsApp conectadas. Sob carga, esse consumo pode aumentar significativamente.
- CPU: Mínimo de 4 vCPUs. Mais núcleos de processamento beneficiam a resposta rápida de requisições e o processamento de eventos.
- Armazenamento: Mínimo de 20GB de espaço em disco. Isso considera o sistema operacional, o Docker, as imagens da Evolution API e seus bancos de dados (se você optar por persistência local). Recomenda-se SSD para melhor performance de I/O.
Portas Essenciais para Comunicação
A Evolution API utiliza algumas portas padrão para comunicação. É fundamental garantir que essas portas estejam abertas no firewall do seu servidor:
- 8080: Porta padrão para a API REST da Evolution API.
- 8000: Porta padrão para Webhooks (recebimento de eventos do WhatsApp).
- Outras portas podem ser usadas dependendo da configuração específica dos containers Docker, especialmente se você estiver executando múltiplos serviços ou usando configurações personalizadas.
A ausência de recursos adequados pode levar a lentidão, falhas na entrega de mensagens e instabilidade geral do serviço. É por isso que a Host You Secure oferece planos otimizados para este tipo de aplicação.
Tutorial de Instalação da Evolution API com Docker Compose
Implantar a Evolution API usando Docker Compose é a maneira mais eficiente e recomendada. Este método garante que todos os componentes necessários (API, banco de dados, etc.) sejam configurados e executados de forma organizada e isolada.
Passo 1: Preparando o Servidor Ubuntu
Primeiro, certifique-se de que seu servidor Ubuntu esteja atualizado. Acesse seu VPS via SSH e execute os seguintes comandos:
sudo apt update && sudo apt upgrade -y
Em seguida, instale o Docker e o Docker Compose. Se você já possui o Docker instalado, pode pular esta etapa. Para a instalação mais recente e recomendada, siga estas instruções:
# Instalar Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
# Adicionar usuário ao grupo docker (para não precisar usar sudo)
sudo usermod -aG docker $USER
newgrp docker
# Instalar Docker Compose
LATEST_COMPOSE=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d\" -f4)
sudo curl -L "https://github.com/docker/compose/releases/download/${LATEST_COMPOSE}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
Passo 2: Criando o Arquivo Docker Compose
Agora, crie um diretório para sua aplicação Evolution API e navegue até ele. Dentro deste diretório, crie um arquivo chamado docker-compose.yml. Este arquivo definirá os serviços necessários para rodar a Evolution API.
Crie o arquivo docker-compose.yml e cole o seguinte conteúdo. É fundamental configurar as variáveis de ambiente corretamente, especialmente as chaves de API e segredos.
version: '3.8'
services:
evolution-api:
image: evolution-api/evolution-api:latest
container_name: evolution-api
restart: unless-stopped
ports:
- "8080:8080"
- "8000:8000"
volumes:
- ./data:/app/backend/src/data
- ./logs:/app/backend/logs
environment:
- NODE_ENV=production
- PORT=8080
- WEBHOOK_PORT=8000
- LOG_LEVEL=info
- LOG_FILE=./logs/evolution-api.log
- SESSION_FILE_PATH=./data/sessions
- SESSION_IMPORT_PATH=./data/import
- MULTIPLE_INSTANCES=true
# Para banco de dados, se necessário (opcional, pode usar o sistema de arquivos por padrão)
# - DB_TYPE=mongo
# - DB_HOST=mongodb
# - DB_PORT=27017
# - DB_NAME=evolution
# - DB_USER=user
# - DB_PASS=password
# Para autenticação da API
- API_KEY=SUA_API_KEY_SECRETA_AQUI
- API_SECRET=SEU_API_SECRET_AQUI
# Se você usar MongoDB como banco de dados, descomente e configure este serviço
# mongodb:
# image: mongo:latest
# container_name: evolution-mongodb
# restart: unless-stopped
# volumes:
# - ./db/mongo:/data/db
# environment:
# - MONGO_INITDB_ROOT_USERNAME=user
# - MONGO_INITDB_ROOT_PASSWORD=password
# - MONGO_INITDB_DATABASE=evolution
volumes:
data:
logs:
# db:
# driver: local
Observações importantes sobre o docker-compose.yml:
- Substitua
SUA_API_KEY_SECRETA_AQUIeSEU_API_SECRET_AQUIpor chaves fortes e únicas. Essas chaves são usadas para proteger o acesso à sua API. - Os volumes
./datae./logssão criados no diretório onde odocker-compose.ymlestá localizado para persistir os dados de sessão e os logs. - Se você pretende usar MongoDB, descomente a seção do serviço
mongodbe ajuste as variáveis de ambiente no serviçoevolution-apipara que apontem para ele. - A porta
8080é exposta para a API principal e a8000para os webhooks.
Passo 3: Iniciando os Containers
Com o arquivo docker-compose.yml configurado, você pode iniciar os containers com o seguinte comando:
docker-compose up -d
O comando -d inicia os containers em modo detached (em segundo plano). Se você quiser ver os logs em tempo real, remova o -d.
Passo 4: Acessando a Evolution API
Após os containers iniciarem (pode levar alguns minutos na primeira vez para baixar as imagens), você poderá acessar a API em http://SEU_IP_DO_SERVIDOR:8080. Para gerenciar suas instâncias de WhatsApp, é comum utilizar a interface web da Evolution API (geralmente acessada em outra porta, dependendo da configuração) ou interagir diretamente via API REST.
Para verificar o status dos seus containers, utilize:
docker ps
Configurando um Chatbot Simples
Com a Evolution API rodando, o próximo passo é configurar um chatbot. A maneira mais comum de fazer isso é configurar os webhooks. Quando uma nova mensagem chega no número de WhatsApp conectado, a Evolution API enviará uma notificação (um POST request) para a URL do seu webhook configurado.
Webhook e Integração
Você pode criar um serviço separado (ou usar uma ferramenta como N8N, que também pode ser hospedada em seu VPS) que escute na porta 8000 (ou outra porta configurada para webhooks) e processe essas mensagens. Por exemplo, seu webhook pode receber uma mensagem, verificar seu conteúdo e, com base em regras predefinidas, enviar uma resposta de volta usando a Evolution API.
Exemplo de como enviar uma mensagem de volta via API (usando cURL para demonstrar):
curl -X POST "http://SEU_IP_DO_SERVIDOR:8080/message/send-text/SEU_INSTANCE_NAME"
-H "Content-Type: application/json"
-H "apiKey: SUA_API_KEY_SECRETA_AQUI"
-d '{
"number": "NUMERO_DO_DESTINATARIO",
"message": ["Olá! Esta é uma resposta automática do seu chatbot."]
}'
Onde SEU_INSTANCE_NAME é o nome da instância que você definiu (ou que o Docker gerou automaticamente se não especificado), NUMERO_DO_DESTINATARIO é o número de telefone completo com código do país, e SUA_API_KEY_SECRETA_AQUI é a chave que você definiu no seu docker-compose.yml.
Tabelas de Comparação: Evolution API vs. Outras Soluções
| Recurso | Evolution API (Self-Hosted) | WhatsApp Business API (Oficial Cloud) | Outras APIs Não Oficiais |
|---|---|---|---|
| Custo Inicial | Baixo (custo do servidor) | Variável (taxas por mensagem, setup) | Variável (serviços de terceiros) |
| Controle de Dados | Total | Limitado (Meta/Facebook) | Variável (depende do provedor) |
| Flexibilidade e Customização | Alta | Moderada | Variável |
| Complexidade de Setup | Média (requer conhecimento de servidor/Docker) | Alta (aprovação, configuração) | Baixa a Média |
| Risco de Bloqueio | Moderado (depende do uso e políticas do WhatsApp) | Baixo (oficial) | Alto (não suportado pelo WhatsApp) |
| Escalabilidade | Alta (depende da infraestrutura do servidor) | Muito Alta (gerenciado pela Meta) | Variável |
Erros Comuns e Soluções
Ao configurar a Evolution API, alguns problemas são recorrentes. Conhecê-los pode economizar muito tempo de depuração.
- Problema: Falha ao conectar o número do WhatsApp.
Solução: Verifique se as portas 8080 e 8000 estão abertas no firewall do seu VPS. Certifique-se de que o QR code gerado está sendo escaneado dentro do tempo limite e que o navegador usado para escanear está limpo (sem extensões que possam interferir). Verifique os logs da Evolution API para mensagens de erro detalhadas. - Problema: Webhooks não recebem mensagens.
Solução: Confirme se a URL do webhook está corretamente configurada na interface de gerenciamento da Evolution API e se ela aponta para o IP público do seu servidor e a porta correta (ex:http://seu-ip:8000/webhook). Certifique-se de que o container que recebe os webhooks está rodando e acessível. - Problema: API lenta ou não responde.
Solução: Verifique os recursos do seu servidor (CPU e RAM). Um VPS subdimensionado é a causa mais comum. Monitore o consumo de recursos comdocker stats. Considere um upgrade para um plano com mais RAM e CPU. - Problema: Múltiplas instâncias não funcionam juntas.
Solução: Verifique se a variávelMULTIPLE_INSTANCESestá definida comotrueno seudocker-compose.yml. Garanta que os volumes para persistência de dados (como sessões) estão configurados corretamente para cada instância, se necessário, ou use um banco de dados centralizado.
Perguntas Relacionadas (People Also Ask)
Aqui respondemos algumas dúvidas comuns que surgem durante o processo de implantação e uso da Evolution API.
Qual a diferença entre Evolution API e a API oficial do WhatsApp?
A principal diferença reside no modelo de hospedagem e controle. A Evolution API é uma solução self-hosted, onde você gerencia o servidor e a aplicação, oferecendo total flexibilidade. A API oficial do WhatsApp (WhatsApp Business Platform) é uma solução baseada em nuvem oferecida pela Meta, com aprovação e suporte oficial, mas com menos controle sobre a infraestrutura e potencial custo associado a cada mensagem enviada.
É seguro usar a Evolution API?
Sim, a Evolution API é considerada segura quando configurada corretamente. Ela utiliza os protocolos oficiais do WhatsApp para conexão (via navegador headless) e suas chaves de API protegem o acesso à sua instância. No entanto, a segurança da sua implementação depende da sua própria infraestrutura, como a proteção do seu VPS com firewall e a configuração de senhas fortes.
Posso usar a Evolution API com múltiplos números de WhatsApp?
Sim, a Evolution API suporta múltiplas instâncias, permitindo que você gerencie vários números de telefone em um único servidor. Isso é configurado através da variável MULTIPLE_INSTANCES=true no Docker Compose e definindo configurações específicas para cada número.
Quanto custa rodar a Evolution API?
O custo principal é o do servidor onde você irá hospedá-la. Planos VPS como o VPS Brasil Básico da Host You Secure, que oferece 4GB de RAM e 4 vCPUs a partir de R$ 99/mês, são um excelente ponto de partida. Além disso, pode haver custos associados a serviços adicionais como bancos de dados ou ferramentas de monitoramento, se você decidir utilizá-los.
Conclusão e Próximos Passos
Hospedar a Evolution API em um VPS Ubuntu com Docker é uma abordagem poderosa para quem busca uma solução de WhatsApp API flexível e escalável. Seguindo este guia, você terá um ambiente pronto para criar chatbots, automatizar mensagens e integrar o WhatsApp em seus sistemas de forma controlada.
A chave para o sucesso é um servidor bem dimensionado e uma configuração cuidadosa. Para começar, recomendo o plano VPS Brasil Básico da Host You Secure. Ele oferece 4GB de RAM e 4 vCPUs por apenas R$ 99/mês, sendo ideal para rodar esse exato setup da Evolution API com Docker. Você terá a performance necessária sem custos excessivos.
Comece hoje mesmo a automatizar suas comunicações no WhatsApp! Explore as possibilidades da Evolution API e leve seu atendimento e marketing para o próximo nível. Se precisar de ajuda com a configuração ou escolher o plano ideal, nossa equipe está à disposição.
Pronto para dar o próximo passo? Adquira seu VPS Brasil Básico e comece sua jornada de automação!
📦 Template n8n: Agente de IA com WhatsApp + Evolution API
Baixe o arquivo JSON pronto para importar: Webhook configurado, tratamento de remetente, nó de OpenAI e disparo via Evolution API.
FAQ: perguntas frequentes
Qual a versão mais recente da Evolution API e onde encontrar?
A Evolution API está em constante desenvolvimento. A imagem mais recente geralmente é a 'evolution-api/evolution-api:latest', que você pode encontrar e verificar no Docker Hub. É sempre recomendado usar a tag 'latest' para ter acesso às últimas funcionalidades e correções de bugs, mas em ambientes de produção críticos, pode ser prudente fixar uma versão específica para garantir estabilidade.
É possível usar a Evolution API sem Docker?
Sim, é possível instalar a Evolution API diretamente no sistema operacional (Node.js, etc.), mas o uso de Docker é fortemente recomendado. Docker simplifica o gerenciamento de dependências, isola a aplicação, facilita a escalabilidade e garante um ambiente de execução consistente, o que é crucial para a estabilidade em produção. O tutorial foca no método com Docker por ser mais prático e seguro.
Quais são os requisitos de hardware para rodar múltiplos números de WhatsApp na Evolution API?
Para rodar múltiplos números, a demanda por recursos aumenta. Recomendo um VPS com no mínimo 4GB de RAM e 4 vCPUs. Cada instância conectada ao WhatsApp consome recursos de memória e processamento. Monitorar o consumo via 'docker stats' é essencial. Um plano VPS com SSD é altamente recomendado para garantir a performance de I/O necessária para o banco de dados e logs.
Como configurar a autenticação segura para a Evolution API?
A autenticação é configurada através das variáveis de ambiente `API_KEY` e `API_SECRET` no seu `docker-compose.yml`. Sempre utilize chaves fortes e únicas, que não sejam fáceis de adivinhar. Guarde essas chaves em um local seguro e evite expô-las. Recomenda-se também proteger o acesso ao seu servidor VPS com um firewall robusto, limitando o acesso às portas necessárias apenas de IPs confiáveis.
O que são os 'volumes' no arquivo Docker Compose?
Volumes em Docker são mecanismos para persistir dados gerados e usados por containers Docker. No caso da Evolution API, os volumes `./data` e `./logs` garantem que suas sessões de WhatsApp e os arquivos de log não sejam perdidos caso o container seja reiniciado ou recriado. Eles mapeiam um diretório no seu host (VPS) para um diretório dentro do container, mantendo os dados mesmo que a imagem do container seja atualizada.
Como conectar a Evolution API com um chatbot ou sistema externo?
A conexão com sistemas externos é feita principalmente através de Webhooks. A Evolution API pode enviar notificações (eventos) para um URL configurado no seu sistema externo sempre que algo acontecer (ex: nova mensagem recebida). Seu sistema externo, por sua vez, pode usar a API REST da Evolution API para enviar mensagens de volta, gerenciar contatos, etc. Ferramentas como N8N são ótimas para orquestrar essas integrações.
Qual o risco de ter meu número bloqueado usando a Evolution API?
O risco existe, pois a Evolution API utiliza uma conexão que simula um navegador, não sendo uma API oficial sancionada pelo WhatsApp/Meta. O uso excessivo, o envio de spam, ou a conexão com múltiplos números em um mesmo IP podem aumentar esse risco. É crucial usar a ferramenta de forma ética e responsável, respeitando os termos de serviço do WhatsApp para minimizar a chance de bloqueio.
Como fazer backup das minhas configurações e sessões da Evolution API?
Como utilizamos volumes no Docker, o backup se torna mais simples. Basta fazer uma cópia dos diretórios mapeados pelos volumes no seu VPS (geralmente os diretórios `./data` e `./logs` que contêm as sessões e logs). Para uma solução mais robusta, especialmente se usar banco de dados como MongoDB, implemente rotinas de backup específicas para o banco de dados e copie os arquivos de configuração e logs periodicamente para um local seguro.
Comentários (5)
Excelente guia! Implementei para um cliente que tem 5000 contatos e agora consegue enviar mensagens em massa sem bloqueios. Será que isso funciona também com ambientes híbridos?
A separação de instâncias por processo e o uso de webhook assíncrono deixaram a Evolution API super estável aqui. Valeu pelo guia!
As dicas de retry e fallback foram essenciais para nosso sistema de notificações. Reduziu as falhas de entrega de 15% para 2%.
Muito bom ver conteúdo técnico de qualidade em português sobre Evolution API. As configurações de SSL/TLS estavam me dando dor de cabeça e você explicou perfeitamente.
Estava com problemas na escalabilidade do WhatsApp Business API até ler este artigo. As configurações de pool de conexões resolveram tudo! Em qual parte do artigo você recomenda começar para quem é iniciante?