Created
May 20, 2012 19:08
-
-
Save Dahie/2759167 to your computer and use it in GitHub Desktop.
capistrano deploy rb for uberspace with passenger
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# RVM bootstrap | |
set :rvm_ruby_string, '1.9.2@redmine' | |
require 'rvm/capistrano' | |
set :domain, "bugs.ctdp.net" | |
set :application, domain | |
set :repository, "dahie@hydra.uberspace.de:ctdp-redmine.git" | |
set :passenger_port, 3002 | |
set :scm, :git | |
set :user, "dahie" | |
set :scm_username, "dahie" | |
set :use_sudo, false | |
ssh_options[:forward_agent] = true | |
role :web, "dahie.hydra.uberspace.de" # Your HTTP server, Apache/etc | |
role :app, "dahie.hydra.uberspace.de" # This may be the same as your `Web` server | |
role :db, "dahie.hydra.uberspace.de", :primary => true # This is where Rails migrations will run | |
#role :db, "your slave db-server here" | |
set :deploy_to, "/var/www/virtual/#{user}/redmine/" | |
# If you are using Passenger mod_rails uncomment this: | |
# if you're still using the script/reapear helper you will need | |
# these http://github.com/rails/irs_process_scripts | |
deploy.task :restart, :roles => :app do | |
#deactivate default restarter | |
run <<-CMD | |
if [[ -f #{release_path}/tmp/pids/passenger.#{passenger_port}.pid ]]; | |
then | |
cd #{deploy_to}/current && passenger stop -p #{passenger_port} --pid-file ./tmp/pids/passenger.#{passenger_port}.pid; | |
fi | |
CMD | |
run "cd #{deploy_to}/current && passenger start -p #{passenger_port} -d -e #{rails_env}" | |
end | |
deploy.task :stop, :roles => :app do | |
run "cd #{release_path} && passenger stop -p #{passenger_port}" | |
end | |
deploy.task :start, :roles => :app do | |
run "cd #{release_path} && passenger start -p #{passenger_port} -d -e #{rails_env}" | |
end | |
desc "Clean up old releases. By default, the last 5 releases are kept" | |
task :clean_up do | |
count = fetch(:keep_releases, 5).to_i | |
if count >= releases.length | |
logger.important "no old releases to clean up" | |
else | |
logger.info "keeping #{count} of #{releases.length} deployed releases" | |
directories = (releases - releases.last(count)).map { |release| File.join(releases_path, release) }.join(" ") | |
run "rm -rf #{directories}" | |
end | |
end | |
after 'deploy:finalize_update', :roles => :app do | |
run "cd #{release_path} && rm -r #{release_path}/files" | |
run "cd #{release_path} && ln -s #{shared_path}/files" | |
run "cd #{release_path} && ln -nfs #{shared_path}/config/database.yml #{release_path}/config/database.yml" | |
run "cd #{release_path} && ln -nfs #{shared_path}/config/configuration.yml #{release_path}/config/configuration.yml" | |
run "cd #{release_path} && ln -nfs #{shared_path}/config/initializers/secret_token.rb #{release_path}/config/initializers/secret_token.rb" | |
#clean_up | |
end | |
namespace :rvm do | |
task :trust_rvmrc do | |
run "rvm rvmrc trust #{release_path}" | |
end | |
end | |
after "deploy", "rvm:trust_rvmrc" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment