Pular para o conteĆŗdo principal

Self-hosted (Auto-hospedado)

VisĆ£o Geral​

O que Ć© Self-hosted?​

Self-hosted significa que vocĆŖ instala e gerencia o n8n em sua própria infraestrutura – seja um servidor local, VPS, cloud ou Kubernetes.

Principais Vantagens​

  • Controle total - Sua infraestrutura, suas regras
  • Integração corporativa - VPNs, LDAP, redes privadas
  • Compliance - Dados nunca saem da sua rede
  • Personalização - Plugins customizados e extensƵes
  • Custo controlado - Sem cobranƧa por execução

Requisitos do Sistema​

  • Node.js: VersĆ£o 20.19 a 24.x (para instalação NPM)
  • Docker: VersĆ£o 20.10+ (recomendado)
  • Memória: MĆ­nimo 2GB RAM (4GB+ recomendado)
  • Armazenamento: 10GB+ de espaƧo livre
  • Rede: Acesso Ć  internet para downloads

MĆ©todos de Instalação​

Docker (Recomendado para Produção)​

Docker é a forma recomendada para instalar o n8n em produção pelos seguintes motivos:

  • Ambiente isolado: Cada instĆ¢ncia do n8n roda em seu próprio container, evitando conflitos com outras aplicaƧƵes
  • Facilita migraƧƵes: VocĆŖ pode mover facilmente entre servidores, clouds ou ambientes de desenvolvimento
  • Evita conflitos de dependĆŖncias: NĆ£o hĆ” interferĆŖncia com versƵes de Node.js, Python ou outras bibliotecas do sistema
  • ConsistĆŖncia entre sistemas: Funciona igualmente em Linux, Windows e macOS
  • Facilidade de backup: Todo o ambiente pode ser versionado e replicado
  • Escalabilidade: FĆ”cil de escalar horizontalmente com mĆŗltiplas instĆ¢ncias

Instalação BĆ”sica​

  1. Criar volume para persistĆŖncia de dados:
docker volume create n8n_data
  1. Executar o container:
docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  docker.n8n.io/n8nio/n8n
  1. Acessar o n8n:

Abra seu navegador e acesse:

http://localhost:5678

Configuração AvanƧada​

Para produção, configure variÔveis de ambiente essenciais:

docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  -e N8N_PROTOCOL=https \
  -e N8N_HOST=seu-dominio.com \
  -e GENERIC_TIMEZONE=America/Sao_Paulo \
  -e N8N_ENCRYPTION_KEY=sua_chave_32_caracteres \
  docker.n8n.io/n8nio/n8n

Docker Compose (Produção AvanƧada)​

Para ambientes de produção com banco de dados PostgreSQL e Redis:

Dica Pro

Para produção, sempre use Docker com PostgreSQL e Redis. Isso garante consistência, escalabilidade e facilidade de backup.

Arquivo docker-compose.yml​

Ver configuração completa

Crie um arquivo

docker-compose.yml
com o seguinte conteĆŗdo:

version: '3.8'

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - N8N_PROTOCOL=https
      - N8N_HOST=seu-dominio.com
      - GENERIC_TIMEZONE=America/Sao_Paulo
      - N8N_ENCRYPTION_KEY=sua_chave_32_caracteres
      - DB_TYPE=postgresdb
      - DB_POSTGRESDB_HOST=postgres
      - DB_POSTGRESDB_PORT=5432
      - DB_POSTGRESDB_DATABASE=n8n
      - DB_POSTGRESDB_USER=n8n
      - DB_POSTGRESDB_PASSWORD=senha_segura
      - REDIS_URL=redis://redis:6379
      - EXECUTIONS_PROCESS=main
      - EXECUTIONS_MODE=regular
    volumes:
      - n8n_data:/home/node/.n8n
    depends_on:
      - postgres
      - redis

  postgres:
    image: postgres:13
    restart: unless-stopped
    environment:
      - POSTGRES_DB=n8n
      - POSTGRES_USER=n8n
      - POSTGRES_PASSWORD=senha_segura
    volumes:
      - postgres_data:/var/lib/postgresql/data

  redis:
    image: redis:7-alpine
    restart: unless-stopped
    volumes:
      - redis_data:/data

