No commit activity in last 3 years
No release in over 3 years
Collection of Capistrano recipes for deploying Rails apps into high-performance environments
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

 Project Readme

Capistrano deploy recipes TravisCI Gemnasium

Fast git-based deploy process inspired by https://github.com/blog/470-deployment-script-spring-cleaning.

Quickstart with Git and Rails

Add this line to your application's Gemfile:

gem 'capistrano-deploy-management', :group => :development, :require => false

Create a file named Capfile in your project root directory:

require 'capistrano-deploy-management'
use_recipes :git, :bundle, :rails

server 'server name or ip address', :web, :app, :db, :primary => true
set :user, 'user for deploy'
set :deploy_to, '/deploy/to/path'
set :repository, 'your git repository'

after 'deploy:update', 'bundle:install'

And then execute:

bundle

To setup:

cap deploy:setup

Then when you push some changes to git repository simply run:

cap deploy

Or if you have migrations (:rails recipe should be used in Capfile: use_recipe :rails):

cap deploy:migrations

To look through the changes to be deployed:

cap deploy:pending

If you want to update to a specific commit (e.g. to rollback):

cap deploy COMMIT=foobarbaz

Note: it may be required to run bundle exec cap ... instead of cap ....

Multistage

Basic usage:

use_recipe :multistage

set :default_stage, :development

stage :development do
  ...
end

stage :production do
  ...
end

You can also pass options that allow setting variables and default stage:

stage :development, :branch => :develop, :default => true
stage :production,  :branch => :master

When branches are specified for stages and git recipe is used it will automatically select stage based on current local branch.

Bundle

Use recipe:

use_recipe :bundle

And add callback to run bundle install on each deploy:

after 'deploy:update', 'bundle:install'

Rails Assets

Use recipe:

use_recipe :rails_assets

Add callback to precompile assets after update:

after 'deploy:update', 'deploy:assets:precompile'

Passenger

Use recipe:

use_recipe :passenger

It will automatically do touch tmp/restart.txt on each deploy.

Unicorn

Use recipe:

use_recipe :unicorn

You can setup callback to reload unicorn after deploy is done:

after 'deploy:restart', 'unicorn:reload'

Puma

Use recipe:

use_recipe :puma

You can setup callback to reload puma after deploy is done:

after 'deploy:restart', 'puma:reload'

Whenever

Use recipe:

use_recipe :whenever

To automatically update crontab file:

after 'deploy:restart', 'whenever:update_crontab'

You can also clear crontab file with command:

cap whenever:clear_crontab