Web-1/NodeRed/NodeRed-configuratie: verschil tussen versies
Geen bewerkingssamenvatting |
k (Eelco heeft de pagina Web1/NodeRed/NodeRed-configuratie hernoemd naar Web-1/NodeRed/NodeRed-configuratie zonder een doorverwijzing achter te laten) |
(Een tussenliggende versie door dezelfde gebruiker niet weergegeven) | |
(geen verschil)
|
Huidige versie van 18 jan 2018 om 19:41
Configureren van NodeRed
Onderstaande aanwijzingen zijn in eerste instantie bedoeld voor Cloud9. Voor andere Unix/Linux-systemen kun je die waarschijnlijk ook direct gebruiken. (Voor Windows?)
NodeRed-configuratie (settings.js)
De configuratie vind je in het bestand settings.js
. Op de meeste systemen vind je dit in de user-directory $HOME/.node-red
.
- Voordat je NodeRed kunt configureren, moet je dit eerst een keer opstarten (
$ node-red
); anders is er nog geen user-directory aangemaakt.
Voor de zekerheid maken we een kopie van de originele versie:
cp $HOME/.node-red/settings.js $HOME/.node-red/settings.js.orig
Cloud9
Omdat deze user-directory in Cloud9 niet toegankelijk is voor de cloud9-editor, maken we voor dat systeem een (symbolische) link van deze map naar de workspace.
ln -s $HOME/.node-red ~/workspace/.node-red
Je kunt het configuratie-bestand dan in de workspace vinden als .node-red/settings.js
. Je opent het in de editor door een dubbel-klik op deze naam in de linker navigatiekolom.
Gebruik van statische web-bestanden
We gebruiken voor de dynamische webpagina's NodeRed-flows. Maar een website bevat vaak ook statische bestanden, zoals css- en javascript-bestanden. Het is eenvoudiger om die direct af te laten handelen, buiten de flows om. In de configuratie (settings.js) kun je aangeven waar de server deze statische bestanden kan vinden.
In dit geval moet je het URL-pad voor de flow-editor aanpassen. We kiezen daarvoor .../admin
.
- Breng de volgende wijzigingen aan in
settings.js
: - - pas het URL-pad voor de editor aan:
httpAdminRoot: '/admin',
- - geef de map (directory) waar NodeRed de statische bestanden kan vinden, bijvoorbeeld:
httpStatic: '/home/ubuntu/workspace/node-red-static/',
- NB: pas dit aan voor je eigen situatie; dit is een keuze voor Cloud9.
- Herstart NodeRed
- je vindt nu de flow-editor via
http(s)://...node-red-path.../admin
- je vindt nu de flow-editor via
De veranderde gedeeltes in settings.js zien er nu als volgt uit:
// By default, the Node-RED UI is available at http://localhost:1880/
// The following property can be used to specifiy a different root path.
// If set to false, this is disabled.
httpAdminRoot: '/admin',
...
// When httpAdminRoot is used to move the UI to a different root path, the
// following property can be used to identify a directory of static content
// that should be served at http://localhost:1880/.
httpStatic: '/home/ubuntu/workspace/node-red-static/',
Beveiliging van de NodeRed editor
Via het NodeRed interface kun je je eigen server inrichten, via het grafische interface in de browser. Dit interface is beschikbaar in het publieke internet. Als je dit interface niet beveiligt, kunnen anderen jouw server ook inrichten. Je kunt je NodeRed-interface eenvoudig beveiligen. Zie ook: https://nodered.org/docs/security.html#usernamepassword-based-authentication
- Installeer node-red-admin, met het volgende commando:
npm install -g node-red-admin
- Maak de hashcode voor het wachtwoord waarmee je je NodeRed-editor wilt beveiligen:
node-red-admin hash-pw
- Pas
settings.js
aan:- zoek het gedeelte dat begint met
adminAuth: {
; dit staat nog als commentaar - verwijder voor dit gedeelte (t/m bijbehorende
}
) de commentaar-//
- verander
admin
in je eigen naam - verander de hash-code voor het wachtwoord door de hashcode van je eigen wachtwoord.
- bewaar het bestand.
- zoek het gedeelte dat begint met
- Start node-red op en ga naar de Preview/browser om te controleren of het werkt;
- als het goed is kom je nu in een inlog-pagina;
- voer je naam en wachtwoord (niet de hashcode!) in.
Voorbeeld van een beveiligingsdeel:
// 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: "hans",
password: "$2a$08$5acKiQ0JAh/PYu6SARDQGOQusZ0myS10PkbWg9jOLFw1qSes/uz1W",
permissions: "*"
}]
},
Installeren van nieuwe soorten nodes
Er is een actieve community waarin allerlei soorten nodes voor NodeRed ontwikkeld worden. Enkele voorbeelden:
- voor het aansluiten van databases, zoals MongoDB;
- voor het aansturen van Philips Hue lampen;
- voor allerlei webdiensten, zoals Slack en Trello;
- enz.
Je kunt op meerdere manieren nieuwe soorten nodes toevoegen aan NodeRed.
De eenvoudigste manier is vanuit het user-interface van NodeRed zelf:
- ga naar het hamburger-menu->Manage palette (dit menu vind je rechts boven);
- selecteer de tab "Install"
- zoek daarin naar de node(s) die je wilt installeren
- bijvoorbeeld: node-red-bluemix-nodes
- klik op "install"
Een alternatief is het gebruik van npm (de module-installer voor nodejs):
cd $HOME/.node-red
npm install <npm-package-name>