Helmer is a bleeding edge fork of Node Foreman a Node.js version of the popular
Foreman tool,
with a few Node specific changes.

Foreman is a manager for Procfile-based applications.
Its aim is to abstract away the details of the Procfile
format, and allow you to either run your application
directly or export it to some other process management format.

All of Foremans version dependencies have been set to use latest.
If however you find a dependency should break it is possible to find out which dependency versions were last working with Foreman.
The npm-shrinkwrap.json file is updated each time Foreman is published to npm.

Node Foreman can be run with as little as helmer start, as long as npm start has been defined.
For more complicated applications you will want to define a Procfile for your various server
processes and and a .env file to preload environmental variables.

Your module directory should end up looking like the following:

Once your Procfile is defined, run your application with helmer start:

Node Foreman always starts in the foreground and expects your applications
to do the same. If your processes exit, Node Foreman will assume an error
has ocurred and shut your application down.

Instead of daemonizing, you should use helmer export to ready your application
for production.

The PATH variable is given special treament and is always read
from the environment that the nf command has been executed from,
rather than a .env file. To set a different PATH execute
nf with the PATH variable set appropriately.

Generally you should not check your .env file into version control.
The .env file contain only parameters that depend on where the application
gets deployed. It should not contain anything related to how the application
is deployed.

For example, good candiates for the .env file are MySQL connection information,
port bindings, and other passwords.

Each job will be started as its own process, receiving a different PORT
environmental variable.
The port number for processes of the same type will be offset by 1.
The port number for processes of different types will be offset by 100.

Node.js processes are supposed to be stateless.
Application scale by starting multiple processes that either share a socket,
or sit behind a load balancer.
Node Foreman can help you test the parallel capabilities of your application
by spawning multiple processes behind a round-robin proxy automatically.