| space, → | next slide |
| ← | previous slide |
| d | debug mode |
| ## <ret> | go to slide # |
| c | table of contents (vi) |
| f | toggle footer |
| r | reload slides |
| z | toggle help (this) |


$ gem install capistrano
$ cd projects/beer_machine
$ capify .
[add] writing './Capfile'
[add] writing './config/deploy.rb'
[done] capified!
set :scm, "git"
set :repository,
"git@amberbit.com:beer_machine.git"set :scm, "svn"
set :repository,
"svn+ssh://wojtek@svn.amberbit.com/beer_machine"set :branch, "master"set :git_enable_submodules, 1set :deploy_via, :remote_cache
# or
set :deploy_via, :exportset :user, "beer_machine"set :deploy_to, "/home/beer_machine/app"set :keep_releases, 10role :web, "beer-machine.com"
role :app, "beer-machine.com"
role :db, "beer-machine.com", :primary => truerole :web, "beer-machine.com"
role :app,
"app1.beer-machine.com", "app2.beer-machine.com"
role :db,
"db1.beer-machine.com", :primary => true
role :db,
"db2.beer-machine.com", "db3.beer-machine.com"$ cap deploy:setup
/home/beer_machine/app
/home/beer_machine/app/releases
/home/beer_machine/app/shared
/home/beer_machine/app/shared/log
/home/beer_machine/app/shared/pids
/home/beer_machine/app/shared/system
$ cap deploy:check
$ cap deploy:update
$ cap deploy

set :scm, :git
set :repository, "git@amberbit.com:beer_machine.git"
set :branch, "v1.24.2"
set :deploy_via, :remote_cache
set :keep_releases, 10set :application, "beer_machine"
set :stage, "production"
set :user, "#{application}-#{stage}"
set :group, "#{application}-#{stage}"role :web, "amberbit.com"
role :app, "amberbit.com"
role :db, "amberbit.com", :primary => true
set :url, "beer-machine.amberbit.com"
set :deploy_to, "/home/#{user}/app"namespace :deploy do
task :start do ; end
task :stop do ; end
desc "Restart passenger"
task :restart, :roles => :app do
file = File.join(current_path, 'tmp',
'restart.txt')
run "touch #{file}"
run "curl #{fetch :url} &"
end
endnamespace :config do
desc "Link shared configurations in release"
task :link_shared_configurations, :roles => :app do
files = %w[mongoid.yml application/config.yml]
files.each do |f|
from = "#{shared_path}/config/#{f}"
to = "#{release_path}/config/#{f}"
run "ln -nsf #{from} #{to}"
end
end
endafter "deploy:update_code",
"config:link_shared_configurations"
after "deploy:update_code",
"deploy:cleanup" # remove old releases