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ā
- Criar volume para persistĆŖncia de dados:
docker volume create n8n_data
- Executar o container:
docker run -it --rm \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
- 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:
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ā
- Instalar o n8n:
npm install n8n -g
- Executar com configuraƧƵes:
N8N_PROTOCOL=https \
N8N_HOST=seu-dominio.com \
GENERIC_TIMEZONE=America/Sao_Paulo \
n8n start
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
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ā
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:
- Exporte seus workflows e credenciais do ambiente self-hosted pelo menu de exportação do n8n.
- Importe os arquivos exportados no painel do n8n Cloud.
- Teste os workflows no ambiente Cloud antes de desativar o ambiente self-hosted.
- 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.