Deployment guide

n8n vs Node-RED: which self-hosted automation tool to choose?

Deploy on a VPS Cloud →

n8n vs Node-RED: which self-hosted automation tool to choose?

Comparison8 min read11 steps

n8n and Node-RED are two open-source automation engines you can fully self-host. The first targets business workflows and SaaS API integrations; the second, lower-level, excels at IoT and stream processing. Here is how to choose between them, understand their license differences, and deploy them cleanly on your VPS.

Contents· Why self-host your automation engine1/10
  1. 01Why self-host your automation engine
  2. 02What you gain with self-hosting
  3. 03n8n vs Node-RED comparison
  4. 04Prerequisites by tool
  5. 05Deploy n8n (or Node-RED) on your VPS
  6. 06n8n vs Node-RED: license and business model differences
  7. 07Server resources compared
  8. 08Use cases: n8n for SaaS integrations, Node-RED for IoT/edge
  9. 09Migrating from Node-RED to n8n (or vice versa)
  10. 10When to choose Node-RED over n8n

Why self-host your automation engine

No-code/low-code automation platforms like Zapier or Make charge per execution and impose quotas that quickly escalate. By self-hosting n8n or Node-RED on a VPS, you eliminate these limits: quota-free executions, data that never leaves your server, and full access to community nodes. n8n is oriented toward application integrations (CRM, databases, AI, webhooks) with a visual workflow logic close to Make. Node-RED, born at IBM, processes JSON messages through an event-driven flow system, perfect for connecting MQTT sensors, transforming payloads, or orchestrating hardware. Both run in containers and are managed from a browser.

What you gain with self-hosting

  • Quota-free executions with no per-task billing, unlike SaaS automation platforms.
  • Data and secrets (API tokens, credentials) stored exclusively on your VPS.
  • Access to community nodes and integrations not available in capped cloud offerings.
  • Ability to run custom code (JavaScript, Python) without sandbox restrictions.
  • Direct integration with your internal services via the private Docker network.
  • Full control over versions and updates, with no imposed pricing changes.

n8n vs Node-RED comparison

Scroll the table

Criterionn8nNode-RED
Primary use caseSaaS API integration, business workflowsIoT, MQTT, real-time stream processing
Execution modelTriggered workflow (cron, webhook, trigger)Event-driven message-oriented flows
Integration catalog400+ ready-to-use application nodesCommunity node library via palette manager
Custom codeBuilt-in Code nodes (JS/Python)Function nodes in JavaScript
DatabaseSQLite by default, PostgreSQL recommendedJSON files on disk
Recommended RAM1 to 2 GB512 MB to 1 GB
LicenseSustainable Use License (fair-code)Apache 2.0
Learning curveAccessible, non-developer friendlyFlow logic, more technical

Prerequisites by tool

For n8n, plan a VPS with 2 vCPU and 2 GB of RAM, and use PostgreSQL rather than SQLite once you exceed a few active workflows: SQLite locks the database under concurrent load. Allow 5 GB of disk for the database and execution binaries. Node-RED is leaner: 1 vCPU and 1 GB of RAM are enough, as its flows are stored in simple JSON files. In both cases: Docker Compose v2, a dedicated subdomain (n8n.yourdomain.com or flows.yourdomain.com) and an HTTPS reverse proxy are mandatory, as these interfaces expose secrets and must never run over plain HTTP.

Deploy n8n (or Node-RED) on your VPS

  1. Provision Docker and the network

    On the VPS, create a dedicated Docker network: docker network create automation. It will isolate n8n/Node-RED from the database and the reverse proxy.

  2. Start PostgreSQL for n8n

    In the docker-compose file, add a postgres:16 service with a persistent volume and credentials as environment variables. For Node-RED, skip this step: a data:/data volume is enough.

  3. Configure the application container

    For n8n, use the docker.n8n.io/n8nio/n8n image with N8N_HOST, WEBHOOK_URL=https://n8n.yourdomain.com/ and DB_TYPE=postgresdb. For Node-RED, the nodered/node-red:latest image exposed on port 1880 is sufficient.

  4. Start and verify

    Run docker compose up -d. n8n listens on 5678, Node-RED on 1880. Check logs with docker compose logs -f and confirm the database connection for n8n.

  5. Secure behind a reverse proxy

    Route traffic via Caddy or Traefik with an automatic Let's Encrypt certificate. Enable authentication: N8N_BASIC_AUTH_ACTIVE=true for n8n, and the adminAuth directive in settings.js for Node-RED. Without this, the editor is publicly accessible.

  6. Set up backups

    Schedule a daily pg_dump for the n8n database, or a simple snapshot of the /data volume for Node-RED, deposited on external storage via cron.

For n8n in production, enable queue mode with Redis and separate worker containers: the main process only orchestrates while workers execute nodes in parallel. This absorbs webhook spikes without blocking the editor. On the Node-RED side, isolate Function nodes in a VM context with a restricted functionGlobalContext to prevent a poorly written flow from crashing the entire runtime.

n8n vs Node-RED: license and business model differences

