summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Mercier <tylermercier@gmail.com>2013-07-27 16:59:33 -0700
committerTyler Mercier <tylermercier@gmail.com>2013-07-27 16:59:33 -0700
commit22fadbfe4ffb8d533d87273c9932ddf511942240 (patch)
treed70af7d45eb986e4e1d7199a04004ef2ce20f93a
parent8c9a418f8c3336578de4779478d35ba3d84f07aa (diff)
parentae24eb408eaad90d04142907fa40c8dcb8f3419f (diff)
Merge pull request #15 from madebyuppercut/mo
create environment specific configuration
-rw-r--r--config/dd.deploy.txt114
-rw-r--r--config/deploy/mo.rb13
-rw-r--r--config/environments/mo.rb83
-rw-r--r--config/initializers/gibbon.rb2
-rw-r--r--config/recipes/postgresql.rb2
-rw-r--r--config/recipes/templates/postgresql.yml.erb2
-rw-r--r--config/recipes/templates/unicorn_init.erb2
-rw-r--r--config/recipes/unicorn.rb2
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"