Introduzione
Recentemente sta riscuotendo molto successo la programmazione mediante strumenti “low-code”. Questi permettono infatti di creare applicazioni mediante l’utilizzo di interfacce grafiche anziché attraverso la scrittura di codice sorgente.
Node-RED appartiene a questa famiglia di tool: si tratta di un pratico strumento di sviluppo visivo particolarmente adatto all'utilizzo in ambito Internet of Things. È un modulo di Node.js e come tale eredita vantaggi quali reattività e integrazione con le diverse tecnologie.
In questo tutorial vedrai come installare Node-RED sul tuo server Linux Ubuntu 20.04, e come metterlo in sicurezza limitando il pieno accesso ai tuoi progetti ai soli utenti da te autorizzati.
Per prima cosa dovrai connetterti al tuo server tramite una connessione SSH. Se non l’hai ancora fatto, ti consigliamo di seguire la nostra guida per connetterti in sicurezza con il protocollo SSH. In caso di server locale puoi passare al punto successivo e aprire il terminale del tuo server.
Installazione di Node.js
Prima di procedere con l’installazione di Node-RED devi installare Node.js sul tuo server. In questo tutorial utilizzeremo l’ultima versione di Node.js, disponibile ad oggi, che è la 14.0.
Digita quindi questi comandi per procedere con l’installazione di Node.js:
curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash --
sudo yum install -y nodejs
Oltre a Node.js verrà installato anche il relativo Packet Manager “npm”, fondamentale per l’installazione di ogni suo modulo. Per verificare la buona riuscita dell’installazione mediante i comandi precedenti, puoi controllare l’eventuale versione dei software installati digitando:
node -v
npm -v
Installazione di Node-RED
A questo punto è tutto pronto per l’installazione di Node-RED. Digita quindi il seguente comando:
sudo npm install -g --unsafe-perm node-red
Se la procedura di installazione è avvenuta correttamente, Node-RED risulterà installato sul tuo Server. Per avviarlo ti basterà eseguire il comando:
node-red -v
Inserendo “-v” abiliti la modalità “verbosa”: sul terminale verranno mostrati molti più log che indicheranno cosa succede sull’editor. Se preferisci che sul terminale vengano mostrate meno informazioni puoi omettere tale sigla.
Una volta avviato, apri il tuo browser e recati all’indirizzo IP del tuo server indicando la porta 1880: http://server_ip:1880/

Una volta caricata la pagina, ti troverai direttamente all’interno dell’editor di Node-RED.
Tuttavia è ora necessario mettere in sicurezza l'installazione di Node-RED. Se ti fermassi a questo punto, sarebbe infatti possibile per chiunque recarsi a questo indirizzo e avere il pieno controllo dei tuoi progetti.
Per evitarlo è necessario installare lo strumento Node-RED Admin tramite il quale potrai definire con precisione l’elenco degli utenti autorizzati e i relativi permessi di modifica o sola lettura.
Installazione di Node-RED Admin
Per procedere con l’installazione del tool devi eseguire il seguente comando:
npm install -g --unsafe-perm node-red-admin
Una volta installato questo plugin, devi procedere con la creazione dell’utente e l’assegnazione dei privilegi.
Questa operazione avviene indicando tali credenziali all’interno di un file di configurazione di Node-RED stesso. La password però non deve essere salvata in chiaro, bensì deve essere cifrata affinchè non venga identificata mediante la lettura di questo file di configurazione.
Per compiere questa operazione bisogna avvalersi della funzionalità messa a disposizione dall’ultimo plugin installato. Digita quindi il seguente comando:
node-red admin hash-pw
Ti verrà richiesto di digitare la password da voler cifrare. Questa operazione non agisce direttamente sulla configurazione di Node-RED, bensì fornisce sul terminale la versione cifrata della password inserita:
Una volta ottenuta la password cifrata devi copiarla nei tuoi appunti per poi inserirla nel file di configurazione.
Configurazione degli accessi a Node-RED
Per conoscere dove sia collocato il file di configurazione avvia Node-RED mediante il comando:
node-red --settings
Una volta eseguito il comando, tra le varie voci “info” ti comparirà anche la posizione del file “settings”.
Prima di procedere con la modifica del file devi chiudere Node-RED appena avviato. Digita quindi:
CTRL+C
Recati quindi sul quel percorso ed edita il file mediante il tuo editor di testo. In questo caso verrà utilizzato “nano” e il comando da eseguire è:
nano path/settings.js
N.B. sostituisci il parametro “path” con il percorso mostrato dal comando precedente. All’interno del file di configurazione recati alla voce “adminAuth” e decommenta (rimuovendo i “//”) le voci mostrate in figura.

Sostituisci quindi:
- username: con il nome dell’utente;
- password: con la password criptata precedentemente creata;
- permission: questo campo può assumere valore “*” (possibilità di leggere e apportare modifiche) o “read” (possibilità di accedere all’editor ma solo in lettura).
Qualora desiderassi aggiungere ulteriori utenti che possano far accesso al sistema con credenziali e/o privilegi differenti, copia la struttura all’interno delle parentesi graffe e ripetila separando ciascuna di esse con una virgola (come mostrato nella figura sottostante).
Se hai bisogno di creare più utenti dovrai chiaramente ripetere l’operazione di cifratura della password, spiegata in precedenza, utilizzando quella che vuoi dedicare a tali utenti.

In figura sono stati creati quindi due utenti che possano fare accesso all’editor:
- “admin”: che può apportare modifiche al progetto;
- “guest”: che può solamente visualizzare, senza però poter apportare alcuna modifica.
Quando avrai terminato, chiudi l’editor digitando:
CTRL+X / Y / Invio
Avvia nuovamente Node-RED mediante il comando:
node-red
Apri il tuo browser e recati all’indirizzo IP del server sulla porta 1880: http://server_ip:1880/

Da questo momento ogni volta che effettuerai il login all’editor di Node-RED dovrai necessariamente indicare le credenziali dell’utente con il quale vorrai effettuare il login.
Conclusioni
Al termine di questa guida Node-RED risulterà correttamente installato sul tuo server Ubuntu 20.04 e sarà accessibile all’indirizzo http://ip_server:1880.
Grazie all'ampia community, che supporta attivamente lo sviluppo open-source di Node-RED, sarai in grado di realizzare differenti applicazioni, integrabili con le diverse tecnologie anche mediante i numerosi plugin messi a disposizione.