Abstract violet and amber illustration representing Node-RED, a flow-based visual programming tool for connecting hardware, APIs, and services

Node-RED

Node-RED

Node-RED is a browser-based flow editor for wiring together hardware, APIs, and online services without writing a full application by hand: drag nodes onto a canvas, wire them together, and messages flow through in real time. It didn’t start in the smart-home world, but it’s become the tool homelabbers reach for once Home Assistant’s own automation editor runs out of road, translating between systems that otherwise wouldn’t talk to each other.

License: Node-RED is Apache License 2.0, confirmed directly from the LICENSE file in the node-red/node-red GitHub repo, copyright the OpenJS Foundation and Node-RED contributors. Like Home Assistant’s license, it’s permissive rather than copyleft: no obligation to share modified source back, even if you redistribute it commercially.

Quick facts: Official site nodered.org · GitHub node-red/node-red, 23,000+ stars · Docker image nodered/node-red, 319 million+ pulls · current release 5.0 (June 2026) · default UI port 1880 · governed by the OpenJS Foundation, sponsored by FlowFuse.

Where Node-RED came from, and what “flow-based” actually means

Node-RED started inside IBM’s Emerging Technology Services group around 2013, built by Nick O’Leary and Dave Conway-Jones to make it easier to wire the Internet of Things together without a full development stack for every experiment. It moved to the JS Foundation in 2016, which merged into the OpenJS Foundation in 2019, and it’s now primarily sponsored by FlowFuse, a company the original creators went on to found. IBM is a past sponsor, not the current one.

The “flow-based” part is the whole point. Each node on the canvas does one small job, an MQTT subscribe, an HTTP request, a switch on a value, a function block for custom JavaScript, and wires pass a msg object, payload plus metadata, from node to node as it fires. Nothing hides behind a settings panel you can’t see: the flow on screen is the actual logic, not a diagram of it. That’s a different mental model from Home Assistant’s automation engine, which is a trigger/condition/action rule structure rather than a general-purpose dataflow canvas.

What Node-RED adds on top of Home Assistant

Home Assistant’s built-in automations, whether the UI wizard or hand-written YAML, cover the large majority of “when X, do Y” cases well; we go through that in our Home Assistant fiche, and for most people they’re the right default. Node-RED earns its place when the logic gets messy: several branching conditions in one automation, a service with no native HA integration but a working REST API, bridging MQTT topics between systems that have no idea the other exists, or a side automation that only occasionally touches Home Assistant at all.

The bridge that makes this work: the community package node-red-contrib-home-assistant-websocket exposes every Home Assistant entity as a Node-RED node. State changes trigger flows instantly over the same websocket connection the HA frontend uses, no polling, and flows can call any HA service back the same way. It’s a community add-on, not something either project ships by default, so it needs installing separately from the Node-RED palette manager.

Installing Node-RED with Docker

The official image lives on Docker Hub as nodered/node-red, with a latest-minimal variant that drops build tools and project support for a smaller footprint. Here’s a baseline compose file:

services:
  nodered:
    container_name: nodered
    image: nodered/node-red:latest
    restart: unless-stopped
    ports:
      - "1880:1880"
    environment:
      - TZ=Europe/Amsterdam
    volumes:
      - /path/to/your/data:/data
docker compose up -d
  1. Swap in your own data path and time zone, then bring the container up.
  2. Open http://your-server-ip:1880; the editor loads with an empty canvas, ready for a first flow.
  3. Install extra nodes, including the Home Assistant websocket package, through the palette manager in the top-right menu, no container rebuild needed since they’re stored on the mounted /data volume.
  4. Deploy a flow with the button in the top-right corner; nothing runs until you do.

The editor ships with no login by default. Anyone who can reach port 1880, on your LAN or, worse, the open internet, can open the flow editor and read or change every flow, including any credentials stored inside nodes. Turn on admin authentication in settings.js before exposing this past localhost; the project’s own securing Node-RED guide covers the exact steps, and a reverse proxy or mesh VPN in front of it is worth adding on top, not instead of that step.

