Fetching contributors…
Cannot retrieve contributors at this time
110 lines (83 sloc) 3.03 KB


Haibu Drone's Little Shell

What is Carapace

Carapace is an process wrapper for Node.js applications that is part of the Haibu Network. Carapace also provides a plugin system to simplify deployment and development of applications.

What can I do with Carapace?

By utilizing Carapace you can help automate deployments of applications into a custom environment. Combining Carapace with the Forever Daemon can allow you run the application in the environment indefinitely.


Installing npm (node package manager)

curl | sh

Installing carapace

[sudo] npm install carapace


Chroot Jailed web-server (using the script)

# run the included shell script in a terminal
sudo ./examples/jailedserver
# then on another terminal poke the server using `curl` and `watch`
watch 'curl http://localhost:1337'

Chroot Jailed Web-server (as a require)

code is available in ./examples/jailer.js and must be ran with superuser privileges

var carapace = require('haibu-carapace');

var script = 'server.js',
    scriptPort = 31337;

carapace.on('carapace::plugin::error', function (info) {
  console.log('Error loading plugin: ' + info.plugin);

], function () {
  carapace.chroot('./examples/chroot-jail', console.log.bind(null, 'hello'));
  carapace.chdir('.');, ['--port', scriptPort], function afterRun() {
    carapace.heartbeat(function () {
    console.log(script+ ' running on port '+ scriptPort.toString());
# Run the above code in a terminal with
sudo node ./examples/jailer.js
# Poke the server in another terminal with
watch 'curl http://localhost:31337'

Carapace CLI Options

carapace --plugin [plugin] --[plugin] [options] application [options]


--plugin [plugin]

Plugin to use with the carapace instance

Plugin Options

--[plugin] [options]

Option to be passed to the [plugin]

Application & Application's Options

[application] [application's CLI options]

Any options that isn't consumed by the Carapace will automatically be passed to the application

Default Plugins

List of known plugins, and options (if any) used by them

  • chroot - directory to rebind as root directory '/'
  • chdir - directory to change into
  • heartbeat - time in micro-seconds between 'carapace::heartbeat' events

Run Tests

All of the carapace tests are written in vows

  $ npm test

Author: Nodejitsu Inc.

Maintainers: Charlie Robbins, Bradley Meck, Jameson Lee