Què és Node-RED i què necessita
Node-RED és un editor visual que funciona al navegador: hi connectes "nodes" amb cables i formes fluxos. Per sota, és un programa escrit per a Node.js que s'ha d'estar executant a algun ordinador.
Dues peces: el servidor i l'editor
- El servidor és el procés
node-redque instal·lem i arrenquem. Executa els fluxos i escolta pel port1880. - L'editor és la pàgina web que el servidor ofereix a
http://localhost:1880. El navegador només és la pantalla: si tanques la pestanya, els fluxos continuen funcionant.
Per això Node-RED es pot instal·lar en una Raspberry Pi sense pantalla i editar-lo des d'un altre ordinador.
Quina versió de Node.js cal
| Node-RED | Node.js mínim |
|---|---|
5.x (la darrera) | 22 |
4.x | 18 |
Dades de nodered.org (juny 2026), que recomana la versió 24.x de Node.js. En escriure aquesta pàgina (octubre 2026) la darrera versió de Node-RED a npm és la 5.0.7. L'script d'instal·lació de Linux exigeix almenys Node.js 22.9.0. No fa servir versions imparells (23, 25…): no es proven.
Compte amb les guies antigues
Molts tutorials d'internet encara parlen de Node 14 o 18, o d'un script que es deia update-nodejs-and-nodered-deb. Aquest nom ja no existeix (el servidor respon "Not Found"): ara l'script de Debian es diu install-update-nodered-deb. Si una ordre d'una guia falla de seguida, comprova primer la data de la guia.
Quin camí triar
Tots els camins acaben igual: un servidor Node-RED que escolta pel port 1880. El que canvia és com s'instal·la, com s'arrenca i on queda desada la carpeta de dades.
| On | Camí | Què obtens | Ordre clau |
|---|---|---|---|
| Debian 13, Ubuntu i derivats | script instal·lador | Node.js + Node-RED + servei systemd | bash install-nodered.sh |
| Raspberry Pi OS | el mateix script | com Debian, més nodes opcionals per a la Pi | bash install-nodered.sh |
| Windows 10 / 11 | Node.js (MSI) + npm | l'ordre node-red al terminal | npm install -g node-red |
| Qualsevol sistema amb Docker | imatge oficial | un contenidor aïllat, amb les dades en un volum | docker run … nodered/node-red |
Altres Linux (Fedora, CentOS…) tenen un script RPM al mateix repositori, i qualsevol sistema amb Node.js pot fer sudo npm install -g node-red. Les pràctiques següents funcionen igual amb qualsevol camí.
Linux (Debian 13) i Raspberry Pi
Utilitzem l'script oficial del repositori node-red/linux-installers. Funciona igual a Debian, Ubuntu i Raspberry Pi OS.
1. Eines de compilació
sudo apt install build-essential git curl
Sense elles, Node-RED s'instal·la, però més endavant fallarà la instal·lació de nodes addicionals que porten parts binàries per compilar. curl és per descarregar l'script.
2. L'script instal·lador
curl -sL https://github.com/node-red/linux-installers/releases/latest/download/install-update-nodered-deb -o install-nodered.sh less install-nodered.sh bash install-nodered.sh
bash <(curl -sL https://github.com/node-red/linux-installers/releases/latest/download/install-update-nodered-deb)
Per què llegir-lo abans? L'script s'executa amb privilegis d'administrador. El repositori mateix recomana inspeccionar-lo. És un bon hàbit amb qualsevol curl | bash.
Què fa:
- Si no troba Node.js, instal·la la versió 24 LTS. Si en troba una de ≥ 22.9, la deixa. Si és més antiga, l'elimina i en posa una de nova.
- Elimina el nucli antic de Node-RED (conserva les teves dades) i instal·la l'última versió amb npm.
- Afegeix les ordres
node-red-start,node-red-stop,node-red-log… i el serveisystemd. - Pregunta si vols instal·lar els nodes específics de la Raspberry Pi. A un Debian normal, respon
n.
Opcions útils de l'script
| Opció | Efecte |
|---|---|
--help | mostra totes les opcions |
--confirm-install | no demana la confirmació inicial |
--skip-pi / --confirm-pi | no instal·la / instal·la els nodes de la Pi sense preguntar |
--node22 · --node24 · --node26 | força aquesta versió de Node.js |
--nodered-version="5.0.0" | instal·la una versió concreta de Node-RED |
--nodered-user=NOM | usuari que executarà el servei (útil si l'executes amb sudo) |
3. Arrencar com a servei
sudo systemctl enable nodered # arrenca sol quan s'engega l'ordinador sudo systemctl start nodered # arrenca ara node-red-log # mostra el log del servei
Com que és un servei, continua funcionant encara que tanquis el terminal. També pots fer servir node-red-start, que l'arrenca i en mostra el log; Ctrl-C només et treu del log, no l'atura.
Només a la Raspberry Pi
- Pots editar des d'un altre ordinador: al navegador,
http://<nom-o-IP-de-la-Pi>:1880. La IP la veus a la Pi ambhostname -I. - Amb poca memòria, arrenca Node-RED amb
node-red-pi --max-old-space-size=256perquè Node.js alliberi memòria abans. - Node.js 24 no té versions de 32 bits: a una Pi Zero o 1 (armv6) l'script es limita a Node.js 22.
Opcions de la línia d'ordres
| Opció | Efecte |
|---|---|
-p, --port PORT | port TCP (per defecte 1880) |
-u, --userDir DIR | carpeta de dades (per defecte ~/.node-red) |
-s, --settings FILE | fitxer de configuració (per defecte settings.js a la carpeta de dades) |
--safe | obre l'editor sense executar els fluxos |
Windows
A Windows no hi ha script: instal·lem Node.js i després Node-RED amb npm. Fes servir PowerShell, i no un terminal d'administrador.
1. Instal·lar Node.js
Descarrega la versió LTS des de nodejs.org, executa l'MSI i accepta les opcions per defecte. Quan acabi, tanca i torna a obrir PowerShell perquè agafi les variables d'entorn noves.
node --version; npm --version
Si veus dos números de versió, tot va bé. (Alternativa amb Chocolatey: paquet nodejs-lts.)
2. Instal·lar i executar Node-RED
npm install -g node-red node-red
A Windows no es posa sudo. L'ordre node-red escriu el log al terminal: cal mantenir-lo obert, i Ctrl-C atura el servidor. La primera vegada es crea la carpeta de dades .node-red dins la teva carpeta d'usuari. Si Windows mostra un avís del tallafocs per a Node.js, decideix conscientment si vols permetre l'accés des de la xarxa (vegeu l'apartat de seguretat).
Arrencar automàticament (opcional)
Per a un ús més permanent, el Programador de tasques de Windows pot executar C:\Users\<usuari>\AppData\Roaming\npm\node-red.cmd "en iniciar el sistema". Amb PM2 també es pot mantenir sempre en marxa i gestionar-ne el log. A classe no ho necessitem.
Docker
Camí vàlid a qualsevol sistema que tingui Docker. Node-RED corre dins un contenidor i les teves dades queden en un volum a part.
L'ordre bàsica
docker run -d -p 1880:1880 -v node_red_data:/data --name mynodered nodered/node-red
| Part | Què fa |
|---|---|
-d | en segon pla (amb -it veuries el log al terminal) |
-p 1880:1880 | connecta el port 1880 de l'ordinador amb el del contenidor. Sense això no hi pots entrar |
-v node_red_data:/data | desa les dades (/data del contenidor) al volum node_red_data: sobreviuen si esborres el contenidor |
--name mynodered | nom amigable per gestionar-lo |
nodered/node-red | la imatge oficial |
docker logs -f mynodered # veure el log docker stop mynodered # aturar docker start mynodered # tornar-lo a engegar docker pull nodered/node-red # baixar la imatge nova (per actualitzar, cal recrear el contenidor)
Amb Docker Compose
services:
node-red:
image: nodered/node-red:latest
container_name: mynodered
restart: unless-stopped
environment:
- TZ=Europe/Madrid
ports:
- "1880:1880"
volumes:
- node-red-data:/data
volumes:
node-red-data:
Es posa en marxa amb docker compose up -d. Parteix de l'exemple de la documentació; hi he afegit restart i la zona horària.
Pensant en el que ve
- Placa per USB: el contenidor no veu els ports sèrie de l'ordinador si no els hi passes:
--device=/dev/ttyACM0, o--group-add dialoutper al permís. - Broker MQTT: si l'executes en un altre contenidor, posa'ls a la mateixa xarxa Docker i s'hi podran trobar pel nom del contenidor.
Prova de funcionament
Una sola prova per a tots els camins: l'editor s'obre i un flux mínim funciona.
1. L'editor respon
Obre el navegador a http://localhost:1880/. Hauries de veure l'editor, amb un espai de treball buit (Flux 1) i la paleta de nodes a l'esquerra.
Si no s'obre, mira el log: normalment hi ha l'explicació (vegeu "Troba l'error" a la pestanya d'exercicis).
2. Saber llegir el log
4 Oct 21:56:16 - [info] Node-RED version: v5.0.7 4 Oct 21:56:16 - [info] Node.js version: v22.22.2 4 Oct 21:56:16 - [info] Linux 6.18.44-fc-v64 x64 LE 4 Oct 21:56:16 - [info] Settings file : /root/.node-red/settings.js 4 Oct 21:56:16 - [info] User directory : /root/.node-red 4 Oct 21:56:16 - [info] Flows file : /root/.node-red/flows.json 4 Oct 21:56:16 - [info] Server now running at http://127.0.0.1:1880/ 4 Oct 21:56:16 - [info] Starting flows
| Línia | Per a què serveix |
|---|---|
Node-RED / Node.js version | les versions: la primera cosa que cal indicar si demanes ajuda |
Settings file | la configuració (settings.js): port, seguretat… |
User directory | la carpeta de dades: nodes instal·lats, fluxos, credencials |
Flows file | on es desen els fluxos (flows.json) |
Server now running | l'adreça de l'editor |
(Exemple de l'execució real a Linux; als teus sistemes els camins seran uns altres.)
Seguretat: l'editor és obert per defecte
El log diu 127.0.0.1, però no et refiïs d'aquesta línia: ho hem comprovat i, amb la configuració per defecte, Node-RED també respon per l'adreça de xarxa de la màquina. I no demana cap contrasenya. Qualsevol equip de la teva xarxa pot obrir l'editor i, amb el node exec, executar ordres a l'ordinador.
Per limitar-lo a la teva màquina, a settings.js descomenta uiHost: "127.0.0.1" i reinicia. Per a ús real, configura l'autenticació (adminAuth) seguint la guia Securing Node-RED. Sobretot, no l'exposis mai directament a internet.
3. Un flux mínim: Inject → Debug
Al menú (≡) tria Importa (Ctrl+I), enganxa això i prem Importa:
[{"id":"a1b2c3d4e5f60001","type":"inject","z":"f6f2187d.f17ca8","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":140,"y":80,"wires":[["a1b2c3d4e5f60002"]]},{"id":"a1b2c3d4e5f60002","type":"debug","z":"f6f2187d.f17ca8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":330,"y":80,"wires":[]}]
- Prem Desplega (el botó vermell de dalt a la dreta).
- Obre la pestanya Debug (la icona de l'insecte, a la barra lateral).
- Fes clic al quadradet de l'esquerra del node inject.
Al panell de depuració apareix msg.payload amb un nombre molt gran: l'instant actual en mil·lisegons (la marca de temps). Aquest flux (provat en un Node-RED 5.0.7 real) és tot el que cal per saber que el servidor, l'editor i els fluxos funcionen.
Resum d'ordres
| Linux / Raspberry Pi (servei) | Windows (terminal) | Docker | |
|---|---|---|---|
| Arrencar | node-red-start | node-red | docker start mynodered |
| Aturar | node-red-stop | Ctrl-C | docker stop mynodered |
| Reiniciar | node-red-restart | Ctrl-C i node-red | docker restart mynodered |
| Veure el log | node-red-log | és el mateix terminal | docker logs -f mynodered |
| Actualitzar | tornar a executar l'script | npm install -g node-red | docker pull i recrear el contenidor |
| Les dades són a | ~/.node-red | .node-red (carpeta d'usuari) | volum node_red_data (/data) |
Pràctica 1
Fes-los amb el camí que correspon a la teva màquina. Escriu primer el que esperes veure i comprova-ho després.
1. Instal·la i comprova les versions
Instal·la Node-RED amb el camí que correspon al teu sistema. Anota les versions de Node.js, npm i Node-RED.
Pista 1
Amb Linux o Windows: node --version, npm --version i node-red --version. Amb Docker: la versió surt a les primeres línies de docker logs mynodered.
Pista 2
Comprova que la versió de Node.js compleix el mínim de la taula de versions de la teoria.
2. Llegeix el log
Arrenca Node-RED i respon, mirant només el log: quina és la carpeta de dades? Quin és el fitxer on es desaran els fluxos? A quin port escolta?
Pista 1
Busca les línies User directory, Flows file i Server now running.
Pista 2
Obre aquesta carpeta amb l'explorador de fitxers o amb ls i observa què hi ha: settings.js, flows.json…
3. El primer flux
Importa el flux Inject → Debug de la teoria, desplega'l i comprova que, cada cop que fas clic al node inject, apareix un valor al panell de depuració.
Pista 1
Si no veus res, comprova que has premut Desplega després d'importar.
Pista 2
Fes dos clics seguits al node inject i compara els dos valors: quant han augmentat?
4. Dues instàncies
Amb Node-RED ja en marxa al port 1880, arrenca'n una segona sense canviar-hi res i observa què passa. Després, arrenca'n una a un altre port amb una carpeta de dades pròpia.
Pista 1
Prova node-red -p 1881 --userDir ~/nr2. Cada instància necessita el seu port i la seva carpeta de dades.
Pista 2
La carpeta ~/nr2 es crea sola. Obre http://localhost:1881: l'editor és buit, perquè no comparteix fluxos amb l'altra.
5. Qui hi pot entrar?
Esbrina la IP de la teva màquina i comprova si des d'un altre dispositiu de la mateixa xarxa es pot obrir el teu editor. Després, limita'l a la teva màquina i torna-ho a provar.
Pista 1
La IP: hostname -I a Linux, ipconfig a Windows. Prova http://<IP>:1880 des del mòbil connectat a la mateixa Wi-Fi.
Pista 2
Edita settings.js (és a la carpeta de dades), descomenta uiHost: "127.0.0.1" i reinicia Node-RED. Per tornar a obrir l'editor des de l'altre dispositiu, ara hauria de donar error de connexió.
6. (Docker) Les dades sobreviuen?
Desplega un flux, esborra el contenidor (docker rm -f mynodered) i recrea'l amb la mateixa ordre. Què passa amb el flux? Repeteix-ho sense l'opció -v.
Pista 1
Amb -v node_red_data:/data el flux hi continua. Sense volum, desapareix amb el contenidor.
Pista 2
Pots veure els volums existents amb docker volume ls.
Entrena't: troba l'error
Llegeix el que veu l'alumne i digues què falla. Després mostra la solució i compara. Cada cop surt un cas diferent.