Ce tutoriel couvre l'installation de Node-RED sur OpenBSD, pour un fonctionnement suivant :
_nodered
/data/nodered
Créer le répertoire :
# mkdir -p /data/nodered/.ssl
Ajouter l'utilisateur système :
# groupadd -v -g 777 _node-red # useradd -v -c "Node Red daemon" -d /data/nodered -g 777 -s /sbin/nologin -u 777 _node-red # chmod 755 /etc/rc.d/node-red
# pkg_add node # npm install -g --unsafe-perm node-red # npm install -g node-red-admin
Démarrons Node-Red pour créer l'arborescence applicative dans /data/node-red
doas -u _node-red /usr/local/bin/node-red --title "Node-Red : Home Automation" --userDir /data/node-red
Nous pouvons arreter Node-Red via Ctrl C
/etc/rc.local
if [ -x /usr/local/bin/node-red ]; then echo 'Starting Node-Red' && doas -u _node-red /usr/local/bin/node-red --title "Home Automation" --userDir /data/nodered fi
Ouvrir votre navigateur url: xxx.xxx.xxx.xxx:1880
Créer un mot de passe chiffré :
$ node-red-admin hash-pw Password: <Entrer un mot de passe> $2a$08$gxCsv3bGcPOvlarJiZw.QOqNfQKak7.vzltgRIAbGScbvGdOfE3HO
Décommenter l'objet utilisateur adminAuth
dans /data/nodered/settings.js
// Securing Node-RED // ----------------- // 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$gxCsv3bGcPOvlarJiZw.QOqNfQKak7.vzltgRIAbGScbvGdOfE3HO", permissions: "*" }] },
Créer un mot de passe chiffré :
$ node-red-admin hash-pw Password: <Entrer un mot de passe> $2a$08$Fa6lO1rVaMPZYsxivz/PVOJoMly4/.Qi9EqMhReMMOLzutmVcC8Ty
Décommenter le node httpd dans /data/nodered/settings.js
(...) // To password protect the node-defined HTTP endpoints (httpNodeRoot), or // the static content (httpStatic), the following properties can be used. // The pass field is a bcrypt hash of the password. // See http://nodered.org/docs/security.html#generating-the-password-hash httpNodeAuth: {user:"dashUser",pass:"$2a$08$Fa6lO1rVaMPZYsxivz/PVOJoMly4/.Qi9EqMhReMMOLzutmVcC8Ty"}, //httpStaticAuth: {user:"user",pass:"$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN."}, (...)
Créer un certificat SSL auto signé :
# cd /data/nodered/.ssl/ # openssl genrsa -out node.key 2048 # openssl req -new -sha256 -key node.key -out node.csr # openssl x509 -req -in node.csr -signkey node.key -out node.crt # chmod 400 *
Décommenter dans /data/nodered/settings.js
(...) // The `https` setting requires the `fs` module. Uncomment the following // to make it available: var fs = require("fs"); (...) // The following property can be used to enable HTTPS // See http://nodejs.org/api/https.html#https_https_createserver_options_requestlistener // for details on its contents. // See the comment at the top of this file on how to load the `fs` module used by // this setting. // https: { key: fs.readFileSync(__dirname +'/.ssl/node.key'), cert: fs.readFileSync(__dirname +'/.ssl/node.crt') // The following property can be used to cause insecure HTTP connections to // be redirected to HTTPS. requireHttps: true,
Contribut(rice|eur)s :