Node-RED
A visual, flow based tool for wiring devices, APIs and services together
Node-RED lets you build automations by connecting nodes on a canvas in the browser: an MQTT message comes in, a function transforms it, an HTTP request goes out. It is an OpenJS Foundation project under Apache-2.0, popular in home automation and IoT.
Best for when
- you connect sensors, MQTT and smart home devices
- you want visual automations with JavaScript where you need it
- you need a quick glue layer between APIs
Watch out for
- the editor is open by default and can run code on the host, so set authentication first
- large flows become hard to read and review compared with code
- community nodes are uneven, and some are no longer maintained
Install
Run with Docker
docker run -it -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-redAutomation you draw
Each node does one thing: listen to MQTT, call an API, run a bit of JavaScript, wait, switch on a value, write to a file. You drag them onto a canvas and wire them together, and the flow runs as soon as you deploy it. A large library of community nodes adds integrations for devices, databases and services.
It suits makers and home automation users who think in events and want more freedom than a rule builder, and developers who want a quick glue layer between systems. Compared with business automation tools, it is closer to the hardware and leaves more of the logic to you.
What running it involves
It is a Node.js process with modest memory use, and your flows are stored as a JSON file in the data folder along with installed nodes and credentials. Back up that folder; the flows file can also be tracked in git through the projects feature.
The editor has no authentication by default, and anyone who can open it can run code on the host through the function and exec nodes. Enable admin authentication in the settings file before anything else, and keep it on the LAN or a VPN. Community nodes vary in quality and upkeep, so check them before installing.