Este projeto contém uma estrutura completa utilizando Docker Compose para gerenciar os serviços da plataforma n8n e Evolution API, integrados com PostgreSQL e Redis para persistência de dados e cache. Ele foi projetado para ser facilmente implantado na Railway, utilizando variáveis de ambiente da plataforma para uma configuração otimizada e segura.
-
n8n:
- Serviço principal responsável por gerenciar automações e workflows.
- Utiliza PostgreSQL como banco de dados e Redis para gerenciar filas.
- Inclui autenticação básica e suporte a execução em modo fila.
-
Evolution API:
- Serviço de API utilizado para integração e processamento de mensagens e dados.
- Configurado para compartilhar banco de dados e cache com o n8n.
-
PostgreSQL:
- Banco de dados relacional compartilhado entre n8n e Evolution API.
- Configurado para persistir todos os dados necessários das plataformas.
-
Redis:
- Serviço de cache usado tanto pelo n8n quanto pela Evolution API.
- Gerencia filas de execução e cache temporário para melhorar o desempenho.
-
Volumes:
n8n_data
: Persistência de dados do n8n.evolution_data
: Persistência de dados da Evolution API.postgres_data
: Persistência de dados do PostgreSQL.redis_data
: Persistência de dados do Redis.
-
Serviços:
- Cada serviço está configurado com variáveis de ambiente específicas para integração no Railway.
-
Conexões Compartilhadas:
- Banco de dados PostgreSQL e Redis são compartilhados entre o n8n e a Evolution API.
-
Clone este repositório para o seu ambiente local:
git clone <URL-DO-SEU-REPOSITORIO> cd <NOME-DO-REPOSITORIO>
-
Verifique se o arquivo
docker-compose.yml
está no diretório raiz do repositório. -
Confirme que o repositório contém o arquivo atualizado com as configurações necessárias.
-
Acesse o painel da Railway e crie um novo projeto.
-
Escolha a opção Deploy from GitHub.
-
Conecte a Railway ao repositório contendo o arquivo
docker-compose.yml
. -
Configure as seguintes variáveis de ambiente no painel da Railway:
POSTGRES_USER=n8n_admin
POSTGRES_PASSWORD=S3cur3P@ssw0rd!
POSTGRES_DB=n8n_agentsia_db
PGHOST=${{RAILWAY_TCP_PROXY_DOMAIN}}
PGHOST_PRIVATE=${{RAILWAY_PRIVATE_DOMAIN}}
PGPORT=${{RAILWAY_TCP_PROXY_PORT}}
PGPORT_PRIVATE=5432
REDIS_PASSWORD=S3cur3P@ssw0rd!
REDISUSER=default
REDISHOST=${{RAILWAY_TCP_PROXY_DOMAIN}}
REDISHOST_PRIVATE=${{RAILWAY_PRIVATE_DOMAIN}}
REDISPORT=${{RAILWAY_TCP_PROXY_PORT}}
REDISPORT_PRIVATE=6379
N8N_USER=admin
N8N_PASSWORD=adminpassword
N8N_ENCRYPTION_KEY=S3cur3P@ssw0rd!
WEBHOOK_URL=https://${{RAILWAY_PUBLIC_DOMAIN}}
AUTHENTICATION_API_KEY=d91f2743-1587-4967-b8f8-04cf1cc1dadd
WA_BUSINESS_TOKEN_WEBHOOK=evolution
WA_BUSINESS_URL=https://graph.facebook.com
WA_BUSINESS_VERSION=v20.0
WA_BUSINESS_LANGUAGE=pt_BR
- Após configurar as variáveis de ambiente, clique em Deploy no painel da Railway.
- Acompanhe os logs no painel para verificar se todos os serviços foram iniciados corretamente.
- Acesse o n8n no endereço gerado pela Railway (porta
5678
). - Verifique se a Evolution API está funcionando no endereço gerado (porta
8080
).
-
Infraestrutura Automatizada:
- Toda a configuração é gerenciada pelo
docker-compose.yml
, simplificando o processo de deploy.
- Toda a configuração é gerenciada pelo
-
Segurança:
- Uso de variáveis de ambiente para proteger credenciais e chaves de acesso.
-
Escalabilidade:
- Possibilidade de escalar serviços como Redis e PostgreSQL diretamente pelo painel da Railway.
-
Flexibilidade:
- Arquitetura compartilhada e modular, permitindo ajustes futuros com facilidade.
Se precisar de suporte ou ajustes adicionais, entre em contato ou consulte a documentação oficial dos serviços utilizados (n8n, Evolution API, PostgreSQL e Redis). Boa sorte com o deploy! 🚀