Common Node-RED use cases in a homelab

  • Home Assistant automations too tangled for the visual editor: multi-branch logic, debounced triggers, or sequences with several timed delays
  • MQTT bridging between ecosystems that don’t natively know about each other, Zigbee2MQTT, Frigate detection events, ESPHome devices, without wiring every device to every other device directly
  • API mashups for services with no native integration anywhere: hit a REST endpoint or webhook, reshape the response, push the result somewhere else
  • Notification fan-out: one trigger pushed to Pushover, ntfy, a Discord webhook, and a Home Assistant notification, without duplicating the same logic three times
  • Standalone dashboards through node-red-dashboard, useful for a quick technician view that doesn’t need to live inside Home Assistant’s own UI

Node-RED vs Home Assistant automations vs openHAB rules

None of these fully replace each other, they overlap more than they compete. Home Assistant’s automation editor is built into the platform and is the fastest path for straightforward rules. openHAB’s rules engine plays a similar role inside its own ecosystem, script-based (DSL, JavaScript, Python) rather than a wiring canvas. Node-RED is the odd one out: general-purpose, not tied to any single home automation platform, and just as usable for a factory sensor pipeline as a smart bulb.

Node-REDHome Assistant automationsopenHAB rules
ParadigmVisual flow-based programmingTrigger/condition/action rules (UI or YAML)Script-based (DSL, JS, Python)
Tied to one platformNo, works standalone or alongside any systemYes, built into Home AssistantYes, built into openHAB
Best forComplex branching logic, API/MQTT integrationStraightforward home automation rulesopenHAB-native automation logic
Learning curveReal, a new paradigm to think inLow for basics, steep for advanced YAMLModerate, needs scripting familiarity
LicenseApache-2.0Apache-2.0EPL-2.0

Node-RED: pros and cons

  • Genuinely general-purpose: not locked to Home Assistant, useful for any system that can speak MQTT, HTTP, or a dozen other protocols
  • The flow itself is the documentation, easier to hand off or revisit months later than a wall of nested YAML conditions
  • Enormous library of community nodes and shared flows on the official flow library, most integrations already exist
  • Lightweight enough to run on the same Raspberry Pi as everything else in a small homelab
  • No authentication out of the box; securing the editor is a manual step people skip
  • The flow-based mental model takes real time to click, especially coming straight from YAML or a UI wizard
  • Home Assistant integration depends on a community package, not an officially bundled one, so it can lag behind HA core releases
  • Large flows with many branches can get visually cluttered without deliberate organization into subflows

FAQ

Is Node-RED free?

Yes. Node-RED is free and open source under the Apache-2.0 license, no paywalled features. FlowFuse, the company that sponsors development, sells a separate hosted/managed platform built around Node-RED, but the self-hosted core is fully free.

Do I need Node-RED if I already use Home Assistant?

Not necessarily. If your automations are simple triggers and actions, Home Assistant’s own editor already handles it. Node-RED is worth adding once you hit logic the built-in editor can’t express cleanly, or you need to bridge Home Assistant to a system that has no native integration.

Is Node-RED secure by default?

No. The default Docker install has no login on the flow editor, meaning anyone who can reach the port can view or edit every flow. Enable admin authentication in settings.js before exposing it past your local machine, and keep it behind a reverse proxy or VPN rather than a forwarded port.

Does Node-RED replace Home Assistant automations entirely?

No, and it isn’t meant to. Most people run both side by side: Home Assistant’s editor for everyday rules, Node-RED for the handful of automations or integrations that need more flexibility than trigger/condition/action can offer.

Is Node-RED actively maintained?

Yes. Version 5.0 shipped in June 2026, the GitHub repo sits at over 23,000 stars with regular commits, and it’s governed by the OpenJS Foundation with FlowFuse as the primary corporate sponsor.

Node-RED is worth installing the moment a Home Assistant automation starts fighting the UI wizard, or the moment two devices that should talk to each other simply don’t. Pair it with Home Assistant for the smart-home side and Frigate if camera events need to feed into a flow. Our homelab setup guide for beginners covers the hardware baseline before you start stacking automation tools on top of it.