NodeJS Application Management


A NodeJS manager to spawn/stop/manage node application.

  supervizer list

  supervizer monit

  supervizer get myApp


  • Start/Stop/Restart a node application
  • Grouping applications
  • Start/Stop/Restart a application group
  • Hot change application parameters (env, host, port, logs) in realtime ;-)
  • Keep alive/Restart a application when it crash
  • Monitoring application resources (restart count, uptime, memory, cpu etc..)
  • Watch directories/files changes to restart application
  • Full RESTfull API management via HTTP/S
  • Application LOG files process management
  • Application PID files process management
  • User execution process management by uid:gid
  • Load/Save all application configurations from/to JSON config file

To install node supervizer module from npm repository :

  npm install -g supervizer

Or from source:

  git clone git:// 
  cd supervizer
  npm link -g

And run this command to start supervizer master server :


To install supervizer master as a daemon/service :

On Linux :

With Sysvinit - (
With Upstart - (
With Systemd - (

To make your nodeJS Application fully compatible with Supervizer, you must follow this code example to retrieve host and port parameters :

var host = process.argv[2] || '';
var port = process.argv[3] || '5000';

For example, if you use expressjs framework :

var express = require('express');
var server = express();
server.use(express.static(__dirname + '/public'));
server.get('/', function(reqres) {    
    res.end('Hello word!');
server.get('*', function(reqres) {
    res.send('Not Found!', 404);
server.use(function(errreqresnext) {      
    res.send(500, 'Something broke!');
var host = process.argv[2] || '';
var port = process.argv[3] || '5000';
server.listen(port, host);
console.log('Listening on port ' + port);

Add your application :

  supervizer add --name myApp --group myGroup --script /path/to/script.js 
  --host localhost --port 3000 --watch /path/to/watch --log /path/to/logfile.log

Start your application :

  supervizer start --name myApp

Stop your application :

  supervizer stop --name myApp

Update your application parameters :

  supervizer set myApp --port 3001

Save all your applications :

  supervizer save --config /path/to/apps.json

Load all your applications :

  supervizer load --config /path/to/apps.json

Start all your applications :

  supervizer startAll  

Start all applications by group:

  supervizer startAll --group myGroup

Disable your application :

  supervizer disable myApp 

Enable authentication mode :

  supervizer secure enable --auth myNewUserName:myNewPassword

Restart your application with authentication :

  supervizer restart --name myApp --auth myUserName:myPassword

Disable authentication mode :

  supervizer secure disable --auth myUserName:myPassword

Update your credentials :

  supervizer secure disable --auth myOldUserName:myOldPassword
  supervizer secure enable --auth myNewUserName:myNewPassword
  supervizer [command<options>
    install                install supervizer as daemon
    uninstall              uninstall supervizer as daemon
    load                   load all applications from a JSON config file
    save                   save all applications to a JSON config file
    add                    add an application
    remove                 remove an application
    start                  start an application
    startAll               start all applications
    stop                   stop an application
    stopAll                stop all applications
    restart                restart an application
    restartAll             restart all applications
    list                   list all applications
    monit                  monitor all applications
    secure                 create/update/remove security authentication
    enable <name>          enable an application
    enableAll              enable all applications
    disable <name>         disable an application
    disableAll             disable all applications
    set <name>             setting application property value
    get <name>             getting application properties values
    -h, --help                  output usage information
    -V, --version               output the version number
    -v --verbose                display verbose data
    -n --name <string>          specify application name
    -z --env <string>           specify comma separated environment variables
    -x --params <string>        specify node command line extra parameters
    -r --run <user:group>       specify user uid:gid to run application
    -g --group <string>         specify application group
    -s --script <path>          specify application main script
    -l --log <file>             specify application log output file
    -t --pid <file>             specify application pid file
    -k --keep <yes/no>          keep alive application (default:yes)
    -t --attempt <number>       max restart to keep alive (default:3)
    -w --watch <path>           specify path to watch
    -e --exclude <regex,regex>  specify regexes to exclude paths
    -h --host <address>         specify address to bind
    -p --port <port>            specify port to bind
    -a --auth <user:password>   specify user/password to use
    -c --config <file>          specify JSON config file to load/save

Supervizer master server has an RESTfull HTTP interface wich allow you to control it remotely ;-)

GET/Show server banner
loadPOST/config/loadLoad all applications from file
savePOST/config/saveSave all applications to file
addPUT/appsAdd an application to run
removeDELETE/appsStop and Remove an application
startPOST/app/startStart an application
startAllPOST/apps/startStart all applications
stopPOST/app/stopStop an application
stopAllPOST/apps/stopStop all applications
restartPOST/app/restartRestart an application
restartAllPOST/apps/restartRestart all applications
listPOST/apps/listList all applications
monitPOST/apps/monitMonitor all applications
listPOST/secureenable/disable authentication
enablePOST/app/enableEnable an application
enableAllPOST/apps/enableEnable all applications
disablePOST/app/disableDisable an application
disableAllPOST/apps/disableDisable all applications
setPOST/appSet an application property
getGET/appGet an application property

Theses commands actually doesn't work, but you can install easily Supervizer master as a service by Systemd, Upstart, Sysvinit or other.

* install
* uninstall