volumes:
  n8n_data:
  postgres_data:
  redis_data:

Executar os ServiƧos​

Ver comandos
# Iniciar todos os serviƧos
docker-compose up -d

# Parar todos os serviƧos
docker-compose down

# Ver logs do n8n
docker-compose logs -f n8n

NPM (Node.js)​

Para instalação direta via npm:

Teste RĆ”pido​

Execute sem instalar para testar o n8n:

npx n8n

Instalação Global​

  1. Instalar o n8n:
npm install n8n -g
  1. Executar com configuraƧƵes:
N8N_PROTOCOL=https \
N8N_HOST=seu-dominio.com \
GENERIC_TIMEZONE=America/Sao_Paulo \
n8n start
Requisitos Node.js

n8n requer Node.js versão entre 20.19 e 24.x. Verifique sua versão com

node --version
.


Configuração​

VariĆ”veis de Ambiente​

As variÔveis de ambiente permitem personalizar as configurações do n8n quando executado em modo self-hosted. Você pode alterar configurações de servidor, banco de dados, segurança e performance através dessas variÔveis. Configure-as antes de iniciar o n8n para evitar reconfigurações desnecessÔrias.

ConfiguraƧƵes BƔsicas

Configure estas variÔveis de ambiente essenciais para o funcionamento do n8n em produção.

# ConfiguraƧƵes do servidor
N8N_PORT=5678
N8N_PROTOCOL=https
N8N_HOST=seu-dominio.com
GENERIC_TIMEZONE=America/Sao_Paulo

# Banco de dados PostgreSQL
DB_TYPE=postgresdb
DB_POSTGRESDB_HOST=localhost
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_DATABASE=n8n
DB_POSTGRESDB_USER=n8n
DB_POSTGRESDB_PASSWORD=senha_segura

# Redis para filas
REDIS_URL=redis://localhost:6379

# SeguranƧa
N8N_ENCRYPTION_KEY=sua_chave_32_caracteres
WEBHOOK_URL=https://seu-dominio.com/

# ExecuƧƵes
EXECUTIONS_PROCESS=main
EXECUTIONS_MODE=regular
ConfiguraƧƵes de SeguranƧa

Configure estas variÔveis para autenticação bÔsica e restrições de acesso.

# Autenticação bÔsica
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=senha_segura

# RestriƧƵes de acesso
N8N_BLOCK_ENV_ACCESS_IN_NODE=true
N8N_BLOCK_FILE_ACCESS_TO_N8N_FILES=true
N8N_SECURE_COOKIE=true
N8N_SAMESITE_COOKIE=strict

Configuração de SSL/HTTPS​

A configuração de SSL/HTTPS é essencial para ambientes de produção pois garante que todas as comunicações entre o navegador e o n8n sejam criptografadas, protegendo dados sensíveis, credenciais e workflows contra interceptação. Além da segurança bÔsica, o HTTPS previne ataques man-in-the-middle e garante a integridade das informações. A compatibilidade com webhooks e APIs externas é fundamental, pois a maioria dos serviços modernos exige conexões seguras. O HTTPS também habilita protocolos mais avançados como HTTP/2 e HTTP/3, que melhoram significativamente a performance. Para aplicações mobile e Progressive Web Apps (PWA), o HTTPS é obrigatório para funcionalidades como notificações push e acesso a recursos do dispositivo.

Com Nginx​

O Nginx atua como um proxy reverso que recebe todas as requisições HTTPS e as encaminha para o n8n rodando na porta 5678, gerenciando automaticamente a terminação SSL e os certificados. Esta configuração oferece flexibilidade total para personalizar headers de segurança, otimizar performance e implementar regras de roteamento específicas para seu ambiente de produção.

Ver configuração do Nginx

Crie um arquivo de configuração do Nginx:

server {
    listen 80;
    server_name seu-dominio.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name seu-dominio.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://localhost: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;
        
        # ConfiguraƧƵes de seguranƧa
        proxy_set_header X-Frame-Options DENY;
        proxy_set_header X-Content-Type-Options nosniff;
        proxy_set_header X-XSS-Protection "1; mode=block";
    }
}

Com Certbot (Lets Encrypt)​

