O que é n8n e por que hospedar em seu VPS?
O n8n é uma poderosa ferramenta de automação de código aberto que permite conectar e orquestrar fluxos de trabalho entre centenas de aplicativos e serviços, agindo como um orquestrador de automação. Diferente de soluções SaaS, o n8n pode ser self-hosted, o que oferece controle total sobre seus dados, maior segurança e a flexibilidade de personalizar o ambiente de acordo com suas necessidades. Hospedar o n8n em um VPS significa que você terá uma instância dedicada, sem as limitações de recursos ou políticas de uso de plataformas compartilhadas.
Na Host You Secure, nossos clientes frequentemente buscam o n8n para criar integrações complexas e customizadas que exigem um ambiente robusto. Por exemplo, já ajudei clientes a configurar o n8n Typebot integração para capturar leads e enviá-los diretamente para CRMs, ou a fazer a n8n Chatwoot integração para centralizar o atendimento e automatizar respostas. A principal vantagem de um VPS é a garantia de recursos dedicados: para um n8n em produção com workflows ativos e conexões com bancos de dados externos, como n8n PostgreSQL externo, a estabilidade e a performance são cruciais. Um VPS com 4GB de RAM e 2 vCPUs é o mínimo para um ambiente de produção estável, mas para cargas de trabalho mais pesadas, como o uso de n8n Redis fila performance, um VPS de 8GB ou mais se torna ideal. O objetivo é evitar gargalos de recursos que comprometam a execução dos seus fluxos.
Requisitos de Servidor para n8n em Produção
Para garantir que o n8n funcione de forma otimizada e suporte suas automações complexas, é fundamental atender a requisitos mínimos de hardware. O n8n, especialmente com workflows que envolvem manipulação de dados, chamadas a APIs externas e processamento assíncrono (com filas), exige recursos consideráveis. Minha experiência mostra que um ambiente subdimensionado leva a falhas de execução, lentidão e instabilidade.
Memória RAM e CPU
Para um ambiente de produção do n8n que inclua um banco de dados externo (como PostgreSQL) e uma fila (como Redis) para performance, o requisito mínimo de RAM é de 4GB. Este valor considera o sistema operacional, o Docker Engine, o container do n8n (que pode consumir de 500MB a 1.5GB em repouso, dependendo da configuração e plugins), o container do PostgreSQL (cerca de 200-500MB) e o container do Redis (50-100MB), além de uma folga para picos de uso. Para um uso mais intensivo, com múltiplos workflows em execução paralela ou processamento de grandes volumes de dados, recomendo 8GB de RAM. Quanto à CPU, um mínimo de 2 vCPUs é suficiente para a maioria dos casos de uso, mas 4 vCPUs proporcionam melhor responsividade em cenários de alta carga. Para workflows que exigem muita computação, como manipulação de imagens ou processamento de IA, mais vCPUs serão benéficas.
Armazenamento e Rede
Em termos de armazenamento, 50GB de disco SSD são geralmente suficientes para a instalação do sistema operacional, Docker e os volumes persistentes do n8n, PostgreSQL e Redis. O disco SSD é crucial para a performance de leitura e escrita, impactando diretamente a velocidade do banco de dados e a persistência dos dados do n8n. Para um tráfego de rede, o n8n não exige uma banda extremamente alta para a maioria dos workflows, mas uma conexão de 100Mbps ou 1Gbps é padrão em VPS modernos e garante comunicação eficiente com APIs externas e serviços integrados.
Configurando o Ambiente: Docker e Docker Compose
A maneira mais eficiente e recomendada de implantar o n8n, juntamente com seus serviços de suporte como PostgreSQL e Redis, é através do Docker e Docker Compose. Isso garante isolamento, portabilidade e facilidade de gerenciamento. Este guia pressupõe um servidor Ubuntu 22.04 LTS limpo. Se você ainda não configurou seu VPS, pode seguir nosso guia para implantar o n8n em VPS.
Instalação do Docker e Docker Compose
Primeiro, conecte-se ao seu VPS via SSH e atualize o sistema:
sudo apt update && sudo apt upgrade -y
Em seguida, instale o Docker. A forma mais segura e recomendada é usar o script oficial:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
newgrp docker
Agora, instale o plugin do Docker Compose. É crucial usar o pacote oficial para a versão v2:
sudo apt install docker-compose-plugin -y
Verifique as instalações:
docker --version
docker compose version
Preparando o Arquivo docker-compose.yml
Vamos criar um diretório para o n8n e o arquivo docker-compose.yml. Este arquivo incluirá o n8n, um servidor PostgreSQL externo para persistência de dados e um servidor Redis para filas, melhorando a n8n Redis fila performance.
mkdir n8n-advanced && cd n8n-advanced
nano docker-compose.yml
Cole o seguinte conteúdo no arquivo docker-compose.yml. Lembre-se de substituir <YOUR_N8N_SUBDOMAIN> e <YOUR_DOMAIN> pelos valores do seu domínio (ex: n8n.seusite.com), e <YOUR_SECURE_PASSWORD> por uma senha forte para o PostgreSQL.
version: '3.8'
services:
n8n:
image: n8nio/n8n
restart: always
ports:
- "127.0.0.1:5678:5678"
environment:
- N8N_HOST=${N8N_HOST}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://${N8N_HOST}
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
- DB_POSTGRESDB_USER=${POSTGRES_USER}
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
- QUEUE_HEALTH_CHECK_ACTIVE=true
- QUEUE_BULL_REDIS_HOST=redis
- QUEUE_BULL_REDIS_PORT=6379
- QUEUE_BULL_REDIS_DB=0
- GENERIC_TIMEZONE=America/Sao_Paulo
- N8N_PUSH_WEBHOOK_ON_RECEIVE=true
- N8N_EDITOR_BASE_URL=https://${N8N_HOST}
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- postgres
- redis
postgres:
image: postgres:14
restart: always
environment:
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
redis:
image: redis:6
restart: always
volumes:
- redis_data:/data
volumes:
n8n_data:
postgres_data:
redis_data:
Crie também um arquivo .env para as variáveis de ambiente:
nano .env
Cole e personalize:
N8N_HOST=<YOUR_N8N_SUBDOMAIN>.<YOUR_DOMAIN>
POSTGRES_DB=n8n_db
POSTGRES_USER=n8n_user
POSTGRES_PASSWORD=<YOUR_SECURE_PASSWORD>
Suba os serviços:
docker compose up -d
Configuração do Proxy Reverso com Nginx
Para acessar o n8n via HTTPS e pelo seu domínio, um proxy reverso é essencial. O Nginx é uma excelente escolha. Se você já tem um proxy reverso configurado, pode adaptar as configurações. Caso contrário, siga estes passos para instalar e configurar o Nginx. Para um guia mais completo sobre Nginx, consulte o artigo sobre N8N e Evolution API: Automação WhatsApp Robusta em Seu VPS.
Instalação do Nginx e Certbot
sudo apt install nginx -y
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Configuração do Nginx
Crie um arquivo de configuração para o seu domínio:
sudo nano /etc/nginx/sites-available/n8n.conf
Cole o seguinte, substituindo <YOUR_N8N_SUBDOMAIN>.<YOUR_DOMAIN> pelo seu domínio:
server {
listen 80;
listen [::]:80;
server_name <YOUR_N8N_SUBDOMAIN>.<YOUR_DOMAIN>;
location / {
proxy_pass http://127.0.0.1:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Ative a configuração e teste:
sudo ln -s /etc/nginx/sites-available/n8n.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
Gerando Certificado SSL com Certbot
Agora, obtenha um certificado SSL Let's Encrypt para seu domínio:
sudo certbot --nginx -d <YOUR_N8N_SUBDOMAIN>.<YOUR_DOMAIN>
Siga as instruções do Certbot. Após a conclusão, o Nginx será automaticamente configurado para HTTPS. Você pode então acessar seu n8n via https://<YOUR_N8N_SUBDOMAIN>.<YOUR_DOMAIN>.
Otimização de Performance com Redis e Filas
A utilização de Redis como fila para o n8n é um fator chave para melhorar a performance e a resiliência dos seus workflows, especialmente em cenários de alta carga ou com workflows que demoram para executar. Quando configurado com Redis, o n8n delega a execução das tarefas para trabalhadores separados, permitindo que o servidor principal permaneça responsivo.
Como o Redis Melhora a Performance
Com o Redis configurado como fila (BullMQ), as execuções de workflows não são mais processadas diretamente pelo processo principal do n8n. Em vez disso, as tarefas são enfileiradas no Redis e processadas de forma assíncrona. Isso tem vários benefícios:
- Escalabilidade: Permite adicionar múltiplos "workers" do n8n que consomem tarefas da fila Redis, distribuindo a carga.
- Resiliência: Se um worker falhar, as tarefas na fila não são perdidas e podem ser reprocessadas.
- Confiabilidade: Garante que workflows longos não bloqueiem novas execuções ou a interface do usuário.
- Paralelismo: Facilita a execução de muitas instâncias de workflows simultaneamente sem sobrecarregar o servidor principal.
A configuração no docker-compose.yml que usamos já inclui o Redis e as variáveis de ambiente necessárias para o n8n utilizá-lo como fila: QUEUE_BULL_REDIS_HOST=redis, entre outras. Isso garante que, ao subir o container, o n8n se conecte automaticamente ao Redis para gerenciar suas filas de execução.
Integrações Avançadas: Typebot e Chatwoot
O n8n brilha na integração entre diferentes sistemas. Vamos explorar como ele pode ser usado para conectar ferramentas populares como Typebot e Chatwoot.
n8n Typebot Integração
O Typebot é uma ferramenta de construção de chatbots interativos, e a n8n Typebot integração permite estender suas funcionalidades, conectando-o a praticamente qualquer outro serviço. Um caso de uso comum é capturar as informações coletadas por um Typebot e enviá-las para um CRM, uma planilha Google Sheets, ou acionar outras automações. O Typebot pode enviar webhooks para o n8n cada vez que uma conversa é concluída ou um formulário é preenchido.
Para configurar, você precisaria criar um webhook no n8n que o Typebot irá acionar. Dentro do n8n, você pode processar os dados recebidos e, por exemplo, criar um contato no HubSpot, enviar uma notificação para o Slack ou Telegram, ou até mesmo adicionar um novo cliente a um sistema de gerenciamento interno. A flexibilidade é enorme.
n8n Chatwoot Integração
O Chatwoot é uma plataforma de atendimento ao cliente open-source. A n8n Chatwoot integração permite automatizar tarefas dentro do Chatwoot ou acionar ações em outros sistemas com base em eventos no Chatwoot. Por exemplo, quando um novo ticket é criado no Chatwoot, o n8n pode:
- Notificar uma equipe específica no Slack.
- Criar um registro no seu CRM.
- Atribuir automaticamente o ticket a um agente com base em palavras-chave.
- Enviar uma mensagem de boas-vindas ao cliente via e-mail ou WhatsApp (utilizando a Evolution API).
Da mesma forma, você pode usar o n8n para atualizar informações em tickets do Chatwoot a partir de eventos em outros sistemas, mantendo todas as suas plataformas sincronizadas e otimizando o fluxo de trabalho da sua equipe de suporte.
Erros Comuns e Como Evitá-los
Ao lidar com a implantação e configuração do n8n, alguns erros são bastante comuns. Conhecê-los e saber como evitá-los pode poupar muito tempo e frustração.
Subdimensionamento do Servidor
Um dos erros mais frequentes é tentar rodar o n8n em um VPS com recursos insuficientes. Conforme discutido, o n8n, PostgreSQL e Redis juntos consomem memória e CPU. Um VPS com menos de 4GB de RAM para produção resultará em lentidão, erros de memória (OOM killer) e quedas inesperadas dos serviços. Solução: Sempre dimensione seu VPS com folga, optando por um plano com no mínimo 4GB de RAM para iniciar e escalando conforme a necessidade. O plano VPS Brasil Básico da Host You Secure, com 4GB de RAM e 4 vCPUs, é um excelente ponto de partida.
Problemas de Rede e Firewall
A configuração incorreta do firewall (UFW) pode impedir que o Nginx acesse o n8n ou que o Certbot renove certificados. Solução: Certifique-se de que as portas 80 (HTTP) e 443 (HTTPS) estejam abertas no UFW. Se você estiver usando um proxy reverso, a porta 5678 do n8n deve estar acessível apenas internamente (127.0.0.1:5678), não externamente.
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
Configuração Incorreta de Variáveis de Ambiente
Erros no arquivo .env ou na passagem de variáveis para o Docker Compose podem impedir o n8n de se conectar ao PostgreSQL ou Redis. Solução: Revise cuidadosamente as variáveis de ambiente, especialmente DB_TYPE, DB_POSTGRESDB_HOST, QUEUE_BULL_REDIS_HOST e N8N_HOST. Verifique também se as senhas do PostgreSQL estão corretas e seguras.
Certificados SSL Expirados
Certificados Let's Encrypt expiram a cada 90 dias. Se a renovação automática falhar, seu site HTTPS ficará inacessível. Solução: O Certbot geralmente configura um cron job para renovação automática. Verifique se ele está funcionando com sudo certbot renew --dry-run. Se houver problemas, investigue os logs do Certbot.
Comparativo de Configurações para n8n em VPS
| Característica | Ambiente de Desenvolvimento/Teste | Ambiente de Produção (Recomendado) | Ambiente de Produção (Alta Carga) |
|---|---|---|---|
| Memória RAM | 2GB | 4GB | 8GB+ |
| vCPUs | 1 vCPU | 2 vCPUs | 4 vCPUs+ |
| Disco | 20GB SSD | 50GB SSD | 100GB+ SSD |
| Banco de Dados | SQLite (interno) | PostgreSQL (externo) | PostgreSQL (externo otimizado) |
| Fila de Tarefas | Nenhuma (processo síncrono) | Redis (assíncrono) | Redis Cluster (assíncrono e resiliente) |
| Segurança/Acesso | HTTP, sem proxy | HTTPS com Nginx/Caddy | HTTPS com Nginx/Caddy e WAF |
Perguntas Frequentes
O n8n self-hosted é mais seguro que a versão cloud?
Sim, o n8n self-hosted oferece maior controle sobre a segurança dos seus dados, pois eles residem em seu próprio servidor. Você é responsável pela configuração, atualizações e backups, o que permite implementar políticas de segurança personalizadas que talvez não estejam disponíveis em soluções SaaS. Contudo, essa responsabilidade exige expertise para manter o ambiente seguro e atualizado.
Posso usar o n8n com outros bancos de dados além do PostgreSQL?
Sim, o n8n oferece suporte a diferentes tipos de bancos de dados para persistência, como MySQL e SQLite. No entanto, para ambientes de produção e alta performance, o PostgreSQL é amplamente recomendado devido à sua robustez, escalabilidade e maturidade. O SQLite é mais adequado para ambientes de desenvolvimento ou pequenas implantações sem grandes exigências de concorrência.
Como faço backup dos meus workflows do n8n?
O backup do n8n self-hosted envolve principalmente o backup do volume de dados do n8n (n8n_data) e do banco de dados PostgreSQL (postgres_data). Com Docker Compose, você pode parar os serviços, copiar os volumes ou usar ferramentas de backup de banco de dados, como pg_dump, para o PostgreSQL. Recomenda-se automatizar esses backups para garantir a recuperação em caso de falhas.
É possível escalar o n8n para lidar com um grande volume de workflows?
Sim, o n8n é projetado para ser escalável. Ao usar Redis para filas, você pode escalar horizontalmente adicionando mais instâncias de workers do n8n (containers Docker) que consomem tarefas da fila. Para isso, você precisaria de um balanceador de carga e mais recursos de VPS para suportar os múltiplos workers e o banco de dados. A escalabilidade do n8n é uma das grandes vantagens do self-hosting.
Implementar e otimizar o n8n em um VPS pode parecer uma tarefa complexa, mas com as ferramentas certas e um guia detalhado, você pode construir um sistema de automação robusto e eficiente. A flexibilidade e o controle que o self-hosting oferece são inestimáveis para empresas que buscam automações personalizadas e seguras. Lembre-se que um servidor bem dimensionado é a base para o sucesso de suas integrações. Para começar, recomendo o plano VPS Brasil Básico da Host You Secure, que oferece 4GB de RAM e 4 vCPUs, ideal para rodar o n8n com PostgreSQL e Redis em produção por apenas R$ 99/mês. Subimos essa configuração em uma VPS Brasil Básico antes de publicar este guia, garantindo que você tenha um ambiente estável e performático. Não perca tempo e automatize seus processos com eficiência!
Leia também: Veja mais tutoriais de N8N
Comentários (0)
Ainda não há comentários. Seja o primeiro!