Node-RED és una eina de desenvolupament basada en fluxos per a la programació visual desenvolupada originalment per IBM per connectar dispositius de maquinari, API i serveis en línia com a part de l'Internet of Things.
En aquest article s'explicarà breument la instal·lació de Node-Red en un Ubuntu 24.04 LTS mitjançant NPM amb Node.js. Recomanem instal·lar l'última versió de Node.js, que pots consultar al seu repositori de Github.
Actualment, l'última versió és Node.js v20.x; per tant, afegim el repositori d'aquesta versió:
# curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - Després actualitzem els repositoris, actualitzem els paquets i instal·lem Node.js:
# apt update && apt upgrade -y && apt install -y nodejsUn cop executada l'ordre, comprovem quines versions de Node i NPM s'han instal·lat:
# node -v && npm -vInstal·lació de Node-Red:
# npm install -g --unsafe-perm node-redInstal·lació de Node-Red-Admin:
# npm install -g --unsafe-perm node-red-adminA continuació, genera un hash per a la contrasenya de l'usuari:
# node-red admin hash-pw Et demanarà que introdueixis la contrasenya que vols utilitzar. Recorda desar el hash per afegir-lo al fitxer de configuració més endavant, però pots provar el funcionament de Node-Red amb:
# node-redPer provar-lo, utilitza un navegador i introdueix l'URL http://dirección_IP_servidor:1880. Recorda tenir obert el port per defecte de Node-Red (1880 TCP) al perfil de Firewall assignat al servidor.
Al navegador hauria d'aparèixer l'inici de sessió de Node-Red:
Després atura el procés amb "Ctrl+C" per editar el fitxer de configuració per habilitar HTTPS, descomentar les línies d'autenticació i afegir el hash de la contrasenya.
Per activar HTTPS cal un certificat amb la clau corresponent; podries configurar un servidor intermediari invers amb Apache o NGINX per utilitzar Certbot per a la configuració i la renovació automàtiques.
Tot i això, pots optar simplement per utilitzar un certificat autosignat; per fer-ho, pots executar el següent:
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/selfsigned.key -out /etc/ssl/certs/selfsigned.crt
Un cop introduïdes les dades i generats els fitxers, edita el fitxer de configuració:
# vi /root/.node-red/settings.jsA l'apartat https hauràs de descomentar-lo i afegir-hi els camins:
https: {
key: require("fs").readFileSync('/etc/ssl/private/selfsigned.key'),
cert: require("fs").readFileSync('/etc/ssl/certs/selfsigned.crt')
},
Després fes el mateix amb l'apartat adminAuth; hauria de ser semblant al contingut següent (recorda substituir el hash pel hash generat):
/** To password protect the Node-RED editor and admin API, the following
* property can be used. See http://nodered.org/docs/security.html for details.
*/
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.",
permissions: "*"
}]
},
També podries afegir un altre usuari, per exemple, de només lectura (opcional):
/** To password protect the Node-RED editor and admin API, the following
* property can be used. See http://nodered.org/docs/security.html for details.
*/
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.",
permissions: "*"
},
{
username: "invitado",
password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.",
permissions: "read"
}]
},
Després, per provar les credencials, pots tornar-lo a iniciar ("Ctrl+C" per aturar-lo):
# node-red -vUn cop hagis verificat el funcionament de les credencials, pots utilitzar un servei perquè Node-Red s'iniciï automàticament durant l'arrencada del sistema operatiu amb systemd. Per fer-ho, crea el fitxer del servei:
# vi /etc/systemd/system/Node-Red.serviceAquest fitxer del servei hauria de tenir el contingut següent:
# Aquest script funciona en qualsevol sistema que utilitzi systemd com a procés d'inicialització.
# Funciona a Ubuntu Focal.
# Si tens Debian/Raspbian Wheezy i vols utilitzar aquest script amb systemd
# segueix la informació que trobaràs aquí : https://wiki.ubuntu.com/systemd
# Per consultar el registre : journalctl -u Node-RED
[Unit]
Description=Node-RED is a tool for wiring together hardware devices, APIs and
online services in new and interesting ways.
After=syslog.target network.target
Documentation=http://nodered.org/
[Service]
Environment="NODE_OPTIONS="
Environment="NODE_RED_OPTIONS=-v"
#Camí complet a Node.js
ExecStart=/usr/bin/node-red $NODE_OPTIONS $NODE_RED_OPTIONS
WorkingDirectory=/root/.node-red/
# Usuari/grup que inicia node-RED (es recomana crear un usuari nou per a Node-RED)
# Pots executar : sudo useradd node-red
# després substitueix User=root per User=node-red
User=root
Group=root
Nice=10
SyslogIdentifier=Node-RED
StandardOutput=syslog
# Fes que Node-RED es reiniciï si falla
Restart=on-failure
# Node-RED necessita un SIGINT perquè se li notifiqui que s'ha d'aturar
KillSignal=SIGINT
[Install]
WantedBy=multi-user.target
Finalment, torna a carregar els dimonis, habilita el servei, inicia'l i comprova'n l'estat:
# systemctl daemon-reload && systemctl enable Node-Red.service && systemctl start Node-Red.service && systemctl status Node-Red.service
Esperem haver-te ajudat amb aquest tutorial. L'has provat? Deixa'ns els teus comentaris! 🙂
Recorda que, si tens consultes sobre aquesta o qualsevol altra qüestió relacionada amb els teus servidors a Clouding, no dubtis a escriure a soporte@clouding.io Som al teu costat per al que necessitis!