diff --git a/config/environments/production.rb b/config/environments/production.rb index 35c7103f..a301acc8 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -20,9 +20,12 @@ Rails.application.configure do # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). # config.require_master_key = true + # Set the secret_key_base from the env, if not set by any other means + config.secret_key_base ||= ENV.fetch('SECRET_KEY_BASE', nil) + # Disable serving static files from the `/public` folder by default since # Apache or NGINX already handles this. - config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present? + config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? # Compress CSS using a preprocessor. # config.assets.css_compressor = :sass @@ -38,7 +41,7 @@ Rails.application.configure do # 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 + config.force_ssl = true if ENV['FORCE_SSL'].present? # Include generic and useful information about system operation, but avoid logging too much # information to avoid inadvertent exposure of personally identifiable information (PII). @@ -64,12 +67,13 @@ Rails.application.configure do # require "syslog/logger" # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new "app-name") - if ENV["RAILS_LOG_TO_STDOUT"].present? + if ENV['RAILS_LOG_TO_STDOUT'].present? logger = ActiveSupport::Logger.new(STDOUT) logger.formatter = config.log_formatter config.logger = ActiveSupport::TaggedLogging.new(logger) end + config.action_mailer.default_url_options = { host: ENV.fetch('OSEM_HOSTNAME', 'localhost:3000') } config.action_mailer.smtp_settings = { address: ENV.fetch('OSEM_SMTP_ADDRESS', 'localhost'), port: ENV.fetch('OSEM_SMTP_PORT', 25), @@ -81,6 +85,14 @@ Rails.application.configure do openssl_verify_mode: ENV.fetch('OSEM_SMTP_OPENSSL_VERIFY_MODE', nil) }.compact + # Use memcache cluster as cache store in production + if ENV["OSEM_MEMCACHED_SERVERS"] + config.cache_store = :mem_cache_store, ENV['OSEM_MEMCACHED_SERVERS'].split(','), { + username: ENV.fetch('OSEM_MEMCACHED_USERNAME', nil), + password: ENV.fetch('OSEM_MEMCACHED_PASSWORD', nil) + } + end + # Do not dump schema after migrations. config.active_record.dump_schema_after_migration = false end