Visão Geral do n8n: Comparativo n8n Cloud vs. Self-Hosted

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

Visão Geral do n8n: Comparativo n8n Cloud vs. Self-Hosted

Contexto e Fundamentos

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 ]   |
|                                                                                  |
+----------------------------------------------------------------------------------+

Por que a decisão de implantação é crítica?

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.

Comparativo Técnico Detalhado

| 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 |

Implementação Prática e Exemplos

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).

Arquitetura de Implantação Self-Hosted (Docker Compose)

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:

Comandos de Inicialização do Ambiente

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

Comparativo de Execução e Modos de Operação


====================================================================================
                        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)
====================================================================================

Pontos Críticos de Arquitetura no Self-Hosted

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.

Armadilhas Comuns e Boas Práticas de Produção

1. Uso de SQLite em Ambientes de Produção (Self-Hosted)

2. Polling Nodes no n8n Cloud

3. Falta de Restrição de Memória do Container

Checklist Prático de Fixação

Outras aulas do módulo