Node-RED è uno strumento nato con l’idea di gestire il mondo dell’ IoT tramite il paradigma dei flussi di dati, la sua base è JavaScript con il famosissimo Node.js il quale sfrutta tutte le sue potenzialità e la sua estesa documentazione e community. Nei flussi viaggiano pacchetti di dati, preferibilmente tramite il protocollo MQTT, ed in formato JSON, che saltano da un nodo (i singoli oggetti del menù a sinistra) eseguendo azioni, calcoli, analisi ed eventi tramite javascript verso siti web, dashboard, sensori ed ogni apparecchio o servizio che riusciamo ad interfacciare, il tutto con grande semplificazione e facilità.
La prima cosa da fare (a mio parere sempre) è un aggiornamento delle repository e un upgrade totale.
sudo apt update
sudo apt upgrade
di seguito installiamo nodejs che è fondamentale per poter avere il nostro node-red
sudo apt install nodejs build-essential
l'installaizione di nodejs potrebbe riportare qualche errore dovuto ad altri applicativi installati, volendo potete forzare l'installazinone anche se io consiglio sempre di analizzarele problematiche per non rischiare di compromettere il sistema.
terminata l'installazione del nostro nodejs verifichiamo che tutto funzioni correttamente
nodejs --version
npm --version
se tutto va come deve avremo una risposta simile a questa
nodejs v18.19.0
npm v9.2.0
a questo punto entriamo nel vivo..
sudo npm install -g --unsafe-perm node-red
analiziamo quello che abbiamo chiesto al nostro terminale
se non siamo su un sistema vergine potremmo anche qui riscontrare delle nomalie dovute ai permessi ed all'azione eseguita lato root (amministratore) , possiamo provare l'installazione come utente nomrale quindi rimuovendo il SUDO dalla stringa di terminale.
Finito questo passaggio abbiamo terminato la nostra installazione. ci basterà dare l'avvio al nostro node-red e il gioco è fatto.
node-red
avviato il nostro applicativo ci basterà aprire il browser su un altro device ed inserire l'indirizzo ip del nostro server con la porta 1880 per visualizzare l'interfaccia grafica del nostro NODO. (esempio nel mio caso)
http://192.168.1.25:1880
Attenzione!! può capitare che il firewall interno eviti l'accesso al server da parte di ip esterni al locale, facciamo un tentativo disabilitando ufw
sudo ufw disable
se dopo questo comando riusciamo a vedere la nostra interfaccia grafica dovremo impostare le regole del firewall e ri abilitarlo, per una questione di sicurezza non conviene mai lasciare disabilitato il firewall del nostro server, un metodo veloce può essere aprire la porta 1880 a prescindere
sudo ufw deny 1880
systemctl start node-red
Molti si chiedono , Come faccio a mettere la password per accedere alla configurazione di Node-red ? Beh ti sembreà strano ma non è previsto di default nel pacchetto quindi dobbiamo installare un altr piccolo pacchetto che si chiama node-red-admin
sudo npm install -g --unsafe-perm node-red-admin
una volta installato questo pacchetto aggiuntivo dobbiamo inerire le credenziali e quale modo più sicuro di crittografare le stesse ?
node-red-admin hash-pw
dopo questo comnado ci verra chiesto di inserire la nostra password, lui ci risponderà con un hash codificato che dovremo copiare ed incollare nel nostro file di configurazione setting.js
nano ~/.node-red/settings.js
cerchiamo il blocco "adminAuth" rimuoviamo il commento "//" ed inseriamo la stringa di hash appena generata
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "$2a$0HASHAPPENAGENERATOWV5KS",
permissions: "*"
}]
},
salviamo il nostro setting.js e riavviamo nuovamente il nostro node-red
node-red
ora recandoci all'indirizzo del nostro server http://indirizzoipdelserver:1880 e ci ritroveremo questa pagina
il nomr utente sarà admin e la password quella scelta per generare il nostro famoso hash...
Node-red si avvia come processo quidi se chiudiamo il terminale o disconnettiamo la nostra sessione di SSH questo si terminerà.. Come risolviamo ?
nano Nel 2 caso affidiamo la gestione dell'esecuzione a PM2 che è un process manager che ci aiuta ad avviare le nostre applicazioni Node.js all’avvio del Sistema Operativo e riavviarle con facilità sfruttando anche una sua interfaccia di monitoraggio. Ma non è questo il caso (se vuoi approfondirlo non eistare a contattarmi nell'apposita sezione)
Useremo la prima ipotesi, quella di creare un servizio in autorun. Per fare ciò dobbiaomo seguire pochi passaggi.
sudo nano /etc/systemd/system/node-red.service
inserieamo la seguente configurazione
[Unit]
Description=Node-RED
After=syslog.target network.target
[Service]
ExecStart=/usr/local/bin/node-red
Restart=on-failure
KillSignal=SIGINT
# log output in syslog come 'node-red'
SyslogIdentifier=node-red
StandardOutput=syslog
# non usiamo l'utnte root per avviare il processo
WorkingDirectory=/home/fabiodirauso/User=fabiodirauso
Group=fabiodirauso
[Install]
WantedBy=multi-user.target
Attenzione!! ovviamente devi sostituire "fabiodirauso" nella configurazione con il tuo nome utente altrimenti andra in errore.
Ora non ci resta che attivare il servizio appena creato ed avviarlo.
sudo systemctl enable node-red
sudo systemctl start node-red
nel caso volessimo fermare il nostro processo basterebbe dare il comando
sudo systemctl stop node-red
anche in caso di un riavvio veloce basta dare il comando
sudo systemctl restart node-red
se invece vuoi sapere lo stato del processo ti basta scrivere
sudo systemctl status node-red
Abbiamo visto come installare il nostro Node-Red, abbiamo visto come aggiungere all'interfaccia un sistema di identificazione con nomeutente e password per amministrare il processo, abbiamo visto come avviare al boot il nostro Node-Red , ci sarebbe ancora tanto da poter approfondire ma non è questo il momnto. Nel caso hai altre curiosità non esitare a contattarmi nell'apposita sezione del sito.
Leggi anche "Guida alla configurazione di un server Ubuntu in sicurezza " Clicca qui
Negli ultimi anni, le pompe di calore sono di ...
Leggi ->Cosa è un pdf ? Un PDF, che sta per "Portable Do ...
Leggi ->L'avventura all'aria aperta è un ...
Leggi ->Le batterie tradizionali, come quelle al piombo-acido e agli ioni di litio, hanno ...
Leggi ->Il Dreame L10s Ultra è un robot aspirapolvere/lavapavimenti con stazione autopule ...
Leggi ->Benvenuti nell'approfondimento dedicato al saldatore a stilo, lo strumento p ...
Leggi ->Registrare lo schermo di Android senza app esterne: una guida completa ...
Leggi ->Un router è un dispositivo di rete che si occupa di inoltrare pacchetti di dati a ...
Leggi ->