Baboon

cardinal

Build Status Dependency Status

A simple and light weight deployment library for a ruby on rails application 3.0+. No symlinks, no releases, just git and your application.

How it works

Baboon is simple. You provide your server addresses, environments, path, repository, username and Baboon does the rest. By running a simple baboon deploy {env} it will do all neccessary operations you intend for it to do on a full deploy to a production staging or development server. All you need is a working rails application on a server with a git repository.


Install

This must be installed under a current rails application. We recommend vendoring or installing through bundler.

gem install baboon

Configure

In your Gemfile, then bundle install.

group :development do
  gem 'baboon'
end

Now that the gem is installed, run the config generator

rails g baboon:install

This will build a file into your application under config/initializers/baboon.rb. Open this file and start editing. Here is an example of the main configuration options:

Baboon.configure do |config|
  config.application  = 'Vacuum HQ'
  config.repository   = '[email protected]:amanelis/vacuum.git'
  config.deploy_path  = '/home/rails/vacuum'
  config.deploy_user  = 'rails
  config.branch       = 'master'
  config.rails_env    = 'production'
  config.servers      = ['192.168.1.1', '192.168.1.2']
end

These must be properly filled out so baboon can properly make deploys.


Commands

Once everything is setup you can run baboon to see availabe tasks. Start by seeing if your configuration was properlly generated.

baboon configuration

Once you see and verify your Baboon.configuration you can now go ahead and test a deploy. For now, lets assume you have everything in your config correct and you are deploying to production:

baboon deploy

Thats it? Yeah, thats it! You should see your bundle installing and Baboon running all tasks. Custom tasks coming soon.

The next commands that will be realeased with future versions of baboon are:

baboon setup # no manually editing of configuration file baboon check # checks the server and config file for proper configuration baboon migrate # runs pending migrations baboon restart # restarts your server baboon rollback # rolls back your to your previous commit, info in ./log/baboon.log baboon rake # run custom rake tasks on server baboon execute # run a single command on the server baboon shell # open a remote shell with the config user


CLI

This is coming very soon…


Dependencies

Install dependencies using bundler

$ bundle

Run rSpec

$ rspec spec/

Issues

None.

Changelog

1.0.0

Intial setup of the CLI and basic deploys are working.

1.0.5

Multiple server deployments now work.

1.0.6

Changed the order of bundle installing on Rails package

How to contribute

  • Fork the project.
  • Make your feature addition or bug fix, push to a named branch.
  • Add a test for any code committed.
  • Send a pull request.

Copyright (c) 2011 Alex Manelis.