Last active
December 15, 2015 14:29
-
-
Save PabloC/5274647 to your computer and use it in GitHub Desktop.
discourse.pill
This file contains hidden or 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
rails_env = ENV['RAILS_ENV'] || "production" | |
rails_root = ENV['RAILS_ROOT'] || "/var/www/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("discourse") 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 | |
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 | |
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 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment