Skip to content
This repository has been archived by the owner on Oct 31, 2023. It is now read-only.

Documentation

Frank Rousseau edited this page Oct 11, 2013 · 14 revisions

Vocabularies

Carapace: Haibu utilizes a unique approach by wrapping spawned Node.js applications in a "Carapace" which allows haibu to extend spawned applications with all sorts of additional functionaltiy.

Drone: When haibu wraps a node.js application in a "carapace" the application becomes a "drone".

Common uses

Installation and an overview of using Haibu : Haibu

Examples

Examples in Cozy Cloud

Deploying an application

Define an application

app_descriptor =
    user: "cozy",      # Required, user which start the application                 
    name: "note",                                                 
    domain: "localhost",           
    repository:                   
        type: "git",                 
        url: "https://github.com/mycozycloud/cozy-notes.git",
    scripts:                    
        start: "server.js"

Install an application

client = haibu.createClient
    host: 'localhost'
    port: 9002
client = client.drone 

client.clean app_descriptor, (err, result) ->
    client.start app_descriptor, (err, result) ->
        if err
            console.log err
            console.log "Install failed"
        else
            console.log "#{app} sucessfully installed"

Haibu configuration

  • address: IP address for the server to bind to.
  • port: Port for the server to listen on.
  • env: Environment to run the server in.
  • logger: Use the Haibu Logger plugin.
  • advanced-replies: Send extra info with replies.
  • silent: Suppress the log messages from the output.
  • useraccounts: Use the Haibu User Accounts plugin.
  • coffee: Use the Haibu CoffeeScript plugin.
  • help

Examples

Documentation

Warning : documentations aren't always updated.

Common

Plugin

IRC

#nodejitsu

User management

In cozy cloud, we have one user by application. Only this user can read, write and execute files in the application directory. To manage users, we use the useraccounts plugin in Haibu :

  • Option '-u' activates this plugin.
  • If application have a user called app, useraccounts plugin creates a linux user called haibu-app.
  • Once linux user created, the plugin changes permissions of application repertory.
  • Change permission is managed in useraccount.js.

Github repositories used by Haibu

  • Haibu-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.
  • Haibu-API : A collection of client wrappers for haibu's core api.
  • Forever-monitor: The core monitoring functionality of forever without the CLI

Github repositories that use Haibu

  • Haibu-ishiki: Wrapper for Haibu and Http-Proxy. It makes running a Node deployment server as painless as possible.
  • Haibu-apiary : Apiary is the open-source project that uses Node.JS and Haibu for spawning and managing several multi-user Node.JS applications on multiple (physical or virtual) servers.
  • Ukraine: Ukraine glues haibu and node-http-proxy adding a little helper, chernobyl, that deploys into this cloud. It is probably as stable as you think it is.
  • Ohdarling/haibu: Differences between this and isaacs repo: Injecting of environment variables from server env.json file, complete cleanup of pre-existing app before spawning a new version and logging of app outputs into files.