Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
# This script work on any system using systemd as the init process.
# It works on Debian/Raspbian Jessie.
# If you have Debian/Rapbian Wheezy and want to use this script with systemd
# follow the information here :
# To easily download, install and set at startup:
# wget -O /tmp/download && sudo tar -zxf /tmp/download --strip-components 1 -C /etc/systemd/system/ && sudo systemctl --reload-daemon && sudo systemctl enable Node-RED
# To consult the log : journalctl -u Node-RED
Description=Node-RED is a tool for wiring together hardware devices, APIs and online services in new and interesting ways.
#Full Path to Node.js
ExecStart=/usr/local/bin/node $NODE_OPTIONS red.js $NODE_RED_OPTIONS
# User/Group that launches node-RED (it's advised to create a new user for Node-RED)
# You can do : sudo useradd node-red
# then change the User=root by User=node-red
# Make Node-RED restart if it fails
# Node-RED need a SIGINT to be notified to stop

This comment has been minimized.

Copy link

@cormad cormad commented Dec 6, 2015

I tried your instructions on a new install and received the following error;

/tmp/download 100%[=====================>] 1.16K --.-KB/s in 0s

2015-12-06 21:18:04 (2.45 MB/s) - ‘/tmp/download’ saved [1190/1190]

gzip: stdin has more than one entry--rest ignored
tar: Child returned status 2
tar: Error is not recoverable: exiting now


This comment has been minimized.

Copy link

@kcagras kcagras commented Aug 24, 2016



This comment has been minimized.

Copy link

@krisklosterman krisklosterman commented Oct 28, 2016

This is what I did on Debian 8

I installed Node Red with NPM as global
I Created a user named nodered

I then ran these commands as root or with sudo

wget -O /etc/systemd/system/Node-Red.service

vim /etc/systemd/system/Node-Red.service
You then need to modify it and change users and groups and change the following lines:

ExecStart to ExecStart=/usr/bin/node-red

WorkingDirectory to WorkingDirectory=/home/nodered/.node-red/ (This is because I used a user I created called nodered)

you can delete the two Environment lines too

then run

systemctl daemon-reload

systemctl enable Node-Red.service

systemctl start Node-Red.service


This comment has been minimized.

Copy link

@mkeyno mkeyno commented Mar 27, 2017

@krisklosterman I made your suggestion and when I run sudo systemctl status nodered.service it shows following respond

nodered.service - The NodeRed
   Loaded: loaded (/lib/systemd/system/nodered.service; enabled)
   Active: active (running) since Mon 2017-03-27 22:05:51 UTC; 1s ago
 Main PID: 2501 (node)
   CGroup: /system.slice/nodered.service
           └─2501 node /usr/bin/node-red

Mar 27 22:05:51 KeynoGC systemd[1]: Started The NodeRed.

but http://localhost:1880; not respond , what did I miss


This comment has been minimized.

Copy link

@mkeyno mkeyno commented Mar 28, 2017

now its work

Description=The NodeRed



This comment has been minimized.

Copy link

@papaiatis papaiatis commented Feb 10, 2019

WorkingDirectory does not really have any effect, but the following works:
ExecStart=/usr/bin/node-red -u /home/pi/.node-red where the -u switch specifies the user working directory for Node-RED itself.


This comment has been minimized.

Copy link

@rvt rvt commented Jun 15, 2019

To Add to this script, running node-red as root is a bad idea, don´t do that

@papaiatis Assuming you User and Group to a non root user (for example the pi user) there is no reason to set the -u flag

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment