Como configurar servidor N8N com Node.js, NPM e NGINX no Linux

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

Rolar para cima