LibrePortal
Sponsor
Install

Node-RED

Flow-Based Automation

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
  1. At a glance
  2. What it's good for
  3. Signing in
  4. Your first flow
  5. Adding nodes and a dashboard
  6. Webhooks and HTTP endpoints
  7. Works with
  8. Good to know
  9. Addresses and ports
  10. Settings
  11. In its config file
  12. Tools
  13. Works with
  14. Privacy and security
  15. What leaves this server
  16. What LibrePortal turns off
  17. Sources
  18. Under the hood

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, or flows.your-domain once 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#

  1. 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.
  2. Drag a debug node next to it, and draw a wire from one to the other.
  3. Press Deploy at the top right. Nothing runs until you deploy, and deploying is also how you save.
  4. 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 isWho can reach itWith 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.

SettingWhat it doesStarts as
Name
CFG_NODERED_DISPLAY_NAME
What this app is called on your dashboards. Leave empty to use its usual name Empty
Show on the LibrePortal Dashboard
CFG_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 Statistics
CFG_NODERED_TELEMETRY
Whether Node-RED may send anonymous usage data and check for new versions
Choices: true, false
false
Detailed logs
CFG_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 hours
CFG_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.

Reset Admin PasswordTested on 5.0.7

Set a new password for the editor's admin login. Everyone logged in is logged out.

Asks for: New password (optional)

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.

Next steps