Internet of Things/Node-RED/NodeRed-configuratie: verschil tussen versies

Uit Lab
Naar navigatie springen Naar zoeken springen
(Nieuwe pagina aangemaakt met '== Configureren van NodeRed == === Een eigen nodered-configuratie (settings.js) === We hebben een aantal aanpassingen nodig in de settings, onder andere voor het b...')
 
 
(4 tussenliggende versies door dezelfde gebruiker niet weergegeven)
Regel 1: Regel 1:
== Configureren van NodeRed ==
== Configureren van NodeRed ==
De configuratie van NodeRed vind je in het bestand <code>settings.js</code>. Dit vindt je (op Linux/Unix-systemen) in de map <code>$HOME/.node-red</code>. Voor sommige systemen kun je dat bestand direct aanpassen.
In het geval van Cloud9 is het handiger om een kopie van dat bestand te maken: je kunt het dan met de Cloud9-editor eenvoudig aanpassen.


=== Een eigen nodered-configuratie (settings.js) ===
=== 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.
WWe hebben een aantal aanpassingen nodig in de configuratie, onder andere voor het beveiligen van het user interface. Deze configuratie vind je in het bestand <code>settings.js</code>. Op de meeste systemen vind je dit in de map <code>$HOME/.node-red</code>.  
# Kopieer het default settings-bestand naar je eigen workspace:
: Omdat deze map in Cloud9 niet toegankelijk is voor de cloud9-editor, maken we een (symbolische) link van deze map naar de workspace.
## <code>cp $HOME/.node-red/settings.js .</code>
 
# Start nu NodeRed met de lokale settings:
# (cloud9) Maar een symbolische link van <code>.node-red</code> naar de workspace:
## <code>node-red -s settings.js</code>
## <code>ln -s $HOME/.node-red .node-red</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>
Je kunt nu het configuratie-bestand in de workspace vinden als <code>.node-red/settings.js</code>. Voor de zekerheid maken we een kopie van de originele versie:
# <code>cp $HOME/.node-red/settings.js $HOME/.node-red/settings.js.orig</code>


=== Beveiligen van het interface ===
=== Beveiligen van het interface ===
Regel 19: Regel 22:
# Maak de hashcode voor het wachtwoord waarmee je nodered wilt beveiligen:
# Maak de hashcode voor het wachtwoord waarmee je nodered wilt beveiligen:
## <code>node-red-admin hash-pw</code>
## <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).
# Pas <code>settings.js</code> aan (''cloud9'': klik op .node-red/settings.js in de linker kolom).
## zoek het gedeelte dat begint met <code>adminAuth: {</code>; dit staat nog als commentaar
## 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>
## verwijder voor dit gedeelte (t/m bijbehorende <code>}</code>) de commentaar-<code>//</code>
Regel 25: Regel 28:
## verander de hash-code voor het wachtwoord door de hashcode van je eigen wachtwoord.
## verander de hash-code voor het wachtwoord door de hashcode van je eigen wachtwoord.
## bewaar het bestand.
## bewaar het bestand.
# Start node-red op (<code>node-red -s settings.js</code>), en ga naar de Preview.
# Start node-red op en ga naar de Preview.
## als het goed is kom je nu in een inlog-pagina
## als het goed is kom je nu in een inlog-pagina
## voer je naam en wachtwoord (niet de hashcode!) in.
## voer je naam en wachtwoord (niet de hashcode!) in.
Regel 58: Regel 61:
## NB: pas dit aan voor je eigen situatie; dit is een keuze voor Cloud9.
## NB: pas dit aan voor je eigen situatie; dit is een keuze voor Cloud9.
# Herstart NodeRed
# Herstart NodeRed
## <code>node-red -s settings.js</code>


Het resultaat in settings.js ziet er dan als volgt uit:
Het resultaat in settings.js ziet er dan als volgt uit:

Huidige versie van 26 sep 2017 om 15:00

Configureren van NodeRed

De configuratie van NodeRed vind je in het bestand settings.js. Dit vindt je (op Linux/Unix-systemen) in de map $HOME/.node-red. Voor sommige systemen kun je dat bestand direct aanpassen.

In het geval van Cloud9 is het handiger om een kopie van dat bestand te maken: je kunt het dan met de Cloud9-editor eenvoudig aanpassen.

Een eigen nodered-configuratie (settings.js)

WWe hebben een aantal aanpassingen nodig in de configuratie, onder andere voor het beveiligen van het user interface. Deze configuratie vind je in het bestand settings.js. Op de meeste systemen vind je dit in de map $HOME/.node-red.

Omdat deze map in Cloud9 niet toegankelijk is voor de cloud9-editor, maken we een (symbolische) link van deze map naar de workspace.
  1. (cloud9) Maar een symbolische link van .node-red naar de workspace:
    1. ln -s $HOME/.node-red .node-red

Je kunt nu het configuratie-bestand in de workspace vinden als .node-red/settings.js. Voor de zekerheid maken we een kopie van de originele versie:

  1. cp $HOME/.node-red/settings.js $HOME/.node-red/settings.js.orig

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

  1. Installeer node-red-admin, met het volgende commando:
    1. npm install -g node-red-admin
  2. Maak de hashcode voor het wachtwoord waarmee je nodered wilt beveiligen:
    1. node-red-admin hash-pw
  3. Pas settings.js aan (cloud9: klik op .node-red/settings.js in de linker kolom).
    1. zoek het gedeelte dat begint met adminAuth: {; dit staat nog als commentaar
    2. verwijder voor dit gedeelte (t/m bijbehorende }) de commentaar-//
    3. verander admin in je eigen naam
    4. verander de hash-code voor het wachtwoord door de hashcode van je eigen wachtwoord.
    5. bewaar het bestand.
  4. Start node-red op en ga naar de Preview.
    1. als het goed is kom je nu in een inlog-pagina
    2. 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: "*"
        }]
    },

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 .../admin.

  1. Breng de volgende wijzigingen aan in settings.js:
  2. - pas het URL-pad voor de editor aan:
    1. httpAdminRoot: '/admin',
  3. - geef de map (directory) waar NodeRed de statische bestanden kan vinden, bijvoorbeeld:
    1. httpStatic: '/home/ubuntu/workspace/node-red-static/',
    2. NB: pas dit aan voor je eigen situatie; dit is een keuze voor Cloud9.
  4. Herstart NodeRed

Het resultaat in settings.js ziet er dan 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/',