set :application, 'exemplar' set :repository, 'http://svn.devjavu.com/malaysia-rb/exemplar' set :deploy_to, "/var/www/#{application}" set :user, 'mongrel' role :app, 'deploy.ror.com.my' role :web, 'deploy.ror.com.my' role :db, 'deploy.ror.com.my', :primary => true set :mongrel_conf, "/etc/mongrel_cluster/#{application}.yml" set :nginx_sites_available, "/etc/nginx/sites-available/#{application}" set :nginx_sites_enabled, "/etc/nginx/sites-enabled/#{application}" namespace :deploy do task :cold do update migrate setup_nginx start end task :start, :roles => :app do sudo "mongrel_rails cluster::start -C #{mongrel_conf}" end task :stop, :roles => :app do sudo "mongrel_rails cluster::stop -C #{mongrel_conf}" end task :restart, :roles => :app do sudo "mongrel_rails cluster::restart -C #{mongrel_conf}" end task :setup_nginx do sudo "/etc/init.d/nginx stop" sudo "/etc/init.d/nginx start" end task :after_finalize_update do # RubyInline is very picky about group/world writable directories run "chmod 755 #{release_path}/tmp/ruby_inline" end end desc "Create database.yml in shared/config" task :after_setup do database_configuration = <<-EOF default: &default adapter: sqlite3 development: database: db/development.sqlite3 <<: *default test: database: db/test.sqlite3 <<: *default production: database: db/production.sqlite3 <<: *default EOF run "mkdir -p #{shared_path}/config" put database_configuration, "#{shared_path}/config/database.yml" run "chmod o+r #{shared_path}/config/database.yml" end desc "Link in the various configuration files" task :after_update_code do run "ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml" sudo "ln -nfs #{release_path}/config/mongrel_cluster.yml #{mongrel_conf}" sudo "ln -nfs #{release_path}/config/nginx #{nginx_sites_available}" sudo "ln -nfs #{nginx_sites_available} #{nginx_sites_enabled}" end