Node-RED lets you automate things by drawing them. You drag boxes onto a page and wire them together, "when this happens, check that, then do this", and it runs the result on your server around the clock.
On this page
Good to know before you install
Anyone logged in to Node-RED can run any command on this server, so it is only reachable from your trusted places and always needs its admin login.
At a glance#
- What it is
- Flow-Based Automation Development
- Where it opens
- Flow Editor
On its own port at
http://your-server:port, orflows.your-domainonce you have a domain - Updates
- Automatic A backup is taken first, and it rolls back if the update fails
- Backups
- Included Part of the daily backup when that's switched on
- Copies
- One per server
What it's good for#
Node-RED is for the jobs that fall between apps. Turn the heating down when everyone's phone leaves the house. Check a web page every morning and tell you if a price drops. Take a message from one service, tidy it up, and pass it to another. Each box, called a node, does one small thing: listen for something, make a web request, wait, compare, send. A chain of them is a flow.
It suits people who like tinkering but don't want to write and look after a program for every little job. You can drop into a line of JavaScript when a box doesn't do quite what you want, but a lot gets done without any.
Signing in#
Open it with the Flow Editor button on its page. The login is admin, and the password is in the Login Details shown when the install finishes; press Welcome on the app's page to see it again.
A plain Node-RED has no login at all, and anyone who opens the editor can run any command on your server with it. So LibrePortal writes the login into Node-RED's settings before it ever starts, checks after the install that the editor refuses anyone without it, and won't let Node-RED start if the login is ever missing from its settings.
To change the password, use Reset Admin Password on the Tools tab. Leave the box empty to have a strong one made for you. It changes the password in Node-RED and in LibrePortal together, and everyone signed in to the editor is signed out.
Why it's private
Node-RED can run commands on your server, so whoever can sign in to it effectively controls the server. That's why its port only answers your trusted places, and why the login is always on. Keep it that way unless a flow really has to take requests from the internet, and then keep the password strong.
Your first flow#
- Drag an inject node from the list on the left onto the page. It's the one that starts a flow, either when you click it or on a timer.
- Drag a debug node next to it, and draw a wire from one to the other.
- Press Deploy at the top right. Nothing runs until you deploy, and deploying is also how you save.
- Click the button on the inject node. Its message appears in the debug panel on the right.
From there, swap the ends for something useful. Double-click any node to change its settings; the help panel on the right explains what each one does. Node-RED's own cookbook is full of small, complete examples.
Adding nodes and a dashboard#
Node-RED comes with the basics. Thousands more nodes, for smart-home kit, databases, chat services and the rest, can be added from Manage palette in the editor's main menu. It downloads them from the public Node-RED library, and they're kept with the rest of Node-RED's data, so they survive updates and come back with a restore.
One worth knowing about is Dashboard 2.0 (@flowfuse/node-red-dashboard). It adds nodes for buttons, gauges, charts and switches, and turns them into a web page you can open on your phone to see and control your flows.
Webhooks and HTTP endpoints#
An http in node makes your flow answer a web address, like http://192.168.1.50:<port>/doorbell. They're served on the same port as the editor, so they get the same protection: only your trusted places can reach them. The editor's login doesn't cover them, though, so anyone who can reach the port can call them.
If a service on the internet has to reach one, you'll need to make the port public, or give Node-RED a domain, where it answers at flows.<your domain>. Either way, the editor becomes reachable from the internet too, protected only by its password.
Works with#
The one pairing LibrePortal knows about is ntfy: a flow can send a notification to your phone. Use an http request node set to POST, with the address http://ntfy-service:80/ and your topic after it, and put the message in msg.payload. Headers such as Title and Priority go in msg.headers. It talks to ntfy over LibrePortal's own network, so it works even when ntfy is private. The Works with list on Node-RED's page turns to connected once a deployed flow uses ntfy this way.
Good to know#
- Passwords saved in your flows are encrypted with a key LibrePortal made at install. Never change it: Node-RED could no longer read the passwords and tokens already saved in your flows.
- Backups include all of Node-RED's data: flows, the encrypted credentials, settings and the extra nodes you've installed.
- Updates are automatic, but only ever rebuilds of the exact release LibrePortal pins (5.0.7); a newer Node-RED reaches new installs, not this one. Nodes you've added from the palette stay as they are, so update them from Manage palette now and then.
- One per server. LibrePortal's login check and the Tools tab find Node-RED by its container name, so it can't run as several copies.
Addresses and ports#
Node-RED has one port. LibrePortal picks a free port number for each when you install, so yours will differ from anyone else's. The Config tab's Network section shows them, and the app's Open button uses the right one.
| What it is | Who can reach it | With a domain |
|---|---|---|
| Flow Editor | Trusted places only | flows.your-domain |
Settings#
In its config file#
Node-RED's own settings aren't on the Config tab yet. They live in the app's config file, described here so you know they exist. How to change them.
| Setting | What it does | Starts as |
|---|---|---|
NameCFG_NODERED_DISPLAY_NAME |
What this app is called on your dashboards. Leave empty to use its usual name | Empty |
Show on the LibrePortal DashboardCFG_NODERED_SHOW_ON_DASHBOARD |
Whether this app gets a shortcut on the front page of the LibrePortal WebUI, separate from any Dashy dashboard Choices: true, false |
true |
Usage StatisticsCFG_NODERED_TELEMETRY |
Whether Node-RED may send anonymous usage data and check for new versions Choices: true, false |
false |
Detailed logsCFG_NODERED_VERBOSE_LOGS |
Whether Node-RED writes its normal, chattier logs, including who connected, instead of only warnings and errors. Choices: true, false |
false |
Debug logging for 24 hoursCFG_NODERED_DEBUG_LOGS |
Turn on to see everything Node-RED is doing while you look for a problem; it turns itself off after 24 hours. Choices: true, false |
false |
Tools#
Node-RED's Tools tab has 1 button for jobs you'd otherwise need a terminal for. Each one runs as a task, so you can watch it on the Tasks page and read what it did. More about Tools.
Set a new password for the editor's admin login. Everyone logged in is logged out.
Works with#
These are the other apps Node-RED knows how to work with. Once it's installed, its page shows the same list with whether each one is connected. How this works.
- Notifications: Flows can send notifications to your phone through ntfy. There's nothing to switch on; LibrePortal shows whether it can work and lets you check.
- Grafana: Shows dashboards for the apps that have one. works with every app
- Home Assistant: Build Home Assistant automations as Node-RED flows.
- Prometheus: Collects metrics from the apps that can export them. works with every app
- Uptime Kuma: Watches your apps and shows when one goes down. works with every app
Privacy and security#
All clear Node-RED sends nothing about you unless you agree when it asks, and LibrePortal says no to its usage telemetry. Browsing for extra nodes contacts Node-RED's public catalogue.
What leaves this server#
- The node catalogue (flows.nodered.org) when you browse for extra nodes
What LibrePortal turns off#
- Detailed logs and per-request access logging (switchable in Config)
- Usage telemetry
Licence: Apache-2.0. Audited: 21 October 2026. See the privacy of every app and the Promise.
Sources#
Under the hood#
- It runs this image:
nodered/node-red:5.0.7@sha256:a649dd711d55490151a2c39a8e48ad0c44325488fbc0e66315f2d2e19e5e1ace. - It can sit behind Authelia's sign-in once Authelia is installed.
- Its own project and documentation: github.com/node-red/node-red
Ports, settings, tools and connections on this page are read from LibrePortal v0.10.97's app catalogue each time the guide is built.