Add Heroku deployment support
This commit is contained in:
parent
6cf44ca92c
commit
ab4f5f5da5
8 changed files with 126 additions and 4 deletions
|
@ -7,4 +7,4 @@ test:
|
|||
|
||||
production:
|
||||
adapter: redis
|
||||
url: redis://<%= ENV['REDIS_HOST'] || 'localhost' %>:<%= ENV['REDIS_PORT'] || 6379 %>/1
|
||||
url: redis://<%= ENV['REDIS_PASSWORD'] ? ':' + ENV['REDIS_PASSWORD'] + '@' : '' %><%= ENV['REDIS_HOST'] || 'localhost' %>:<%= ENV['REDIS_PORT'] || 6379 %>/1
|
||||
|
|
|
@ -45,10 +45,20 @@ Rails.application.configure do
|
|||
# Use a different logger for distributed setups.
|
||||
# config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
|
||||
|
||||
# Parse and split the REDIS_URL if passed (used with hosting platforms such as Heroku).
|
||||
# Set ENV variables because they are used elsewhere.
|
||||
if ENV['REDIS_URL']
|
||||
redis_url = URI.parse(ENV['REDIS_URL'])
|
||||
ENV['REDIS_HOST'] = redis_url.host
|
||||
ENV['REDIS_PORT'] = redis_url.port.to_s
|
||||
ENV['REDIS_PASSWORD'] = redis_url.password
|
||||
end
|
||||
|
||||
# Use a different cache store in production.
|
||||
config.cache_store = :redis_store, {
|
||||
host: ENV.fetch('REDIS_HOST') { 'localhost' },
|
||||
port: ENV.fetch('REDIS_PORT') { 6379 },
|
||||
password: ENV.fetch('REDIS_PASSWORD') { false },
|
||||
db: 0,
|
||||
namespace: 'cache',
|
||||
expires_in: 20.minutes
|
||||
|
@ -85,7 +95,7 @@ Rails.application.configure do
|
|||
:address => ENV['SMTP_SERVER'],
|
||||
:user_name => ENV['SMTP_LOGIN'],
|
||||
:password => ENV['SMTP_PASSWORD'],
|
||||
:domain => config.x.local_domain,
|
||||
:domain => ENV['SMTP_DOMAIN'] || config.x.local_domain,
|
||||
:authentication => :plain,
|
||||
}
|
||||
|
||||
|
|
|
@ -3,5 +3,6 @@
|
|||
Redis.current = Redis.new(
|
||||
host: ENV.fetch('REDIS_HOST') { 'localhost' },
|
||||
port: ENV.fetch('REDIS_PORT') { 6379 },
|
||||
password: ENV.fetch('REDIS_PASSWORD') { false },
|
||||
driver: :hiredis
|
||||
)
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
host = ENV.fetch('REDIS_HOST') { 'localhost' }
|
||||
port = ENV.fetch('REDIS_PORT') { 6379 }
|
||||
password = ENV.fetch('REDIS_PASSWORD') { false }
|
||||
|
||||
Sidekiq.configure_server do |config|
|
||||
config.redis = { host: host, port: port }
|
||||
config.redis = { host: host, port: port, password: password}
|
||||
end
|
||||
|
||||
Sidekiq.configure_client do |config|
|
||||
config.redis = { host: host, port: port }
|
||||
config.redis = { host: host, port: port, password: password }
|
||||
end
|
||||
|
|
|
@ -40,6 +40,11 @@ preload_app!
|
|||
# cannot share connections between processes.
|
||||
#
|
||||
on_worker_boot do
|
||||
|
||||
if ENV["HEROKU"] #Spwan the workers from Puma, to only use one dyno
|
||||
@sidekiq_pid ||= spawn('bundle exec sidekiq -q default -q mailers -q push')
|
||||
end
|
||||
|
||||
ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue