Installing and Starting Node-Red

Installing Node Red

Node-Red is a node application and before you Install node red you will need to first install node. Here are the instructions:

Then you can Install node red on Windows and Linux (including raspberry pi) using:



npm install -g --unsafe-perm node-red

Using the -g option adds the node-red command to your path. See the  documentation.for more details.

Node-Red on Pi Notes:

Node red is already installed on Raspberry pi but npm (node package manager) isn’t.

You may need to upgrade node-red which you can do by doing an install using npm but you will need to install npm first. This you can do using:

sudo apt-get update
sudo apt-get install npm

Note: npm install failed on my pi and I had to use this command first:

sudo apt-get install -y build-essential

You can check the versions of npm,node and node-red using:

npm -v
node -v
node-red --help

However Raspberry pi provide an install script which can be used for installing and upgrading node-red on the pi and recommend using it. The procedure for download and using it are here.

I recommend you copy the command from the page and paste it into your command prompt.

Starting Node Red

To start node red on Windows go to a command prompt and type:

node-red

if you installed node-red using the -g option.
Note: you may need to change into the node directory.

If it fails you can use:

node c:\node\node_modules\node-red\red.js

On Linux:

Firstly running node by typing node may not work as apparently node is a short cut to nodejs and the short cut may not be present.

running-node-fail

In addition there appears to be a naming conflict with another package. see this explanation

The screen shot show how to create the symbolic link

whereisnodejs

Now that node is working you can run node-red.

Type node-red at the command prompt

. If that doesn’t work it’s probably because the link isn’t configured as shown above. You can try the alternative.

nodejs /usr/local/bin/node-red

As shown below

running-node-red

At the top of the screen you can see the version of node and node-red that you are using and the location of the flows..

At the bottom of the screen it tells you the url to use to access the node-red web admin interface which you use to create your flows.

node-red-web-url

This console stays open and you will find it useful as when you start creating flows as you will see log information appearing there.

Starting Node-Red as a Service

On Raspberry pi you can also start node-red using:
node-red-start

which starts node-red as daemon.

to stop it use:
node-red-stop

and to view the log files type

node-red-log

Starting Node-Red on Boot

If it isn’t already configured you can automatically start node-red on system start by using the command:

sudo systemctl enable nodered.service

and disable it using:

sudo systemctl disable nodered.service

When running on start up you can stop it using the node-red-stop command and restart using node-red-start command.

If you want to load node-red on startup with a different settings file than the settings.js you will need to edit the file /lib/systemd/system/nodered.service.

un-comment the line ExecStart if not already done and the Environment=”NODE_RED_OTPIONS=-v” line to something like:

Environment="NODE_RED_OPTIONS=-s /home/pi/.node-red/mysettings.js"

then reboot.

Node-Red Start Process Overview

When node-red starts it first loads the settings file settings.js which is used to set the admin port, user directory, and flows file etc. The start process is illustrated below. Node-Red-Start-Process

Node-Red Settings

Node-red uses a settings file called settings.js.

On Linux it is located in the /usr/lib/node-modules/node-red/ folder by default. on Windows it is located in c:\node-install-directory\node-modules\node-red\ .

On Linux the settings.js file is copied from the /usr/lib/node-modules/node-red/ folder to your .node-red folder in your home directory when you start node-red, and there is no settings.js file present.

You can create your own settings file and customise it either by copying the existing file or using the file available from Github here.

To use your own settings file use the -s switch when starting node-red e.g.

node-red -s mysettingsfile.js

Important -If you place a settings.js in the .node-red folder then that will be used by default.

The documentation here takes your through the settings file in detail.

The .node-red Folder

On both Windows and Linux user settings and flows are stored in the .node-red folder. This folder is located in the users home folder.

E.G For user steve on windows and on Linux

c:\users\steve\.node-red  ——–Windows

and

/home/steve/.node-red ……….. Linux

Node-red Flows Files and Storage

Node red flows are stored in a .json file in the .node-red folder.

By default this file is called flows_machine_name.json. For example my windows machine is called ws6 and the default flows file is called flows_ws6.json.

Useful Command line Options

Node red has a very limited number of command line options. Use:

node-red -h

node-red-help

The -v switch turns on verbose mode.

The -p switch will let you change the port that node-red admin interface uses.

You can use this option to quickly and easily run multiple instances of node-red.

In version .20 a safe mode has been added to allow you to start node-red without deploying any flows.

This is very useful if a flow is stopping node-red from running.

node-red --safe

To use a different flow file than the default you can use

node-red myflow.json

Because you haven’t specified a settings file it uses the default settings file.

Running Multiple node-red instances

It is possible to run multiple node-red instances on a single machine.

To do that you will need to give each instance a different admin port and also a different user directory or alternatively create and use a new settings file.

You can do this using the -p and -u switches when starting node-red e.g

node-red -p 1881 -u user1

the admin port is 1881 and the user directory is user1 the flow file name uses the default flow name.

Note: If you don’t use a different user directory then they will all use the same flows file which could result in conflicts.

If you create a new settings file e,g mysettings.js you can then edit the line starting with flows and remove the two forward slashes.

// flowFile: my’flows.json’,

You could also change the port by editing the line near the top of the file

uiPort: process.env.PORT || 1880,

to

uiPort: process.env.PORT || 1888,

To use port 1888

You then use the command:

node-red -s mysettings.js

to start the flow.

You could also use the command

node-red -s mysettings.js  -p 1889

to use a different port.

Video Node Red Flow and Startup Files

========>How to use the Admin Interface, nodes and flow basics.

Related Tutorials and Resources:

Please rate? And use Comments to let me know more
[Total: 5    Average: 3.4/5]

4 comments

  1. Hi Steve, great website .
    I got question regarding using Node-red to read data via Ethernet port from some TCP “slave”. Device I use (with Windows OS) has two physical Ethernet ports. Each port can be configured independently from the other ( IP address, DHCP or Fixed) . Can i read data from any of two physical Ethernet ports using Node red? I’m note quite sure how that part would work , Node red with two ports. Would appreciate any help or if you can point to some info.
    Regards,

  2. Hi,

    I found your page hope you can help me. I have a synology nas and installed the node-red. My problem is only run it from console, and when close the console the node red is turning off too. For me what you write:

    “Starting Node-Red as a Service
    You can also start node-red using:
    node-red-start
    which starts node-red as daemon.”

    not working, because the console show this: node-red-start: command not found
    I found another page can start it with pm2 https://www.rs-online.com/designspark/installing-node-red-on-a-synology-nas but it isn’t working too. 🙁 After install pm2 the console show me the same message pm2: command not found. How can I run in the background the node-red? Please help!

Leave a Reply

Your email address will not be published. Required fields are marked *