O Certbot é uma ferramenta automatizada que simplifica significativamente a obtenção e renovação de certificados SSL gratuitos através do Let's Encrypt. Esta abordagem elimina a necessidade de gerenciar certificados manualmente, pois o Certbot configura automaticamente o Nginx e renova os certificados antes da expiração.

Ver comandos do Certbot
# Instalar Certbot
sudo apt install certbot python3-certbot-nginx

# Gerar certificado
sudo certbot --nginx -d seu-dominio.com

# Configurar renovação automÔtica
sudo crontab -e
# Adicionar: 0 12 * * * /usr/bin/certbot renew --quiet

Escalabilidade​

Configuração de Filas​

A configuração de filas com Redis é fundamental para ambientes de alta performance, pois permite que o n8n processe múltiplas execuções de workflows simultaneamente sem sobrecarregar o sistema. O Redis atua como um broker de mensagens que distribui as tarefas entre diferentes processos, garantindo melhor utilização de recursos e escalabilidade horizontal quando necessÔrio.

Ver comandos do Redis
# Instalar Redis
sudo apt install redis-server

# Configurar n8n para usar Redis
REDIS_URL=redis://localhost:6379
EXECUTIONS_PROCESS=main
EXECUTIONS_MODE=regular

Load Balancing​

O load balancing distribui o trÔfego entre múltiplas instâncias do n8n, garantindo alta disponibilidade e melhor performance durante picos de demanda. Esta configuração permite escalar horizontalmente adicionando mais servidores conforme necessÔrio, enquanto o balanceador de carga automaticamente direciona as requisições para a instância com menor carga.

Ver configuração de Load Balancing
upstream n8n_backend {
    server 127.0.0.1:5678;
    server 127.0.0.1:5679;
    server 127.0.0.1:5680;
}

server {
    listen 443 ssl;
    server_name seu-dominio.com;

    location / {
        proxy_pass http://n8n_backend;
        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;
    }
}

Kubernetes​

O Kubernetes oferece uma solução completa de orquestração de containers que automatiza o deployment, scaling e gerenciamento de múltiplas instâncias do n8n em um cluster distribuído. Esta abordagem garante alta disponibilidade através de auto-healing, load balancing automÔtico e facilita o gerenciamento de configurações complexas através de ConfigMaps e Secrets.

Ver configuração do Kubernetes
apiVersion: apps/v1
kind: Deployment
metadata:
  name: n8n
spec:
  replicas: 3
  selector:
    matchLabels:
      app: n8n
  template:
    metadata:
      labels:
        app: n8n
    spec:
      containers:
      - name: n8n
        image: docker.n8n.io/n8nio/n8n
        ports:
        - containerPort: 5678
        env:
        - name: N8N_PROTOCOL
          value: "https"
        - name: N8N_HOST
          value: "seu-dominio.com"
        - name: DB_TYPE
          value: "postgresdb"
        - name: DB_POSTGRESDB_HOST
          value: "postgres-service"

SeguranƧa​

A segurança é fundamental em ambientes de produção, pois protege dados sensíveis, credenciais e workflows contra acesso não autorizado. O n8n oferece múltiplas camadas de segurança que incluem autenticação bÔsica, OAuth2, configurações de firewall e restrições de acesso que devem ser configuradas adequadamente para cada ambiente.

Autenticação​

Basic Auth​

Ver configuração de Basic Auth
N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=senha_segura

OAuth2​

Ver configuração de OAuth2
N8N_OAUTH2_ACTIVE=true
N8N_OAUTH2_CLIENT_ID=seu_client_id
N8N_OAUTH2_CLIENT_SECRET=seu_client_secret
N8N_OAUTH2_AUTHORIZATION_URL=https://auth.provider.com/oauth/authorize
N8N_OAUTH2_TOKEN_URL=https://auth.provider.com/oauth/token

Firewall​

A configuração de firewall é essencial para controlar o acesso à instância do n8n, permitindo apenas conexões necessÔrias e bloqueando tentativas de acesso não autorizado. Esta camada adicional de segurança complementa a autenticação, garantindo que apenas IPs autorizados possam acessar a aplicação.

Ver configuração de Firewall
# Permitir apenas HTTPS
sudo ufw allow 443/tcp
sudo ufw allow 80/tcp
sudo ufw deny 5678/tcp

