|
|
Regel 23: |
Regel 23: |
| # je stopt de server door middel van ^C (control-C) in hetzelfde terminal-venster. | | # je stopt de server door middel van ^C (control-C) in hetzelfde terminal-venster. |
|
| |
|
| == Configureren van NodeRed ==
| |
|
| |
|
| === Een eigen nodered-configuratie (settings.js) ===
| |
| We hebben een aantal aanpassingen nodig in de settings, onder andere voor het beveiligen van het user interface. Hiervoor gebruiken we een lokale versie van het settings-bestand.
| |
| # Kopieer het default settings-bestand naar je eigen workspace:
| |
| ## <code>cp $HOME/.node-red/settings.js .</code>
| |
| # Start nu NodeRed met de lokale settings:
| |
| ## <code>node-red -s settings.js</code>
| |
| # Controleer of NodeRed werkt, via de Preview
| |
| # Stop de server met ^C.
| |
|
| |
| Voor het starten van NodeRed gebruik je dan voortaan: <code>node-red -s settings.js</code>
| |
|
| |
| === Beveiligen van het interface ===
| |
| Via het NodeRed interface kun je je eigen server inrichten. Maar, als je dit interface niet beveiligt, kunnen anderen dat ook. 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:
| |
| ## <code>npm install -g node-red-admin</code>
| |
| # Maak de hashcode voor het wachtwoord waarmee je nodered wilt beveiligen:
| |
| ## <code>node-red-admin hash-pw</code>
| |
| # Pas je eigen <code>settings.js</code> aan, met de c9-editor (klik op settings.js in de linker kolom).
| |
| ## zoek het gedeelte dat begint met <code>adminAuth: {</code>; dit staat nog als commentaar
| |
| ## verwijder voor dit gedeelte (t/m bijbehorende <code>}</code>) de commentaar-<code>//</code>
| |
| ## verander <code>admin</code> in je eigen naam
| |
| ## verander de hash-code voor het wachtwoord door de hashcode van je eigen wachtwoord.
| |
| ## bewaar het bestand.
| |
| # Start node-red op (<code>node-red -s settings.js</code>), en ga naar de Preview.
| |
| ## als het goed is kom je nu in een inlog-pagina
| |
| ## voer je naam en wachtwoord (niet de hashcode!) in.
| |
|
| |
| Voorbeeld van een beveiligingsdeel:
| |
| <syntaxhighlight lang=javascript>
| |
| // 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: "*"
| |
| }]
| |
| },
| |
| </syntaxhighlight>
| |
|
| |
| === Gebruik van statische 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 deze statische bestanden gevonden kunnen worden.
| |
|
| |
| In dit geval moet je het URL-pad voor de editor aanpassen. We kiezen daarvoor <code>.../admin</code>.
| |
|
| |
| # Breng de volgende wijzigingen aan in <code>settings.js</code>:
| |
| # - pas het URL-pad voor de editor aan:
| |
| ## <code> httpAdminRoot: '/admin',</code>
| |
| # - geef de map (directory) waar NodeRed de statische bestanden kan vinden, bijvoorbeeld:
| |
| ## <code> httpStatic: '/home/ubuntu/workspace/node-red-static/', </code>
| |
| ## NB: pas dit aan voor je eigen situatie; dit is een keuze voor Cloud9.
| |
| # Herstart NodeRed
| |
| ## <code>node-red -s settings.js</code>
| |
|
| |
| Het resultaat in settings.js ziet er dan als volgt uit:
| |
| <syntaxhighlight lang=javascript>
| |
| // 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/',
| |
| </syntaxhighlight>
| |
|
| |
|
| == Tutorial: first flow == | | == Tutorial: first flow == |