Skip to content


Subversion checkout URL

You can clone with
Download ZIP
application deployment library for node.js
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Gittyup is a small node.js application deployment library similar to n.


  • Command Line Interface.
  • Rollback support.
  • Script testing before using.
  • Start/Stop/Restart checked out apps.
  • Make a slug out of your app and easily move it quickly between servers.

Command Line

gup checkout daisy --repo= --branch=app-branch
gup use daisy r5 #use a particular checkout 


 rollback :name                                  Rollback a repositoriy           
 history :name                                   Repo history                     
 use :name :release                              Uses a repo                      
 checkout :name :repo OR checkout :name          checks out a repository



root directory by default is /etc/gittyup/

var gittyup = require('gittyup')('/etc/bonsai/garden/'),
app ='myApp');

app.checkout('myProjectSource', function(err, result)

    //something went wrong in the checkout phase - most likely in linking, rollback
    if(err) return app.rollback();  

    //test to make sure everythings good
    app.test(function(err, result)
        //something went wrong in the testing phase, rollback
        if(err) return app.rollback();

        //start upp the application
        app.process(function(err, process)



First argument can be either a string (app name), or object


  • name - The name of the application.
  • group - The group the application is in.
  • maxRecords - Maximum number of application records to keep locally.

.app().checkout(opsOrSource, callback)

  • opsOrSource - Options (object) or the repo source (string) for the app.
    • repository - repository of the project. Can be local directory, git repo, or .slug file

From a git repository:'myApp').checkout('', function(err, result)
    //do stuff!

From a generated slug:'myApp').checkout('', function(err, result)

From a local directory:'myApp').checkout('/some/local/path', function(err, result)



Returns a runnable process of the current checked out item.'myApp').process(function(err, process)

    process.start(function(err, result)

    process.stop(function(err, result)

    process.restart(function(err, result)


Tests the most recent checked out item. Make sure to include "scripts:test" in your package.json. Something like:

    "name": "myApp",

    "scripts": {
        "test": "./test"

When exiting the test program, an exit code of 0 tells gittyup the test was successful, whereas 1 tells gittyup the test failed.


Makes a slug out of the current checkout. Use this method if you need to move the application around between servers. Once a slug is made, calling "makeSlug" on the same checkout will have no effect.'myApp').makeSlug(function(err, item)
    console.log(item.slug); // /etc/gittyup/apps/myApp/16767565434/slug/753a644f4e7aaa7fc9132be92d000002.tar.gz


If you're moving the slug around, install gittyup on the other end and have something ready like this:'myApp').checkout('', function(err, result)
    // stuff with transported slug


Returns Information about the current checked out item.


Returns checkout history of the given application.


Uses a previously used checkout item without removing the current one.

.app().remove(checkoutId, callback)

Removes a checked out item.


Destroys the application, and all the checked out items.

Something went wrong with that request. Please try again.