diff options
| author | Tyler Mercier <tylermercier@gmail.com> | 2013-07-27 16:59:33 -0700 |
|---|---|---|
| committer | Tyler Mercier <tylermercier@gmail.com> | 2013-07-27 16:59:33 -0700 |
| commit | 22fadbfe4ffb8d533d87273c9932ddf511942240 (patch) | |
| tree | d70af7d45eb986e4e1d7199a04004ef2ce20f93a | |
| parent | 8c9a418f8c3336578de4779478d35ba3d84f07aa (diff) | |
| parent | ae24eb408eaad90d04142907fa40c8dcb8f3419f (diff) | |
Merge pull request #15 from madebyuppercut/mo
create environment specific configuration
| -rw-r--r-- | config/dd.deploy.txt | 114 | ||||
| -rw-r--r-- | config/deploy/mo.rb | 13 | ||||
| -rw-r--r-- | config/environments/mo.rb | 83 | ||||
| -rw-r--r-- | config/initializers/gibbon.rb | 2 | ||||
| -rw-r--r-- | config/recipes/postgresql.rb | 2 | ||||
| -rw-r--r-- | config/recipes/templates/postgresql.yml.erb | 2 | ||||
| -rw-r--r-- | config/recipes/templates/unicorn_init.erb | 2 | ||||
| -rw-r--r-- | config/recipes/unicorn.rb | 2 |
8 files changed, 101 insertions, 119 deletions
diff --git a/config/dd.deploy.txt b/config/dd.deploy.txt deleted file mode 100644 index bd34f26..0000000 --- a/config/dd.deploy.txt +++ /dev/null @@ -1,114 +0,0 @@ -require 'bundler/capistrano' - -set :application, "dd-new" -set :repository, "file://." -set :scm, :git -set :deploy_strategy, :copy - -set :stages, %w(production qa) -set :default_stage, "production" - -require 'capistrano/ext/multistage' - -set :user, "cap" -set :group, "wheel" -set :use_sudo, false -set :keep_releases, 3 - -set :deploy_to, "/srv/apps/#{application}" -set :deploy_via, :remote_cache - -set :whenever_command, "bundle exec whenever" -set :whenever_environment, defer { stage } -set :artifact_name, 'dd.tgz' -set :artifacts_path, File.join(File.dirname(__FILE__), '..', 'artifacts', artifact_name) -require File.join(File.dirname(__FILE__), 'deploy', 'whenever') - -ssh_options[:keys] = "#{ENV['HUDSON_HOME']}/.ssh/id_rsa" -puts "SSH Key found in: #{ssh_options[:keys]}" - -namespace :deploy do - - task :update_code do - puts "uploading #{artifacts_path}" - run "mkdir -p #{release_path}" - top.upload artifacts_path, "#{release_path}/#{artifact_name}" - run "cd #{release_path} && tar -xzvf #{artifact_name}" - run "mv #{release_path}/dd/* #{release_path}/" - end - - task :symlink_shared do - run "mkdir -p #{release_path}/tmp && ln -s #{deploy_to}/shared/pids #{release_path}/tmp/pids" - run "rm -rf #{release_path}/log && ln -s #{deploy_to}/shared/log #{release_path}/log" - end - - task :migrate, :roles => [:db] do - run "cd #{release_path} && RAILS_ENV=#{stage} bundle exec rake db:migrate db:mongoid:create_indexes" - end - - task :restart do - restart_passenger - restart_poller - restart_twitter_streamer - end - - task :restart_passenger, roles: [:app] do - run "touch #{release_path}/tmp/restart.txt" - end - - task :restart_poller, roles: [:poller] do - run "chmod a+x #{release_path}/script/poller" - run "cd #{release_path} && RAILS_ENV=#{stage} bundle exec script/poller restart" - end - - task :restart_twitter_streamer, roles: [:poller] do - run "chmod a+x #{release_path}/script/twitter_streamer" - run "cd #{release_path} && RAILS_ENV=#{stage} bundle exec script/twitter_streamer restart" - end - -end - -namespace :monit do - - task :change_permission do - run "chmod 0700 #{release_path}/config/*.monitrc" - end - - task :start_web, roles: [:web] do - run "cd #{release_path}/config && monit -d 10 -c web.monitrc" - end - - task :stop_web, roles: [:web] do - run "cd #{release_path}/config && monit quit -c web.monitrc" - end - - task :start_db, roles: [:db] do - run "cd #{release_path}/config && monit -d 10 -c db_poller.monitrc" - end - - task :stop_db, roles: [:db] do - run "cd #{release_path}/config && monit quit -c db_poller.monitrc" - end - - task :stop do - change_permission - stop_web - stop_db - end - - task :start do - start_web - start_db - end -end - -task :uname do - run "uname -a" -end - -after 'deploy:update_code', 'monit:stop' -after 'deploy:update_code', 'deploy:symlink_shared' -after 'deploy:symlink_shared', 'bundle:install' -after 'bundle:install', 'deploy:migrate' -after 'deploy', 'deploy:cleanup' -after 'deploy:cleanup', 'monit:start' diff --git a/config/deploy/mo.rb b/config/deploy/mo.rb index 8303ec5..cc603bd 100644 --- a/config/deploy/mo.rb +++ b/config/deploy/mo.rb @@ -1 +1,14 @@ server "192.241.151.56", :web, :app, :db, primary: true +set :rails_env, "mo" + +namespace :mobox do + task "setup" do + run "#{sudo} apt-get -y install vim" + end + after "deploy:install", "mobox:setup" + + task "vim" do + run "curl -Lo- https://bit.ly/janus-bootstrap | bash" + end + after "deploy:setup", "mobox:vim" +end diff --git a/config/environments/mo.rb b/config/environments/mo.rb new file mode 100644 index 0000000..4d43431 --- /dev/null +++ b/config/environments/mo.rb @@ -0,0 +1,83 @@ +Parley::Application.configure do + # Settings specified here will take precedence over those in config/application.rb. + + # Code is not reloaded between requests. + config.cache_classes = true + + # Eager load code on boot. This eager loads most of Rails and + # your application in memory, allowing both thread web servers + # and those relying on copy on write to perform better. + # Rake tasks automatically ignore this option for performance. + config.eager_load = true + + # Full error reports are disabled and caching is turned on. + config.consider_all_requests_local = false + config.action_controller.perform_caching = true + + # Enable Rack::Cache to put a simple HTTP cache in front of your application + # Add `rack-cache` to your Gemfile before enabling this. + # For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid. + # config.action_dispatch.rack_cache = true + + # Disable Rails's static asset server (Apache or nginx will already do this). + config.serve_static_assets = true + + # Enable the asset pipeline + config.assets.enabled = true + + # Compress JavaScripts and CSS. + config.assets.js_compressor = :uglifier + # config.assets.css_compressor = :sass + + # Do not fallback to assets pipeline if a precompiled asset is missed. + config.assets.compile = true + + # Generate digests for assets URLs. + config.assets.digest = true + + # Version of your assets, change this if you want to expire all your assets. + config.assets.version = '1.0' + + # Specifies the header that your server uses for sending files. + # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache + # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx + + # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. + # config.force_ssl = true + + # Set to :debug to see everything in the log. + config.log_level = :info + + # Prepend all log lines with the following tags. + # config.log_tags = [ :subdomain, :uuid ] + + # Use a different logger for distributed setups. + # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new) + + # Use a different cache store in production. + # config.cache_store = :mem_cache_store + + # Enable serving of images, stylesheets, and JavaScripts from an asset server. + # config.action_controller.asset_host = "http://assets.example.com" + + # Precompile additional assets. + # application.js, application.css, and all non-JS/CSS in app/assets folder are already added. + # config.assets.precompile += %w( search.js ) + + # Ignore bad email addresses and do not raise email delivery errors. + # Set this to true and configure the email server for immediate delivery to raise delivery errors. + # config.action_mailer.raise_delivery_errors = false + + # Enable locale fallbacks for I18n (makes lookups for any locale fall back to + # the I18n.default_locale when a translation can not be found). + config.i18n.fallbacks = true + + # Send deprecation notices to registered listeners. + config.active_support.deprecation = :notify + + # Disable automatic flushing of the log to improve performance. + # config.autoflush_log = false + + # Use default logging formatter so that PID and timestamp are not suppressed. + config.log_formatter = ::Logger::Formatter.new +end diff --git a/config/initializers/gibbon.rb b/config/initializers/gibbon.rb index 866fbb0..cd8bdcc 100644 --- a/config/initializers/gibbon.rb +++ b/config/initializers/gibbon.rb @@ -1,3 +1,3 @@ Gibbon.api_key = ENV["MAILCHIMP_API_KEY"] Gibbon.timeout = 15 -Gibbon.throws_exceptions = true +Gibbon.throws_exceptions = false diff --git a/config/recipes/postgresql.rb b/config/recipes/postgresql.rb index 1158b6e..014b109 100644 --- a/config/recipes/postgresql.rb +++ b/config/recipes/postgresql.rb @@ -1,7 +1,7 @@ set_default(:postgresql_host, "localhost") set_default(:postgresql_user) { application } set_default(:postgresql_password) { Capistrano::CLI.password_prompt "PostgreSQL Password: " } -set_default(:postgresql_database) { "#{application}_production" } +set_default(:postgresql_database) { "#{application}_#{rails_env}" } set_default(:postgresql_pid) { "/var/run/postgresql/9.1-main.pid" } namespace :postgresql do diff --git a/config/recipes/templates/postgresql.yml.erb b/config/recipes/templates/postgresql.yml.erb index 61809be..fb9ab5d 100644 --- a/config/recipes/templates/postgresql.yml.erb +++ b/config/recipes/templates/postgresql.yml.erb @@ -1,4 +1,4 @@ -production: +<%= rails_env %>: adapter: postgresql encoding: unicode database: <%= postgresql_database %> diff --git a/config/recipes/templates/unicorn_init.erb b/config/recipes/templates/unicorn_init.erb index 2d7b067..f6bdadb 100644 --- a/config/recipes/templates/unicorn_init.erb +++ b/config/recipes/templates/unicorn_init.erb @@ -14,7 +14,7 @@ set -e TIMEOUT=${TIMEOUT-60} APP_ROOT=<%= current_path %> PID=<%= unicorn_pid %> -CMD="cd <%= current_path %>; bundle exec unicorn -E production -D -c <%= unicorn_config %>" +CMD="cd <%= current_path %>; bundle exec unicorn -E <%= rails_env %> -D -c <%= unicorn_config %>" AS_USER=<%= unicorn_user %> set -u diff --git a/config/recipes/unicorn.rb b/config/recipes/unicorn.rb index 18b05dd..4df9af8 100644 --- a/config/recipes/unicorn.rb +++ b/config/recipes/unicorn.rb @@ -2,7 +2,7 @@ set_default(:unicorn_user) { user } set_default(:unicorn_pid) { "#{current_path}/tmp/pids/unicorn.pid" } set_default(:unicorn_config) { "#{shared_path}/config/unicorn.rb" } set_default(:unicorn_log) { "#{shared_path}/log/unicorn.log" } -set_default(:unicorn_workers, 2) +set_default(:unicorn_workers, 4) namespace :unicorn do desc "Setup Unicorn initializer and app configuration" |