# Restringir acesso por IP
sudo ufw allow from 192.168.1.0/24 to any port 5678

Backup e Recuperação​

Script de Backup AutomĆ”tico​

Crie um arquivo

backup-n8n.sh
:

Ver script de backup
#!/bin/bash

DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/backups/n8n"
N8N_DATA="/home/node/.n8n"

# Criar backup dos dados
tar -czf $BACKUP_DIR/n8n_data_$DATE.tar.gz $N8N_DATA

# Backup do banco PostgreSQL
pg_dump -h localhost -U n8n n8n > $BACKUP_DIR/n8n_db_$DATE.sql

# Manter apenas Ćŗltimos 7 backups
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
find $BACKUP_DIR -name "*.sql" -mtime +7 -delete

Ā 

Agendar Backup​

# Adicionar ao crontab para backup diƔrio Ơs 2h
0 2 * * * /path/to/backup-n8n.sh
Importante

Mantenha sempre backups regulares dos dados e do banco de dados. Em caso de falha, vocĆŖ pode restaurar rapidamente.


Monitoramento​

Logs​

O monitoramento de logs é essencial para identificar problemas, auditar atividades e garantir a estabilidade do ambiente n8n. Utilizar logs detalhados facilita a detecção de falhas e o acompanhamento do comportamento do sistema em produção.

Ver comandos de logs
# Logs detalhados
N8N_LOG_LEVEL=debug n8n start

# Com Docker
docker logs -f n8n_container

# Rotação de logs
logrotate /etc/logrotate.d/n8n

Ā 

Health Check​

Crie um script

health-check.sh
:

Ver script de health check
#!/bin/bash

# Configurar n8n para habilitar health checks
# Adicione ao seu docker-compose.yml ou variƔveis de ambiente:
# QUEUE_HEALTH_CHECK_ACTIVE=true

URL="https://seu-dominio.com/healthz"
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" $URL)

if [ $RESPONSE -ne 200 ]; then
    echo "n8n não estÔ respondendo: $RESPONSE"
    docker restart n8n_container
else
    echo "n8n estƔ saudƔvel: $RESPONSE"
fi

AtualizaƧƵes​

Docker​

# Baixar nova imagem
docker pull docker.n8n.io/n8nio/n8n

# Parar e remover container atual
docker stop n8n_container
docker rm n8n_container

# Iniciar com nova imagem
docker run --name n8n_container [suas_opƧƵes] docker.n8n.io/n8nio/n8n

NPM​

# Atualizar para última versão
npm update -g n8n

# Instalar versão específica
npm install -g n8n@1.81.0

# Instalar versão next
npm install -g n8n@next

Reverter Atualização​

# Instalar versão anterior
npm install -g n8n@1.80.0

# Reverter migração do banco
n8n db:revert

Troubleshooting​

Problemas Comuns​

Porta em Uso​

# Verificar porta
netstat -tulpn | grep 5678

# Matar processo
sudo kill -9 \`

Migração para o Cloud​

Migração Sem Interrupção

Se você jÔ utiliza o n8n em modo self-hosted, é possível migrar seus workflows, credenciais e dados para o n8n Cloud de forma segura e sem interrupção dos processos. O n8n Cloud oferece infraestrutura gerenciada, backups automÔticos, escalabilidade e suporte dedicado, permitindo que você foque apenas na automação dos seus processos.

Principais benefícios da migração:

  • Zero downtime: migração sem parar workflows em produção
  • Backup automĆ”tico: seus dados ficam protegidos e disponĆ­veis
  • Suporte gerenciado: infraestrutura, atualizaƧƵes e seguranƧa sob responsabilidade do time n8n
  • Escalabilidade automĆ”tica: recursos ajustados conforme a demanda

Como migrar:

  1. Exporte seus workflows e credenciais do ambiente self-hosted pelo menu de exportação do n8n.
  2. Importe os arquivos exportados no painel do n8n Cloud.
  3. Teste os workflows no ambiente Cloud antes de desativar o ambiente self-hosted.
  4. Consulte a documentação oficial de migração para detalhes e dicas avançadas.

Se precisar de suporte durante a migração, entre em contato com o time do n8n Cloud ou acesse a comunidade.