Created
January 17, 2011 16:27
-
-
Save darkside/783051 to your computer and use it in GitHub Desktop.
Capistrano Recipes Application.rb
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
Capistrano::Configuration.instance(:must_exist).load do | |
# User settings | |
set :user, 'deploy' unless exists?(:user) | |
set :group,'www-data' unless exists?(:group) | |
# Server settings | |
set :app_server, :unicorn unless exists?(:app_server) | |
set :web_server, :nginx unless exists?(:web_server) | |
set :runner, user unless exists?(:runner) | |
# The port to listen to, normally we default to 80 | |
set :application_port, 80 unless exists?(:application_port) | |
# Are we using ssl as well? Used by generators to configure a ssl host | |
set :application_uses_ssl, true unless exists?(:application_uses_ssl) | |
# The port to listen to https requests, usually 443 | |
set :application_port_ssl, 443 unless exists?(:application_port_ssl) | |
# Database settings | |
set :database, :mysql unless exists?(:database) | |
# SCM settings | |
set :scm, :git | |
set :branch, 'master' unless exists?(:branch) | |
set :deploy_to, "/var/www/apps/#{application}" unless exists?(:deploy_to) | |
set :deploy_via, :remote_cache | |
set :keep_releases, 3 | |
set :git_enable_submodules, true | |
set :rails_env, 'production' unless exists?(:rails_env) | |
set :use_sudo, false | |
# Git settings for capistrano | |
default_run_options[:pty] = true | |
ssh_options[:forward_agent] = true | |
# RVM settings | |
set :using_rvm, true unless exists?(:using_rvm) | |
# Sets the rvm to a specific version (or whatever env you want it to run in) | |
set :rvm_ruby_string, 'ree' unless exists?(:rvm_ruby_string) | |
# Daemons settings | |
# The unix socket that unicorn will be attached to. | |
# Also, nginx will upstream to this guy. | |
# The *nix place for socks is /var/run, so we should probably put it there | |
# Make sure the runner can access this though. | |
set :sockets_path, "/var/run/#{application}" unless exists?(:sockets_path) | |
# Just to be safe, put the pid somewhere that survives deploys. shared/pids is | |
# a good choice as any. | |
set(:pids_path) { File.join(shared_path, "pids") } unless exists?(:pids_path) | |
set :monitorer, 'god' unless exists?(:monitorer) | |
# Application settings | |
set :shared_dirs, %w( config uploads backup bundle tmp ) unless exists?(:shared_dirs) | |
namespace :app do | |
task :setup, :roles => :app do | |
commands = shared_dirs.map do |path| | |
"if [ ! -d '#{path}' ]; then mkdir -p #{path}; fi;" | |
end | |
run "cd #{shared_path}; #{commands.join(' ')}" | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment