jitsu

Flawless command line deployment of Node.js apps to the cloud

npm install jitsu
42 downloads in the last day
812 downloads in the last week
2 871 downloads in the last month

jitsu Build Status

Flawless command line deployment of Node.js apps to the cloud

Overview

Jitsu is a Command Line Tool (CLI) for managing and deploying Node.js applications. It's open-source and easy to use. We've designed jitsu to be suitable for command line beginners, but still be powerful and extensible enough for production usage.

jitsu requires npm, the node package manager.

One-line jitsu install

[sudo] npm install jitsu -g

Features

jitsu is built on some amazing technologies which we've been actively building with the community since 2009. jitsu is fully extendable and extremely modular ( see Libraries section ).

  • Allows for seamless deployment of your Node.js applications to the cloud
  • Ships with use-full boilerplates and sample applications through Node Apps project integration
  • Fully supports npm dependency resolution on deployment to Nodejitsu
  • Full support of Nodejitsu's API ( a plethora of node.js goodies )
  • Integrated multi-level multi-transport logging support via Winston
  • Too many to list... seek further knowledge or just try it out!

One-Line Node App Installation

If you don't have an application yet, you can use one of ours!

 jitsu install

One-Line Node App Deployment

 jitsu deploy

( inside the path of your Node.js application )

This will create a new application, package.json, and deploy your path to Nodejitsu. If it's your first deployment, you'll be prompted for some information such as subdomain and start script but it's really easy and we promise it will only take a few seconds.

If you have any issues deploying your node.js application please feel free to open up an issue on the Github Issues section of this page, we'll have someone get back to you in a flash!

Usage

jitsu is mostly self documenting. After installation, run the jitsu command from your command line.

If it's your first time using jitsu, you will be prompted to login with an existing account or create a new account.

After you've logged in, you can start deploying apps immediately!

Command Line Usage

jitsu is mostly self-documenting. Try any of these commands to get started.

Usage:

 jitsu <resource> <action> <param1> <param2> ...

Common Commands:

To sign up for Nodejitsu

 jitsu signup

To log into Nodejitsu

 jitsu login

To install a pre-built application

 jitsu install

Deploys application in the current path to Nodejitsu

 jitsu deploy

Lists all applications for the current user

 jitsu list

Additional Commands

 jitsu apps
 jitsu snapshots
 jitsu users
 jitsu logs
 jitsu databases
 jitsu conf
 jitsu logout

Help

jitsu is mostly self documenting. We suggest just trying it out. All commands will yield friendly messages if you specify incorrect parameters. If you find anything difficult to use, please open up a Github issue or pull request!

 jitsu help
 jitsu help apps
 jitsu help snapshots
 jitsu help users
 jitsu help logs
 jitsu help databases
 jitsu help config

.jitsuconf file

All configuration data for your local jitsu install is located in the .jitsuconf file in your home directory. Directly modifying this file is not really advised. You should be able to make all configuration changes via:

jitsu config

If you need to have multiple configuration files, use --localconf or --jitsuconf options.

Some Examples:

jitsu config set colors false   # disable colors
jitsu config set timeout 480000 # set request timeouts to 8 minutes
jitsu config set noanalyze true  # disable package analyzer
jitsu config set protocol https # Always use HTTP Secure

jitsu options

jitsu [commands] [options]

--version             print jitsu version and exit
--localconf           search for .jitsuconf file in ./ and then parent directories
--jitsuconf [file]    specify file to load configuration from
--noanalyze           skip require-analyzer: do not attempt to dynamicially detect dependencies

jitsu behind proxy

If you are behind a proxy and you haven't configured jitsu to use it, jitsu will throw an error, Jitsu requires you to connect to Nodejitsu's stack (api.nodejitsu.com). In order to solve this issue, you can configure jitsu to use a proxy by executing the following command.

jitsu config set proxy http://proxy.domain.com:3128/

If you need to authenticate yourselves to the proxy, you can try this command.

jitsu config set proxy http://user:pass@proxy.domain.com:3128/

jitsu hooks

You can add pre-deploy and post-deploy hooks to jitsu for running build scripts, tagging releases or anything else you want to do. These are hooks that are executed before or after deploying your application on the local machine. They are stored in your package.json:

{
  "name": "test-app",
  "subdomain": "test-app",
  "scripts": {
    "predeploy": "echo This will be run before deploying the app",
    "postdeploy": "echo This will be run after deploying the app",
    "start": "app.js"
  },
  "engines": {
    "node": "0.6.x"
  },
  "version": "0.0.0"
}

Which results in the following output when deploying:

$ jitsu deploy
info:    Welcome to Nodejitsu nodejitsu
info:    It worked if it ends with Nodejitsu ok
info:    Executing command deploy
info:    Analyzing your application dependencies in app.js
info:    Checking app availability test-app
info:    Creating app test-app
This will be run before deploying the app
info:    Creating snapshot 0.0.0
info:    Updating app test-app
info:    Activating snapshot 0.0.0 for test-app
info:    Starting app test-app
info:    App test-app is now started
info:    http://test-app.jit.su on Port 80
This will be run after deploying the app
info:    Nodejitsu ok

Libraries

jitsu is built on a few well developed, well maintained Node.js libraries. The Nodejitsu team and friends have been building and using these projects actively for the past two years. They are the most used Node libraries (see: http://search.npmjs.org/) and are actively maintained by Nodejitsu and other core members of the Node.js community. Each library serves a specific function and we highly suggest you check each one out individually if you wish to increase your knowledge of Node.js

  • npm - Node Package Manager
  • colors - Terminal Colors module
  • optimist - CLI Options Parsing
  • request - http request module
  • async - Asynchronous Iteration
  • vows - Asynchronous BDD testing library
  • winston - Multi-transport logging library

Need more?

The documentation for jitsu and the Nodejitsu APIs is open-source and a work in-progress. For more information checkout the Nodejitsu Handbook

npm loves you