Visão Geral do n8n: Comparativo n8n Cloud vs. Self-Hosted — aula do módulo Setup & Instalação do n8n, na trilha Fundamentos do n8n & Arquitetura de Workflows…
Leitura de aproximadamente 6 minutos.
Módulo: Setup & Instalação do n8n · Curso: Fundamentos do n8n & Arquitetura de Workflows · Formação: Formação n8n: Automações Inteligentes & Workflows no-code/low-code
O n8n é uma plataforma de orquestração de fluxos de trabalho (workflow automation) com arquitetura baseada em eventos e modelo de licença fair-code (Sustainable Use License / Sustainable Use License v1.0). Diferente de ferramentas SaaS puramente proprietárias como Zapier ou Make, o n8n oferece liberdade completa para implantação em infraestrutura própria, mantendo paridade de funcionalidades com sua versão em nuvem gerenciada.
Na arquitetura de sistemas moderna, o n8n atua como a camada de integração de dados, automação de processos de negócio e orquestração de pipelines de Inteligência Artificial (agentes RAG, LLMs e ferramentas de linguagem).
+----------------------------------------------------------------------------------+
| ARQUITETURA N8N |
+----------------------------------------------------------------------------------+
| |
| [ Inbound Webhooks ] -----> [ Core Engine (Node.js) ] <----> [ Custom Code ] |
| | |
| v |
| [ Database (Postgres/SQLite) ] |
| | |
| [ External APIs ] <-----------------+-------------------> [ AI / LLM Nodes ] |
| |
+----------------------------------------------------------------------------------+
A escolha entre n8n Cloud (SaaS) e n8n Self-Hosted (On-Premise / VPS) afeta diretamente quatro pilares da sua engenharia:
1. Previsibilidade Financeira: O n8n Cloud cobra com base em número de execuções produtivas ativas por mês. O Self-Hosted possui custo computacional fixo (alocação de CPU/RAM em nuvem pública ou privada). 2. Conformidade e Privacidade (LGPD/GDPR): No Self-Hosted, os dados em trânsito e em repouso (payloads de requisições, credenciais, logs) nunca saem do seu perímetro de rede de VPC (Virtual Private Cloud). 3. Acesso e Conectividade de Rede: A versão Self-Hosted permite que os nós do n8n acessem diretamente bancos de dados internos (Postgres, MySQL, MongoDB) localizados atrás de firewalls e VPNs corporativas sem expor instâncias para a web pública. 4. Customização do Runtime: No Self-Hosted, você pode injetar bibliotecas npm personalizadas, binários de sistema (ex: ffmpeg, poppler-utils) e variáveis de ambiente no container do Docker.
| Critério | n8n Cloud | n8n Self-Hosted | | :--- | :--- | :--- | | Infraestrutura | Gerenciada pela n8n GmbH | Sua própria VPS, Bare-Metal ou Cluster K8s | | Custo | Baseado em tiers e limite de execuções | Fixo (Custo do servidor/provedor IaaS) | | Manutenção | Zero. Atualizações e backups automáticos | Manual (Gerenciamento de Docker, PostgreSQL e SSL) | | Volume de Execuções | Limitado conforme plano contratado | Ilimitado (restrito apenas pelo hardware da VPS) | | Acesso a Dados Internos | Requer pontes de rede públicas ou webhooks | Acesso direto a redes privadas (VPC / Docker Networks) | | Pacotes npm / Binários | Limitado aos padrões | Liberdade total via NODE_FUNCTION_ALLOW_EXTERNAL | | Conformidade LGPD | Subprocessador de dados terceirizado | Total controle do ciclo de vida do dado |
Para ambientes de produção Self-Hosted, a arquitetura mínima recomendada rejeita o banco de dados interno SQLite padrão e adota PostgreSQL dedicado, acompanhado de um proxy reverso para gerenciamento de SSL/TLS (como Traefik ou Nginx).
O manifesto abaixo ilustra a configuração pronta para produção de uma instância Self-Hosted utilizando Docker Compose e PostgreSQL.
version: '3.8'
services:
postgres:
image: postgres:16-alpine
restart: always
environment:
- POSTGRES_USER=n8n_user
- POSTGRES_PASSWORD=MinhaSenhaExtremamenteSegura123!
- POSTGRES_DB=n8n_production
volumes:
- postgres_storage:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U n8n_user -d n8n_production"]
interval: 5s
timeout: 5s
retries: 5
n8n:
image: docker.n8n.io/n8nio/n8n:latest
restart: always
ports:
- "5678:5678"
environment:
# Configuração de Banco de Dados
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n_production
- DB_POSTGRESDB_USER=n8n_user
- DB_POSTGRESDB_PASSWORD=MinhaSenhaExtremamenteSegura123!
# URL e Segurança
- N8N_HOST=n8n.suaempresa.com.br
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.suaempresa.com.br/
- N8N_ENCRYPTION_KEY=chave-criptografica-com-32-caracteres-minimo!
# Otimização de Performance e Logs
- EXECUTIONS_DATA_PRUNE=true
- EXECUTIONS_DATA_MAX_AGE=168 # Descarta logs com mais de 7 dias (168h)
- EXECUTIONS_DATA_PRUNE_MAX_COUNT=50000
- NODE_FUNCTION_ALLOW_EXTERNAL=lodash,axios,moment
links:
- postgres
depends_on:
postgres:
condition: service_healthy
volumes:
- n8n_storage:/home/node/.n8n
volumes:
postgres_storage:
n8n_storage:
Execute o provisionamento da pilha no terminal do seu servidor Linux:
# 1. Crie o diretório do projeto e entre nele
mkdir -p /opt/n8n-production && cd /opt/n8n-production
# 2. Crie o arquivo docker-compose.yml com a configuração descrita
nano docker-compose.yml
# 3. Suba os containers em modo deamon
docker compose up -d
# 4. Verifique se os serviços estão com status de 'healthy' e 'running'
docker compose ps
====================================================================================
FLUXO DE EXECUÇÃO: CLOUD VS SELF-HOSTED
====================================================================================
[ N8N CLOUD ]
Client Request ---> Cloud Load Balancer ---> Isolated SaaS Tenant ---> Cloud DB
|
(Contabiliza 1 execução)
------------------------------------------------------------------------------------
[ N8N SELF-HOSTED ]
Client Request ---> Reverse Proxy (Traefik/Nginx) ---> Docker Container (n8n Engine)
|
Local PostgreSQL Cluster
|
(0 custo adicional)
====================================================================================
1. N8N_ENCRYPTION_KEY: Chave utilizada para criptografar credenciais salvas (chaves de API, senhas de banco) na tabela do Postgres. Nunca altere ou perca esta chave após a primeira execução, ou todas as credenciais do ambiente ficarão corrompidas e irrecuperáveis. 2. Estratégia de Expurgo de Dados (EXECUTIONS_DATA_PRUNE): O n8n salva o payload de cada nó executado no banco. Em automações com alto tráfego (ex: centenas de milhares de webhooks/dia), a tabela execution_entity pode facilmente atingir centenas de Gigabytes, colapsando o disco se as variáveis de pruning não estiverem ativas.
SQLITE_BUSY: database is locked.deploy.resources.limits.memory: 2g).DB_TYPE=postgresdb.N8N_ENCRYPTION_KEY antes do primeiro deploy.EXECUTIONS_DATA_PRUNE=true e EXECUTIONS_DATA_MAX_AGE estão configuradas para evitar estouro de disco.WEBHOOK_URL disparando uma requisição POST com cURL.