Se você está buscando criar fluxos de automação robustos com integrações poderosas de API, este tutorial é para você! Neste artigo, vamos configurar um ambiente local completo com n8n, Evolution API, PostgreSQL, Redis, Ngrok e Adminer, utilizando Docker e Docker Compose.
💡 Este artigo acompanha um vídeo tutorial completo no YouTube:
🎥 Como instalar o N8N e Evolution API localmente
🔧 Pré-requisitos
Antes de iniciar, você precisa ter os seguintes itens instalados na sua máquina:
- Docker
- Docker Compose
- Uma conta gratuita no Ngrok para expor o n8n publicamente
🚀 Passo a Passo para Instalação
1. Clone o Repositório
Repositório Utilizado: Aqui
https://github.com/zaniniii/n8n-evoapi-ngrok
git clone https://github.com/seu-usuario/seu-repositorio.git
cd seu-repositorio
2. Crie uma Conta no Ngrok
- Acesse ngrok.com e crie sua conta.
- Após o login, vá até o painel e copie seu Authtoken.
3. Configure o Arquivo .env
Crie um arquivo .env
na raiz do projeto (ou copie de um .env.example
, se houver) com as seguintes configurações:
# PostgreSQL
POSTGRES_USER=postgres
POSTGRES_PASSWORD=senha_postgres
POSTGRES_DB=app_db
# n8n
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=usuario
N8N_BASIC_AUTH_PASSWORD=senha
DB_TYPE=postgresdb
DB_POSTGRESDB_HOST=postgres
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_USER=${POSTGRES_USER}
DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
# Evolution API
AUTHENTICATION_API_KEY=SUA_KEY
DATABASE_ENABLED=true
DATABASE_PROVIDER=postgresql
DATABASE_CONNECTION_URI=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?schema=public
DATABASE_CONNECTION_CLIENT_NAME=evolution_exchange
DATABASE_SAVE_DATA_INSTANCE=true
DATABASE_SAVE_DATA_NEW_MESSAGE=true
DATABASE_SAVE_MESSAGE_UPDATE=true
DATABASE_SAVE_DATA_CONTACTS=true
DATABASE_SAVE_DATA_CHATS=true
DATABASE_SAVE_DATA_LABELS=true
DATABASE_SAVE_DATA_HISTORIC=true
# Redis
CACHE_REDIS_ENABLED=true
CACHE_REDIS_URI=redis://redis:6379/6
CACHE_REDIS_PREFIX_KEY=evolution
CACHE_REDIS_SAVE_INSTANCES=false
# Cache local
CACHE_LOCAL_ENABLED=false
⚠️ Importante:
- Substitua
SUA_KEY
por sua chave de API pessoal para o Evolution API. - No arquivo
ngrok.yml
, configure oauthtoken
com o valor obtido no site do Ngrok. - Ajuste as credenciais (
POSTGRES_PASSWORD
,N8N_BASIC_AUTH_USER
,N8N_BASIC_AUTH_PASSWORD
) para valores seguros.
4. Suba os Serviços
Na raiz do projeto, execute:
docker-compose up -d
Isso irá iniciar os seguintes serviços:
Serviço | Porta | Descrição |
---|---|---|
n8n | 5678 | Ferramenta de automação de fluxos |
PostgreSQL | 5432 | Banco de dados principal |
Evolution API | 8080 | API para integração de mensagens |
Ngrok | 4040 | Túnel para expor o n8n publicamente |
Redis | 6380 | Cache para o Evolution API |
Adminer | 8081 | Interface web para gerenciar o PostgreSQL |
✅ Verificando os Serviços
- n8n: Acesse http://localhost:5678 com as credenciais do
.env
- Evolution API: http://localhost:8080
- Adminer: http://localhost:8081
- Servidor:
postgres
- Usuário:
postgres
- Senha: definida no
.env
- Servidor:
- Ngrok Dashboard: http://localhost:4040
🔄 Atualizando os Webhooks com o Ngrok
Como o Ngrok gera uma URL nova a cada inicialização, é necessário atualizar os webhooks sempre que reiniciar os serviços.
Para atualizar:
- Acesse http://localhost:4040
- Copie a nova URL (ex:
https://abcd-1234.ngrok.io
) - Atualize essa URL nos:
- Webhooks do n8n
- Configurações da Evolution API
- Qualquer serviço externo que a utilize
⏹️ Parando os Serviços
- Para parar os serviços:
docker-compose down
- Para parar e remover os volumes (limpar os dados):
docker-compose down -v
📦 Estrutura dos Serviços
- n8n: Automação de fluxos com integração direta ao PostgreSQL
- Evolution API: Gerencia troca de mensagens com suporte a cache e banco de dados
- PostgreSQL: Armazena os dados persistentes
- Redis: Gerencia o cache da Evolution API
- Ngrok: Fornece URL pública temporária para o n8n
- Adminer: Interface web simples para gerenciar o banco
📝 Notas Finais
- Certifique-se de que as portas utilizadas estejam livres na sua máquina
- O Ngrok gratuito gera URLs temporárias. Se quiser uma URL fixa, considere planos pagos ou outras soluções de túnel (como LocalTunnel)
- Nunca compartilhe seu
.env
publicamente — ele contém credenciais sensíveis
Se você gostou deste tutorial, não esqueça de conferir o vídeo completo:
Se quiser, posso formatar isso como um artigo em Markdown, HTML ou até gerar um PDF. Quer que eu faça isso pra você?