Introdução
A automação de processos é essencial para aumentar a eficiência operacional em ambientes de TI. O N8N é uma poderosa ferramenta de automação de fluxos de trabalho (workflows), de código aberto, que permite conectar diversas aplicações e serviços através de integrações visuais e lógicas. Com ele, é possível construir rotinas automáticas sem depender de ferramentas proprietárias e com liberdade total para personalização.
A proposta do N8N é ser uma alternativa flexível a soluções como Zapier e Integromat, com o diferencial de permitir que você mesmo hospede seu servidor, mantendo o controle total sobre dados, segurança e desempenho. Isso é especialmente relevante para empresas que lidam com informações sensíveis ou que desejam reduzir custos recorrentes de plataformas SaaS.
A implantação local do N8N pode parecer complexa à primeira vista, mas com a infraestrutura correta e um bom planejamento, é perfeitamente viável — mesmo em ambientes de pequeno porte. A combinação de Node.js, PostgreSQL e NGINX oferece uma base sólida para executar o N8N com desempenho, segurança e escalabilidade. Enquanto o Node.js e o NPM fornecem o ambiente necessário para rodar a aplicação, o PostgreSQL atua como sistema de banco de dados robusto e confiável, e o NGINX garante acesso web rápido, seguro e com suporte a SSL.
Além disso, abordaremos o uso do PM2, um gerenciador de processos Node.js, para manter o serviço em execução contínua mesmo após reinicializações do servidor. Por fim, você aprenderá a expor seu N8N com segurança na web utilizando NGINX como proxy reverso, com suporte a HTTPS.
Se você está em busca de uma solução de automação poderosa, personalizável, sem depender de serviços externos e com controle total sobre seus dados, este guia foi feito para você. Ao seguir este tutorial passo a passo, você estará pronto para implementar o N8N em um ambiente Linux com as melhores práticas de segurança e desempenho.
Pré-requisitos para Instalar o N8N
Antes de iniciar, certifique-se de que você possui:
- Um servidor com Ubuntu Server 24.04 (50GB HDD, 4GB RAM, 2 CPUs)
- Acesso root ou sudo
- Conexão com a internet
Passo 1: Atualizar o sistema
Atualize os pacotes do sistema para garantir que você tenha as versões mais recentes:
sudo apt update && sudo apt upgrade -y
Se quiser configurar para que servidor realize atualizações automáticas de segurança, veja nosso artigo sobre este assunto.
Passo 2: Instalar o PostgreSQL
O N8N pode utilizar o PostgreSQL como banco de dados. Instale-o com:
sudo apt install postgresql -y
Em seguida, configure a senha do usuário postgres
:
sudo -u postgres psql
No prompt do PostgreSQL, execute:
ALTER USER postgres PASSWORD 'sua_senha_segura';
\q
Edite o arquivo pg_hba.conf
para permitir conexões remotas:
sudo nano /etc/postgresql/16/main/pg_hba.conf
Adicione a seguinte linha ao final do arquivo:
host all all 0.0.0.0/0 scram-sha-256
Em seguida, edite o arquivo postgresql.conf
para ouvir conexões em todas as interfaces:
sudo nano /etc/postgresql/16/main/postgresql.conf
Altere a linha:
listen_addresses = '*'
Reinicie o serviço do PostgreSQL:
sudo systemctl restart postgresql
Passo 3: Criar banco de dados e usuário para o N8N
Utilize uma ferramenta como o pgAdmin ou o terminal para criar um banco de dados e um usuário para o N8N:
sudo -u postgres psql
No prompt do PostgreSQL, execute:
CREATE DATABASE n8n;
CREATE USER n8n_user WITH ENCRYPTED PASSWORD 'senha_segura';
GRANT ALL PRIVILEGES ON DATABASE n8n TO n8n_user;
\q
Passo 4: Instalar Node.js e NPM (Pré requisitos para N8N)
O N8N é construído em Node.js, portanto, é necessário instalá-lo junto com o NPM:
sudo apt install nodejs npm -y
Verifique as versões instaladas:
node -v
npm -v
Passo 5: Instalar o N8N
Instale o N8N globalmente usando o NPM:
sudo npm install n8n -g
Passo 6: Criar usuário para o N8N
Crie um usuário dedicado para executar o N8N:
sudo adduser --disabled-password --gecos "" n8n
Conceda permissões apropriadas:
sudo chown -R n8n:n8n /usr/lib/node_modules/n8n
Passo 7: Configurar variáveis de ambiente
Como o usuário n8n
, crie um arquivo .env
com as configurações necessárias:
sudo su - n8n
nano .env
Exemplo de conteúdo:
DB_TYPE=postgresdb
DB_POSTGRESDB_DATABASE=ian8n
DB_POSTGRESDB_HOST=127.0.0.1
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_USER=ian8n
DB_POSTGRESDB_SCHEMA=ian8n
DB_POSTGRESDB_PASSWORD=senha_do_usuario_n8n_no_postgres
GENERIC_TIMEZONE="America/Sao_Paulo"
N8N_DEFAULT_LOCALE=pt_BR
N8N_HOST=n8n.rcbrasil.com.br
N8N_PROTOCOL=http
N8N_TEMPLATES_HOST=https://n8n.rcbrasil.com.br
N8N_WEBHOOK_URL=https://n8n.rcbrasil.com.br
WEBHOOK_URL=https://n8n.rcbrasil.com.br
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=false
N8N_RUNNERS_ENABLED=true
N8N_SECURE_COOKIE=false
Passo 8: Instalar e configurar o PM2
O PM2 é um gerenciador de processos para aplicações Node.js. Instale-o com:
sudo npm install pm2@latest -g
Inicie o N8N com o PM2:
pm2 start n8n
Salve a configuração:
pm2 save
Configure o PM2 para iniciar no boot:
pm2 startup
Siga as instruções exibidas para concluir a configuração.
Passo 9: Instalar e configurar o NGINX com SSL
Instale o NGINX:
sudo apt install nginx -y
Configure o NGINX para proxy reverso e SSL. Crie um arquivo de configuração:
sudo nano /etc/nginx/sites-available/n8n
Exemplo de configuração:
server {
listen 443 ssl http2;listen [::]:443 ssl http2;
server_name n8n.rcbrasil.com.br;
ssl_certificate /etc/ssl/certs/cert.pem;
ssl_certificate_key /etc/ssl/private/cert.key;ssl_protocols TLSv1.2 TLSv1.3;
location / {
proxy_pass http://localhost:5678;proxy_http_version 1.1;
proxy_set_header Host $host;proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
proxy_cache off;
chunked_transfer_encoding off;
}
}
Ative o site e reinicie o NGINX:
sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
sudo systemctl restart nginx
A configuração do N8N está pronta, agora é só acessar utilizando o navegador
https://n8n.rcbrasil.com.br
Dicas
Para atualizar o n8n que já está anteriormente instalado
npm update -g n8n
Acompanhar os logs
Logs de saída (stdout)
tail -f /home/n8n-user/.pm2/logs/n8n-out.log
Logs de erros (stderr)
tail -f /home/n8n-user/.pm2/logs/n8n-error.log
Logs de eventos
tail -f /home/n8n-user/.n8n/n8nEventLog.log
Conclusão
Com esses passos, você configurou com sucesso um servidor N8N com Node.js, NPM e NGINX no Linux. Essa configuração permite que você automatize fluxos de trabalho de forma eficiente e segura.
Referências
Caso tenha alguma dúvida a respeito deste tópico sinta-se à vontade para entrar em contato