
In questo articolo vedremo passo dopo passo come installare e configurare Node-RED su Ubuntu Server 24.04 LTS, creando la base per sviluppare flussi di automazione, integrazione e monitoraggio.
Node-RED è una piattaforma open source basata su Node.js, pensata per costruire applicazioni IoT (Internet of Things) e workflow di automazione in modo visuale, senza dover scrivere lunghi script.
Attraverso un’interfaccia web semplice e intuitiva, permette di collegare dispositivi, API, database e servizi cloud tramite un sistema di blocchi grafici chiamati nodi.
Configurarlo su un server Ubuntu consente di trasformare una macchina Linux in un hub intelligente capace di gestire sensori, processi industriali, notifiche e persino sistemi di domotica.
In questa guida vedremo come installarlo in modo sicuro e stabile, come configurare il servizio per l’avvio automatico, e come accedere all’interfaccia web per iniziare subito a creare flussi.
PREREQUISITI
Prima di installare Node-RED su Ubuntu 24.04, assicurati di avere:
- Ubuntu aggiornato e funzionante
- Accesso sudo
- Node.js LTS + npm installati
- Firewall aperto sulla porta 1880
- Rete funzionante
- (Facoltativo) Utente dedicato per il servizio
- (Facoltativo) Build tools per moduli aggiuntivi
INSTALLAZIONE DI NODE.JS
Verificare l’utlima versione stabile di NOde.js al seguente link:
L’ultima versione stabile è attualmente Node.js v22.x quindi aggiungere il repository con il seguente comando:
|
0 |
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash - |
Aggiornare i repository e aggiornare i pacchetti e installare Node.js con il comando:
|
0 |
apt update && apt upgrade -y && apt install -y nodejs |
Una volta eseguito il comando controllare quali versioni di Node e NPM sono state installate con il comando:
|
0 |
node -v && npm -v |
Dovremmo visualizzare il eguente output:
|
0 1 |
v22.20.0 10.9.3 |
INSTALLAZIONE DI NODE-RED
Procedere con l’installazione di Node-Red con il comando:
|
0 |
npm install -g --unsafe-perm node-red |
ATTENZIONE: al momento della stesura del seguente articolo l’ultima versione stabile è la v4.1.1
Installare Node-Red-Admin con il comando:
|
0 |
npm install -g --unsafe-perm node-red-admin |
Generare quindi un hash per la password dell’utente con il comando:
|
0 |
node-red admin hash-pw |
Verrà chiesto di inserire la password che si desidera utilizzare.
ATTENZIONE: salvare l’hash per aggiungerlo al file di configurazione in un secondo momento.
Testare il funzionamento di Node-Red con il seguente comando:
|
0 |
node-red --settings |
Dovremmo visualizzare un output simile al seguente:
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
Welcome to Node-RED =================== 19 Oct 11:26:07 - [info] Node-RED version: v4.1.1 19 Oct 11:26:07 - [info] Node.js version: v22.20.0 19 Oct 11:26:07 - [info] Linux 6.8.0-85-generic x64 LE 19 Oct 11:26:07 - [info] Loading palette nodes 19 Oct 11:26:08 - [info] Settings file : /root/.node-red/settings.js 19 Oct 11:26:08 - [info] Context store : 'default' [module=memory] 19 Oct 11:26:08 - [info] User directory : /root/.node-red 19 Oct 11:26:08 - [warn] Projects disabled : editorTheme.projects.enabled=false 19 Oct 11:26:08 - [info] Flows file : /root/.node-red/flows.json 19 Oct 11:26:08 - [info] Creating new flow file 19 Oct 11:26:08 - [warn] --------------------------------------------------------------------- Your flow credentials file is encrypted using a system-generated key. If the system-generated key is lost for any reason, your credentials file will not be recoverable, you will have to delete it and re-enter your credentials. You should set your own key using the 'credentialSecret' option in your settings file. Node-RED will then re-encrypt your credentials file using your chosen key the next time you deploy a change. --------------------------------------------------------------------- 19 Oct 11:26:08 - [info] Server now running at http://127.0.0.1:1880/ 19 Oct 11:26:08 - [warn] Encrypted credentials not found 19 Oct 11:26:08 - [info] Starting flows 19 Oct 11:26:08 - [info] Started flows |
CREAZIONE DEL SERVIZIO DI NOD-RED
Creare il servizio nodered.service con il seguente comando:
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
sudo tee /etc/systemd/system/nodered.service >/dev/null <<'EOF' [Unit] Description=Node-RED After=network.target [Service] Type=simple User=user-node-red Group=user-node-red Nice=5 Environment="NODE_OPTIONS=--max_old_space_size=256" ExecStart=/usr/bin/env node-red --userDir /home/user-node-red/.node-red Restart=on-failure KillSignal=SIGINT [Install] WantedBy=multi-user.target EOF |
NOTA BENE: Sostituire l’utente user-node-red con l’utente desiderato
Assicurarsi che l’utente esista e che abbia la home corretta con il comando:
|
0 |
id user-node-red |
NOTA BENE: Sostituire l’utente user-node-red con l’utente desiderato
Dovremmo visualizzare il seguente output:
|
0 |
uid=1000(user-node-red) gid=1000(user-node-red) groups=1000(user-node-red),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),101(lxd) |
Sistemare i permessi della cartella di lavoro con i seguenti comandi:
|
0 1 |
sudo mkdir -p /home/user-node-red/.node-red sudo chown -R user-node-red:user-node-red /home/user-node-red/.node-red |
NOTA BENE: Sostituire l’utente user-node-red con l’utente desiderato
Applicare e avviare il servizio con i seguenti comandi:
|
0 1 |
sudo systemctl daemon-reload sudo systemctl enable --now nodered.service |
Controllare il servizio che sia attivo con il comando:
|
0 |
systemctl status nodered --no-pager |
Dovremmo visualizzare il seguente output:
|
0 1 2 3 4 5 6 7 8 |
● nodered.service - Node-RED Loaded: loaded (/etc/systemd/system/nodered.service; enabled; preset: enabled) Active: active (running) since Sun 2025-10-19 11:45:54 CEST; 5min ago Main PID: 9474 (node-red) Tasks: 11 (limit: 979) Memory: 55.4M (peak: 74.4M) CPU: 1.560s CGroup: /system.slice/nodered.service └─9474 node-red |
Per provarlo utilizzare un browser e inserisci l’URL http://FQDN-SERVER-O-IP:1880.
Ricordarsi di avere la porta Node-Red predefinita (1880 TCP) aperta nel profilo Firewall assegnato sul server.
INSTALLAZIONE DI NGINX COME REVERSE PROXY
Per poter utilizzare Node-Red installare Nginx con il comando:
|
0 |
apt install nginx |
Creare il file host virtuale sostituendo il tuo dominio con il tuo dominio effettivo.
|
0 |
nano /etc/nginx/sites-available/nodered.conf |
Utilizzare il seguente codice per il file di configurazione dell’host virtuale:
|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
server { listen 80; server_name NOME-DEL-SERVER-O-IP; location / { proxy_pass http://localhost:8065; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # opzionale ma consigliato proxy_read_timeout 90; proxy_redirect off; } } |
NOTA BENE: Al posto di NOME-DEL-SERVER-O-IP inserire il nome FDQN del server o l’indirizzo IP
Salvare e chiudere il file di configurazione
Crea un link simbolico in sites-enabled con il comando:
|
0 |
sudo ln -s /etc/nginx/sites-available/nodered.conf /etc/nginx/sites-enabled/ |
Controllare che la sintassi di Nginx sia corretta con il comando:
|
0 |
sudo nginx -t |
Se tutto è OK ricaricare Nginx con il comando:
|
0 |
sudo systemctl reload nginx |
ACCESSO A NODE-RED DA PAGINA WEB
A questo punto da un qualsiasi browser aprire il seguente link: http://FQDN-SERVER-O-IP
Al primo accesso alla Dashboard eseguire il mini tour guidato sulle funzionalità
Dovremmo visualizzare la Home di Node-Red come mostrato nell’immagine sovrastante
A questo punto collegare sensori, API, database, servizi cloud, dispositivi, ecc. disegnando flussi logici con blocchi drag-and-drop senza dover scrivere molto codice.
FUNZIONALITA’ DI NODE-RED
⚙️ Architettura di base
Node-RED si compone di tre elementi principali:
- Runtime – è il motore che esegue i flussi e gestisce tutti i nodi.
- Editor Web – è l’interfaccia grafica accessibile da browser, dove si costruiscono i flussi trascinando i blocchi e collegandoli con linee.
- Libreria e Flussi – contiene i progetti, i nodi e le configurazioni, salvati in formato JSON.
Editor visuale
L’editor web di Node-RED è uno dei suoi punti di forza.
Da lì puoi creare, modificare e testare automazioni in tempo reale:
- I flussi si costruiscono con drag & drop.
- Ogni nodo ha un’icona, un colore e una funzione specifica.
- Puoi collegare nodi con frecce per indicare il flusso dei dati.
- È possibile commentare, raggruppare, cercare e duplicare parti di flusso.
- Il tutto si gestisce tramite un browser all’indirizzo predefinito http://localhost:1880.
Nodi e flussi
I nodi sono i blocchi funzionali di base. Ogni nodo fa un’azione: leggere un dato, elaborarlo, o inviarlo da qualche parte.
Un insieme di nodi collegati tra loro forma un flusso.
Esistono nodi di diversi tipi:
- Input per ricevere dati da sensori, API, MQTT, database, file, ecc.
- Output per inviare dati verso altri sistemi.
- Funzione per trasformare o elaborare i dati con logica JavaScript.
- Dashboard per creare interfacce grafiche interattive.
- Utility per temporizzazioni, filtri, logica condizionale e così via.
Puoi inoltre installare migliaia di nodi aggiuntivi creati dalla community per estendere le funzioni del sistema.
Supporto a protocolli e comunicazioni
Node-RED può comunicare con quasi qualsiasi tipo di servizio o dispositivo.
Gestisce protocolli come MQTT, Modbus, OPC-UA, BACnet, HTTP, HTTPS, WebSocket, TCP, UDP, e molti altri.
Può leggere e scrivere dati su database (MySQL, PostgreSQL, InfluxDB, MongoDB), servizi cloud (AWS, Azure, Google Cloud), o persino sistemi di messaggistica come Telegram e Slack.
Dashboard e interfacce utente
Con il modulo node-red-dashboard, puoi creare facilmente interfacce web interattive.
Puoi aggiungere grafici, indicatori, pulsanti, slider, tabelle e visualizzare i dati in tempo reale.
Queste dashboard sono accessibili via browser su un indirizzo come http://<tuo-server>:1880/ui.
È molto utile per monitorare sensori, dispositivi, o processi industriali.
Elaborazione dei dati
Node-RED permette di trasformare e manipolare i dati in mille modi:
Con nodi preconfigurati per cambiare valori, formati, testi o strutture JSON.
Con il nodo Function, che consente di scrivere codice JavaScript personalizzato.
Con nodi che uniscono, dividono, ritardano o filtrano i messaggi.
Con logiche condizionali (if, switch, delay, trigger) e temporizzatori.
Puoi, ad esempio, ricevere un dato da un sensore, verificarlo, e se supera una soglia, inviare una notifica o accendere un relè.
Variabili e contesto
Node-RED gestisce variabili su tre livelli:
- Variabili locali (legate al singolo messaggio).
- Variabili di flusso, condivise solo all’interno di uno stesso flusso.
- Variabili globali, accessibili da tutti i flussi.
Puoi anche rendere queste variabili persistenti salvandole su file o database, in modo che mantengano i valori dopo un riavvio.
Sicurezza
Node-RED può essere protetto in diversi modi:
- Autenticazione con nome utente e password per accedere all’editor.
- Possibilità di attivare HTTPS con certificati SSL.
- Controllo dei permessi con ruoli (solo lettura, editore, amministratore).
- Limitazione dell’accesso all’interfaccia a determinati indirizzi IP.
Queste impostazioni vengono definite nel file settings.js.
Deploy e versionamento
Ogni volta che modifichi un flusso, puoi “deployarlo” con un solo clic.
Puoi scegliere se applicare le modifiche a:
- Tutti i flussi.
- Solo quelli modificati.
- Solo i nodi modificati.
Node-RED include anche la funzione Projects, che integra Git per gestire versioni, commit e backup dei tuoi flussi in modo professionale.
Automazione temporale
Puoi creare automazioni basate su tempo o eventi.
I nodi inject, delay, trigger o cron-plus ti permettono di programmare azioni a intervalli, in orari specifici o dopo determinati eventi.
È perfetto, per esempio, per accendere luci a un’ora prestabilita o per inviare report giornalieri.
Debug e monitoraggio
Node-RED include strumenti di debug molto semplici ma efficaci:
- Il nodo debug mostra i dati che passano nei flussi in tempo reale.
- I log di sistema consentono di capire cosa succede dietro le quinte.
- Puoi visualizzare errori, tempi di esecuzione e performance di ogni nodo.
- È possibile inviare i log verso altri sistemi di monitoraggio come Grafana o Elastic.
Integrazione con altri ecosistemi
Node-RED si integra con moltissimi sistemi e piattaforme:
- Home Assistant, Shelly, Zigbee2MQTT e altre soluzioni per la domotica.
- PLC industriali e sistemi SCADA tramite Modbus o OPC-UA.
- Cloud services come AWS IoT, Azure IoT Hub, Google Cloud, o OpenAI.
- Database e strumenti di analisi dati come InfluxDB, Grafana, MySQL, MongoDB.
- Sistemi di notifica e chat come Telegram, Discord e Slack.
Portabilità e distribuzione
Node-RED è leggero e può funzionare praticamente ovunque:
- Su server Linux, Windows o macOS.
- Su Raspberry Pi o micro-PC embedded.
- In container Docker o cluster Kubernetes.
- Come servizio di sistema (systemd o snap).
Vantaggi principali
È low-code, quindi riduce il bisogno di programmazione tradizionale.
È open source e completamente gratuito.
È multipiattaforma e funziona quasi ovunque.
È estremamente estensibile, grazie alla community attiva e ai moduli aggiuntivi.
Supporta quasi tutti i protocolli industriali e cloud.
Permette di creare soluzioni reali in poche ore invece di giorni.
In sintesi
Node-RED è una piattaforma visuale che ti permette di automatizzare processi, collegare servizi diversi e gestire dispositivi IoT, tutto in modo semplice e visivo.
È usato sia in domotica e industria sia in ambiti IT, cloud e analisi dati.



0 commenti