Testado em 13/10/2026. O teste rodou num servidor Linux compartilhado (Alpine Linux, x86_64), não numa VPS dedicada, como usuário comum: sem root e sem instalar pacotes do sistema. Simulei uma VPS pequena limitando o heap do Node.js (--max-old-space-size) e fixando a CPU com taskset. O disco e a rede do servidor são melhores que os de uma VPS de entrada, então os tempos podem ser piores na sua máquina.
Antes de começar: ao iniciar, o n8n 2.43.4 avisa que “Running n8n outside a container is deprecated. Future versions will require running n8n via the official Docker image.” Ou seja, a instalação via npm ainda funciona, mas o próprio n8n indica que vai deixar de suportá-la. Para produção, prefira o guia com Docker Compose.
Versões usadas
- Node.js v24.21.0 (LTS “Krypton”, build musl de unofficial-builds.nodejs.org, porque o Alpine usa musl). O pacote
n8nno npm exigenode >= 24.0.0. - npm 11.19.0
- n8n 2.43.4 (versão
latestno npm em 13/10/2026), com o banco padrão SQLite.
1. Instale o Node.js na sua pasta (sem root)
mkdir -p ~/n8n-lab && cd ~/n8n-lab
V=v24.21.0
curl -fsSLO https://nodejs.org/dist/$V/node-$V-linux-x64.tar.xz # em Alpine/musl use unofficial-builds.nodejs.org (…-linux-x64-musl)
tar xf node-$V-linux-x64.tar.xz
export PATH=$PWD/node-$V-linux-x64/bin:$PATH
node -v
Numa VPS com Ubuntu/Debian você também pode instalar o Node pelo gerenciador de pacotes ou pelo nvm. O importante é ter a versão 24.
2. Instale o n8n localmente
mkdir app && cd app && npm init -y
npm install n8n@2.43.4
./node_modules/.bin/n8n --version
No teste, o npm install levou 162 s e a pasta node_modules ficou com cerca de 2,8 a 3,1 GB. Reserve esse espaço em disco.
3. Inicie ouvindo só em localhost
export N8N_HOST=127.0.0.1 N8N_LISTEN_ADDRESS=127.0.0.1 N8N_PORT=5678
export GENERIC_TIMEZONE=America/Sao_Paulo
export NODE_OPTIONS=--max-old-space-size=768 # perfil de 1 GB
./node_modules/.bin/n8n start
O n8n também abre o Task Broker em 127.0.0.1:5679, e só pode haver uma instância por porta. Para acessar de fora, coloque um proxy reverso com HTTPS na frente (Caddy, Nginx ou Traefik) e nunca exponha a porta 5678 diretamente. Para manter rodando depois de fechar o terminal, use um serviço do systemd ou o pm2.
Resultados medidos
Workflow de teste: Webhook → Edit Fields → Respond to Webhook, importado com n8n import:workflow e ativado com n8n publish:workflow. Chamadas via curl a partir do próprio servidor. A memória é o RSS somado do processo principal e do task runner.
| Perfil | Startup até /healthz/readiness | RSS ocioso | 200 chamadas sequenciais | 200 chamadas, 20 em paralelo | RSS de pico |
|---|---|---|---|---|---|
| heap 768 MB, 1 CPU | 14,5 s | ~455 MB | 200/200 OK em 24,4 s | 200/200 OK em 22,7 s | ~795 MB |
| heap 1536 MB, 2 CPUs | 10,4 s | ~462 MB | 200/200 OK em 15,5 s | (veja abaixo) | ~640 MB |
Erros encontrados (e o que aprendi)
ulimit -vderruba o Node.js. Limitar a memória virtual comulimit -vpara imitar uma VPS de 1 GB fez o processo morrer na hora (Fatal process out of memory). Com um limite folgado de 16 GB, ele morreu durante a rajada de 20 chamadas em paralelo (Failed to reserve virtual memory for CodeRange), mesmo com RSS de só ~600 MB. O V8 reserva muito espaço virtual que não usa de fato. Não useulimit -vcom n8n. Para limitar memória de verdade, use o heap do Node (--max-old-space-size) ou limites de cgroup (systemdMemoryMax=, ou omem_limitdo Docker). Semulimit -v, o perfil de 1 GB passou nas 200 chamadas em paralelo, como mostra a tabela.update:workflowestá obsoleto: usen8n publish:workflow --id=.... Sem publicar, o webhook respondePublished version not found for workflow.N8N_RUNNERS_ENABLEDnão é mais necessário (o n8n avisa que a variável é obsoleta).- O aviso sobre o task runner Python (“virtual environment is missing”) não impede o funcionamento, a não ser que você use Python no nó Code.
Conclusão
Para um teste ou uso pessoal leve, 1 GB de RAM livre para o n8n bastou neste workflow simples, com pico de ~800 MB numa rajada de 20 chamadas em paralelo. Para produção, a VPS precisa de folga para o sistema e o proxy, e o caminho recomendado pelo próprio n8n é o Docker. Veja a calculadora e a tabela de preços.