No description, website, or topics provided.
Switch branches/tags
Nothing to show
Pull request Compare This branch is 19 commits behind senchalabs:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Spark is a command-line tool used to start up node server instances. It's part of the [Connect][] system, but can be used standalone with any node server.


Spark provides the following options when starting a server.

  • Port/Host to listen on
  • SSL hosting with specified key/certificate
  • Automatic child process spawning for multi-process node servers that share a common port.
  • User/Group to drop to after binding (if run as root)
  • Environment modes (development/testing/production)
  • Modify the node require paths
  • Can load any of these configs from from a file (optionally grouped by env)
  • Can change the working directory before running the app
  • --comment option to label processes in system tools like ps or htop
  • Pass arbitrary code or environment variables to the app

Making an app spark compatible

Any node server can be used with spark. All you need to do it create a file called app.js that exports the instance of http.Server or net.Server.

A hello-world example would look like this:

module.exports = require('http').createServer(function (req, res) {
  res.writeHead(200, {"Content-Type":"text-plain"});
  res.end("Hello World");

And then to run it you simply go to the folder containing the app.js and type:


The output you'll see will be:

Spark server(34037) listening on http://*:3000 in development mode

Where 34037 is the pid of the process. If you want 4 processes to balance the requests across, no problem.

spark -n 4

And you'll see:

Spark server(34049) listening on http://*:3000 in development mode
Spark server(34050) listening on http://*:3000 in development mode
Spark server(34052) listening on http://*:3000 in development mode
Spark server(34051) listening on http://*:3000 in development mode