The license difference is the first criterion to evaluate before any enterprise deployment. Node-RED is published under the Apache 2.0 license: you can use, modify, and integrate it into a commercial product without restriction or royalty. n8n uses the Sustainable Use License (also called fair-code): personal use and internal projects are free, but if you integrate n8n into a product or service you commercialize, or offer it to third parties as a managed service, a paid Enterprise license is required. In practice, for a team automating its own internal processes, n8n remains free. For an agency delivering n8n access as a service to clients, the line is crossed. Node-RED has no ambiguity: Apache 2.0 covers all uses, including commercial, without restrictive clauses. This license choice reflects each project's business model: n8n is a commercial company monetizing its cloud version and Enterprise licenses; Node-RED is an OpenJS Foundation project, with no commercial entity behind it, maintained by the community and IBM.

Server resources compared

Scroll the table

Resourcen8nNode-RED
Recommended vCPU2 vCPU (minimum viable: 1)1 vCPU (runs on Raspberry Pi)
Recommended RAM2 GB (1 GB possible for small usage)512 MB to 1 GB
Disk (application)~500 MB image + 2-5 GB PostgreSQL~300 MB image + a few MB JSON
DatabasePostgreSQL (prod) or SQLite (dev)JSON files on volume
Redis (optional)Required for multi-worker queue modeNot needed
Edge/embedded usageNot suitable (too heavy)Yes — Raspberry Pi, ESP32 via MQTT

Use cases: n8n for SaaS integrations, Node-RED for IoT/edge

The positioning of each tool reflects its internal architecture. n8n shines on SaaS integrations: Slack ↔ Notion synchronization, sending Stripe data to a CRM, triggering GitHub workflows from a webhook, enriching leads via an AI API, or orchestrating data pipelines between Airtable and PostgreSQL. It embeds 400+ nodes with managed OAuth authentication, reusable sub-workflows, and a browsable execution history. Node-RED is designed for low-level stream processing and IoT: connecting to MQTT brokers to receive sensor data, transforming payloads to feed a time-series database like InfluxDB, home automation via Home Assistant, or routing hardware events in real time. Its flow logic (message in → processing → message out) directly mirrors the publish/subscribe model. Both tools can coexist: Node-RED collects and normalizes hardware data, n8n consumes it via webhook to trigger SaaS actions (support ticket, email alert, CRM update). This combination is common in connected industrial projects.

Migrating from Node-RED to n8n (or vice versa)

  1. Export existing flows

    In Node-RED, export flows via the hamburger menu → Export → Clipboard (JSON format). For n8n, use Settings → Export → Download all workflows. These exports are the only portable artifacts between the two tools.

  2. Identify equivalent nodes

    List the nodes in use and find their equivalent in the other tool. Node-RED MQTT nodes correspond to n8n MQTT nodes; HTTP Request nodes are present on both sides. Specialized nodes (InfluxDB, OPC-UA) don't always have a direct equivalent in n8n: you'll need an HTTP Request node or custom code.

  3. Recreate manually on staging

    There is no automatic converter between the two formats. Recreate workflows manually on an isolated staging environment. Start with the simplest flows to validate logic before tackling critical ones.

  4. Validate webhooks and triggers

    n8n webhooks use a /webhook/<uuid> URL format different from Node-RED's (/endpoint). Update all systems calling these URLs. For MQTT triggers, verify that the client ID and topics are carried over identically.

  5. Switch traffic and monitor

    Once validated on staging, switch source webhooks one by one to the new tool. Keep the old one active in parallel for a few days to compare execution volumes. Tear down the old environment only after confirming parity.

When to choose Node-RED over n8n

  • Your project involves connected hardware: MQTT sensors, GPIO, industrial protocols (OPC-UA, Modbus) — Node-RED is built for that.
  • You need a 100% open source license with no commercial use clause: Apache 2.0 has no restrictions.
  • Your resources are constrained: Raspberry Pi, 512 MB VPS, or edge device — Node-RED runs where n8n cannot.
  • Your stack already includes an MQTT broker (Mosquitto, EMQX) and a time-series database (InfluxDB): Node-RED integrates natively.
  • Your team is technical and comfortable with the flow/message model: Node-RED has a steeper learning curve but is more flexible for low-level flows.
  • You want to avoid dependency on a commercial entity: Node-RED is governed by the OpenJS Foundation, with no risk of license changes.

You can deploy both n8n and Node-RED on the same VPS using Docker Compose, assigning them different ports (5678 for n8n, 1880 for Node-RED) and isolating them on separate Docker networks. Create an automation-n8n network for n8n + PostgreSQL + Redis, and an automation-nodered network for Node-RED + Mosquitto. The reverse proxy (Caddy or Traefik) is the only contact point between the two subnets and the outside. This architecture lets you use Node-RED for IoT collection and n8n for SaaS actions on the same machine, without the two runtimes communicating directly — a Node-RED flow sends its data via HTTP webhook to n8n, maintaining loose coupling and simplifying future migration.

Automate without limits on your VPS

A ServOrbit Cloud VPS with pre-configured Docker lets you deploy n8n or Node-RED in minutes. PostgreSQL, backups, and scalable resources for your critical workflows.

Need help?

Browse our help center and FAQ, or reach our team — callback, WhatsApp or email. Support in French, English and Arabic.

Message us on WhatsAppopens in a new tab