Create a gist now

Instantly share code, notes, and snippets.

@dceejay /nssm.md
Last active Aug 22, 2017

What would you like to do?
Running Node-RED as a service on Windows using NSSM

Running Node-RED as a service on Windows using NSSM

These instructions assume you installed Node-RED from an administrator enabled command prompt using the npm install -g node-red command to do so.

As an administrator, install nssm from https://nssm.cc/download

And then from the directory where you installed nssm, run the commands

mkdir c:\temp
nssm install Node-RED "c:\Users\\"%USERNAME%"\AppData\Roaming\npm\node-red.cmd"
nssm set Node-RED AppDirectory "c:\Users\\"%USERNAME%"\.node-red"
nssm set Node-RED AppParameters "-u c:\Users\\"%USERNAME%"\.node-red > c:\temp\node-red.log"
nssm set Node-RED Description "A wiring tool for the Internet of Things"

You can edit the service using the GUI to the configuration, add extra parameters, etc.

nssm edit Node-RED

The log will be written to c:\temp\node-red.log (see line 3)

For further options read the nssm usage page.

natcl commented Jan 21, 2016

For anybody having troubles with this, make sure you create the C:\temp directory before running the service.

bloigge commented Apr 13, 2016

Another way for autostarting NodeRed in PM2 as a Serivce in Windows:

Everything in command-line as Admin:

Install node-red

npm install -g node-red

Install pm2

npm install pm2 -g

Install and config pm2-windows-startup package :

npm install pm2-windows-startup -g
pm2-startup install
pm2 save

Locate the Node-Red red.js File and add it to pm2:

pm2 start C:\Users\<USER-NAME>\AppData\Roaming\npm\node_modules\node-red\red.js --save

alex3305 commented Dec 3, 2016

Note: Running this from a Powershell prompt will not work. Escaping of quotes will fail and the commands will all get borked.

qlartpg commented Aug 7, 2017 edited

This will not work if the directory or username have a space in it. It will run, but if you look at the log, it creates new folder after where the space will be. Anyone have solution? Thanks.

Update:
Don't run this:
nssm set Node-RED AppParameters "-u c:\Users\"%USERNAME%".node-red > c:\temp\node-red.log"

run: nssm edit Node-Red
and make sure the parameters is blank and and it worked for me.

autumnharmony commented Aug 22, 2017 edited

Hi, i'm trying to lock windows workstation by executing "rundll32.exe user32.dll,LockWorkStation". I'm using exec node.
In case of nodered is running as service it's failing.
Could someone tell me why ?
https://msdn.microsoft.com/en-us/library/windows/desktop/aa376875(v=vs.85).aspx

The LockWorkStation function is callable only by processes running on the interactive desktop. In addition, the user must be logged on, and the workstation cannot already be locked.

Could someone tell me about alternative ways ?

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