From 260935045799abd351ca6f904ddbe748ba269a39 Mon Sep 17 00:00:00 2001 From: Sam Saffron Date: Tue, 12 Feb 2013 13:44:44 +1100 Subject: [PATCH] sample bluepill config --- config/discourse.pill.sample | 89 ++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 config/discourse.pill.sample diff --git a/config/discourse.pill.sample b/config/discourse.pill.sample new file mode 100644 index 00000000000..9b8165d73b4 --- /dev/null +++ b/config/discourse.pill.sample @@ -0,0 +1,89 @@ +rails_env = ENV['RAILS_ENV'] || "production" +rails_root = ENV['RAILS_ROOT'] || "/var/rails/my_discourse" + +user = ENV["DISCOURSE_USER"] || ENV['USER'] || 'user_running_app' +group = ENV["DISCOURSE_GROUP"] || ENV['GROUP'] || 'www-data' +num_webs = ENV["NUM_WEBS"].to_i > 0 ? ENV["NUM_WEBS"].to_i : 4 + +# to debug use +#Bluepill.application("your_app", :foreground => true) do |app| +Bluepill.application("your_app") do |app| + + app.gid = group + app.uid = user + + # getting this to work was a nightmare + # bundle exec spawns a process totally messing with the demonize option + # so we suck the environment out and set it up first + app.environment = `env -i BUNDLE_GEMFILE=#{rails_root}/Gemfile /usr/local/rvm/bin/bootup_bundle exec env`.lines.inject({}) do |env_hash,l| + kv = l.chomp.split('=',2) + env_hash[kv[0]] = kv[1] + env_hash + end if File.exist?("/usr/local/rvm/bin/rvm") + + app.environment ||= {} + app.environment['RAILS_ENV'] = rails_env + + app.gid = group + app.uid = user + + app.working_dir = rails_root + num_webs.times do |i| + app.process("thin-#{i}") do |process| + process.start_command = "bundle exec thin start -e production -t 0 -p #{9040 + i} -P #{rails_root}/tmp/pids/thin#{i}.pid -d" + process.pid_file = "#{rails_root}/tmp/pids/thin#{i}.pid" + process.start_grace_time = 30.seconds + process.stop_grace_time = 10.seconds + process.restart_grace_time = 10.seconds + process.group = "thins" + process.uid = user + process.gid = group + process.daemonize = false + process.stdout = process.stderr = "#{rails_root}/log/thin#{i}.log" + end + end + +#debug instance + app.process("thin-debug") do |process| + process.start_command = "bundle exec thin start -e development -t 0 -p 10040 -P #{rails_root}/tmp/pids/thin-debug.pid -d" + process.pid_file = "#{rails_root}/tmp/pids/thin-debug.pid" + process.start_grace_time = 30.seconds + process.stop_grace_time = 10.seconds + process.restart_grace_time = 10.seconds + process.group = "thins" + process.uid = user + process.gid = group + process.daemonize = false + process.stdout = process.stderr = "#{rails_root}/log/thin-debug.log" + end + + app.process("sidekiq-worker") do |process| + pidfile = "#{rails_root}/tmp/pids/sidekiq-worker.pid" + + process.start_command = "/usr/bin/env PIDFILE=#{pidfile} RAILS_ENV=#{rails_env} bundle exec sidekiq" + process.pid_file = pidfile + process.start_grace_time = 30.seconds + process.stop_grace_time = 10.seconds + process.restart_grace_time = 10.seconds + process.uid = user + process.gid = group + process.daemonize = true + end + + if `hostname`.strip == "host to run on" + app.process("clockwork") do |process| + pidfile = "#{rails_root}/tmp/pids/clockwork.pid" + + process.start_command = "/usr/bin/env RAILS_ENV=#{rails_env} bundle exec clockwork config/clock.rb" + process.pid_file = pidfile + process.start_grace_time = 30.seconds + process.stop_grace_time = 10.seconds + process.restart_grace_time = 10.seconds + process.uid = user + process.gid = group + process.daemonize = true + end + end + +end +