- Docker Swarm + Portainer + Traefik (SSL automatico)
- PostgreSQL 16 + Redis 7
- n8n v2 completo (editor + webhook + worker) em modo queue
- pgAdmin 4 para administracao do banco
- Todas as redes, volumes e configuracoes necessarias
git clone <url-do-repositorio>
cd rdd-n8n
chmod +x install-simple.sh
sudo ./install-simple.shsudo ./setup-smtp.sh- Email do administrador: seu-email@exemplo.com
- Dominio principal: exemplo.com
- Nome do banco [ENTER = n8n]: nome_do_banco (opcional)
- Senha do PostgreSQL [ENTER = auto-gerar]: senha (opcional)
- Receber credenciais por email [ENTER = Sim]: Y/n (se SMTP configurado)
Recomendado: Tecle ENTER em tudo para usar os padroes
Tudo instalado automaticamente sem perguntas adicionais.
Aponte os dominios para o IP do seu servidor:
fluxos.SEU-DOMINIO.com -> IP_DO_SERVIDOR
webhook.SEU-DOMINIO.com -> IP_DO_SERVIDOR
traefik.SEU-DOMINIO.com -> IP_DO_SERVIDOR (opcional)
Nota: pgAdmin nao precisa de DNS, acesso direto via IP:4040
- Editor: https://fluxos.SEU-DOMINIO.com
- Webhook: https://webhook.SEU-DOMINIO.com
- Credenciais: Mostradas no final da instalacao (salvas em
.env)
- URL: https://IP_DO_SERVIDOR:9443
- Primeiro acesso: Defina senha do admin (10 minutos apos instalacao)
- Funcao: Monitorar containers e servicos
- URL: https://traefik.SEU-DOMINIO.com
- Login: admin / senha_gerada_automaticamente
- Funcao: Monitoramento do proxy reverso e SSL
- URL: http://IP_DO_SERVIDOR:4040
- Login: mesmo email da instalacao / senha_gerada_automaticamente
- Funcao: Interface web para administracao do PostgreSQL
- Interacao: 60-90 segundos (responder perguntas)
- Instalacao: ~5 minutos (automatica)
- Aguardar servicos: ~2 minutos adicionais
Total: ~8 minutos do inicio ao acesso
- Configuracao externa: Credenciais SMTP fora do codigo fonte
- Arquivo protegido:
/etc/n8n-installer/smtp.confcom permissoes 600 - Fallback inteligente: Se email falhar, exibe na tela
- Backup local: Arquivo
.envsempre mantido como backup
sudo ./setup-smtp.sh- Se SMTP configurado: pergunta se quer email
- Se SMTP nao configurado: apenas credenciais na tela
- Credenciais sempre exibidas na tela tambem
- Arquivo
.envsempre salvo localmente
sudo mkdir -p /etc/n8n-installer
sudo tee /etc/n8n-installer/smtp.conf > /dev/null <<EOF
SMTP_API_TOKEN=sua_chave_api_aqui
SMTP_API_URL=https://api.smtplw.com.br/v1/messages
EOF
sudo chmod 600 /etc/n8n-installer/smtp.confsudo ./update-n8n.sh- Atualiza n8n para qualquer versao 2.x disponivel
- Busca versoes automaticamente no Docker Hub
- Interface interativa com selecao por menu
- Backup automatico dos arquivos YAML
- Deploy sequencial otimizado (Editor -> Webhook -> Worker)
- Validacao de imagens antes da atualizacao
sudo ./upgrade-n8n-v2.sh- Migra instalacoes n8n 1.x para v2
- Backup automatico do banco PostgreSQL
- Migracao de YAMLs (queue -> queue-v2)
- Validacao de imagem e health checks
sudo ./rollback-n8n-v2.sh- Reverte upgrade v2 em caso de falha
- Restaura YAMLs e banco PostgreSQL do backup
sudo ./update-ssl.sh- Configura certificados Let's Encrypt automaticamente
- Atualiza Traefik com resolver SSL
- Redeploy de todos os servicos com certificados
- Certificados automaticos para todos os dominios
sudo ./setup-smtp.sh- Configura credenciais para envio de email
- Cria arquivo seguro
/etc/n8n-installer/smtp.conf - Necessario apenas uma vez por servidor
sudo ./backup.sh- Backup do banco de dados n8n (pg_dump comprimido)
- Backup das variaveis de ambiente (.env e smtp.conf)
- Backup da configuracao dos servicos n8n em execucao (Docker)
- Na primeira execucao, sugere configurar backup automatico diario via cron
- Escolha o horario do backup (padrao: 02:00 da madrugada)
- Retencao automatica dos ultimos 15 backups
- Log de cada execucao em
backups/logs/ - Nas execucoes seguintes, mostra status do cron e resultado do ultimo backup
- Para restaurar:
docker exec -i CONTAINER pg_restore -U postgres -d DATABASE --clean < n8n_backup.dump
./debug.sh- Verifica status do Docker Swarm
- Lista nodes, redes, volumes e stacks
- Mostra logs dos servicos
./cleanup.sh- Remove stacks principais (traefik, portainer)
- Limpa sistema Docker
- Desativa Docker Swarm
sudo ./uninstall.sh- Remove todos os stacks e servicos
- Apaga volumes (DADOS PERDIDOS!)
- Desativa Docker Swarm
- Remove redes overlay
- Mantem backup do
.env
Todas as configuracoes ficam salvas no arquivo .env:
DOMAIN=seu-dominio.com
DATABASE=n8n
DATABASE_PASSWORD=senha_gerada_automaticamente
N8N_ENCRYPTION_KEY=chave_gerada_automaticamente
POSTGRES_PASSWORD=senha_gerada_automaticamente
INITIAL_ADMIN_EMAIL=seu@email.com
INITIAL_ADMIN_PASSWORD=senha_gerada_automaticamente
TRAEFIK_ADMIN_PASSWORD=senha_gerada_automaticamente
TRAEFIK_ADMIN_HASH=hash_gerado_automaticamente
PGADMIN_ADMIN_PASSWORD=senha_gerada_automaticamente
EDITOR_URL=https://fluxos.seu-dominio.com
WEBHOOK_URL=https://webhook.seu-dominio.com# Ver status dos servicos
docker service ls
# Monitorar containers em tempo real
docker-ctop
# Ver logs de um servico especifico
docker service logs nome_do_servico
# Ver stacks instalados
docker stack ls
# Carregar variaveis do .env
source .env
# Script de diagnostico completo
./debug.sh# Corrigir permissoes e quebras de linha
sed -i 's/\r$//' *.sh
chmod +x *.sh# Diagnostico completo
./debug.sh
# Ver logs especificos
docker service logs postgres_postgres
docker service logs n8n_editor_n8nv2_editor_ip2- Verifique se o DNS esta configurado
- Aguarde ~2 minutos para todos os servicos subirem
- Verifique no Portainer se todos estao rodando
Se ao digitar no terminal aparecem mensagens como br0: port X entered blocking state, device veth entered promiscuous mode, etc., o kernel esta despejando logs de rede no console. Para resolver:
# Aplicar imediatamente
sudo sysctl -w kernel.printk="3 4 1 3"
# Persistir apos reboot
echo "kernel.printk = 3 4 1 3" | sudo tee -a /etc/sysctl.confNota: Novas instalacoes ja incluem essa correcao automaticamente.
# Verificar se esta rodando
docker service ls | grep portainer
# Resetar timeout (10 minutos novos)
docker service scale portainer_portainer=0
sleep 3
docker service scale portainer_portainer=1
# Reinstalar se necessario
docker stack deploy -c portainer/portainer.yaml portainer./cleanup.shsudo ./uninstall.sh# Apos desinstalar, reinstale com:
sudo ./install-simple.sh- OS: Debian/Ubuntu (64-bit)
- RAM: Minimo 4GB (recomendado 8GB+)
- CPU: 2 core (recomendado 2+ cores)
- Disco: 50GB+ livres
- Usuario: root ou sudo
- Dominio: Um dominio valido configurado
fluxos.SEU-DOMINIO.com -> IP_DO_SERVIDOR
webhook.SEU-DOMINIO.com -> IP_DO_SERVIDOR
traefik.SEU-DOMINIO.com -> IP_DO_SERVIDOR (opcional)
sudo ./update-ssl.sh- Configura certificados Let's Encrypt automaticamente
- Aguarde ~2 minutos para emissao dos certificados
Os servicos precisam de um tempo para inicializar completamente.
- URL: https://fluxos.SEU-DOMINIO.com
- Use as credenciais mostradas no final da instalacao
- URL: https://IP_DO_SERVIDOR:9443
- Crie senha do admin no primeiro acesso
- IMPORTANTE: Acesse em ate 10 minutos apos instalacao
- URL: http://IP_DO_SERVIDOR:4040
- Login: email da instalacao / senha gerada automaticamente
Se voce ja tem o projeto instalado e quer atualizar os scripts para a versao mais recente:
# Entrar na pasta do projeto
cd rdd-n8n
# Mudar para a branch main (versao estavel)
git checkout main
# Baixar as atualizacoes
git pull origin mainSe ao rodar git pull aparecer o erro abaixo:
error: Your local changes to the following files would be overwritten by merge:
n8n/queue/orq_editor.yaml
n8n/queue/orq_webhook.yaml
n8n/queue/orq_worker.yaml
Isso acontece porque o instalador modifica os arquivos YAML com suas configuracoes (dominio, credenciais, etc). Para resolver, force a sincronizacao com o repositorio:
git fetch origin
git reset --hard origin/mainNota: Isso descarta as modificacoes locais nos YAMLs. Apos atualizar, rode o script de atualizacao ou reinstalacao para reaplicar suas configuracoes nos servicos.
Apos atualizar os scripts, aplique as mudancas nos servicos:
# Atualizar n8n para uma nova versao 2.x
sudo ./update-n8n.sh
# Ou se estiver migrando de n8n v1 para v2
sudo ./upgrade-n8n-v2.shImportante: O git pull atualiza apenas os scripts e YAMLs. Os servicos em execucao (containers) nao sao afetados automaticamente. Voce precisa rodar o script de atualizacao ou upgrade para aplicar as mudancas nos containers.
git clone <url-do-repositorio>
cd rdd-n8n
chmod +x *.sh
sudo ./install-simple.shrdd-n8n/
├── install-simple.sh # Instalador principal
├── backup.sh # Backup do banco n8n + variaveis (manual/cron)
├── update-n8n.sh # Atualizador de versao (2.x+)
├── upgrade-n8n-v2.sh # Migracao v1 -> v2
├── rollback-n8n-v2.sh # Rollback do upgrade v2
├── update-ssl.sh # Configuracao SSL
├── setup-smtp.sh # Configuracao SMTP
├── debug.sh # Diagnostico
├── cleanup.sh # Limpeza rapida
├── uninstall.sh # Desinstalacao completa
├── .env # Credenciais (gerado na instalacao)
├── smtp.conf.example # Template SMTP
├── backups/ # Backups gerados (15 mais recentes)
│ └── logs/ # Logs de cada execucao de backup
├── n8n/queue-v2/
│ ├── orq_editor.yaml # n8n Editor
│ ├── orq_webhook.yaml # n8n Webhook
│ └── orq_worker.yaml # n8n Worker
├── postgres16/postgres.yaml # PostgreSQL 16
├── redis/redis.yaml # Redis 7
├── traefik/traefik.yaml # Traefik v3
├── portainer/portainer.yaml # Portainer
└── pgadmin/pgadmin.yaml # pgAdmin 4
- Docker Swarm - Orquestracao robusta
- n8n v2 Queue Mode - Editor + Webhook + Worker
- PostgreSQL 16 - Banco de dados robusto
- Redis 7 - Cache e filas de trabalho
- Traefik v3 - Proxy reverso com SSL automatico
- Portainer - Interface de gerenciamento
- pgAdmin 4 - Administracao PostgreSQL
- Let's Encrypt - Certificados SSL gratuitos
- Sistema SMTP - Envio seguro de credenciais
- Backup Automatico - Banco n8n + variaveis com agendamento via cron
- Scripts de Manutencao - Atualizacao, diagnostico, limpeza