discourse/config/environments/production.rb
Chris Alberti 5dd238174d
FIX: Update sendmail config for Mail gem >=2.9.0 compatibility (#39688)
When a site falls back to sendmail, the config appears to be broken
since Mail gem 2.9.0.

We're passing a string when it expects an array of strings.

See
d1d65b370b/lib/mail/network/delivery_methods/sendmail.rb (L53)

This was causing a pile up of digest email job retries, see dev topic
/t/182887

This PR fixes the config and also moves it to a GlobalSetting so I could
write a spec to make sure the default config is valid.
2026-05-01 15:57:17 -05:00

59 lines
2 KiB
Ruby
Vendored

# frozen_string_literal: true
Discourse::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
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
# Disable Rails's static asset server (Apache or nginx will already do this)
config.public_file_server.enabled = GlobalSetting.serve_static_assets || false
config.assets.js_compressor = :uglifier
# stuff should be pre-compiled
config.assets.compile = false
# Generate digests for assets URLs
config.assets.digest = true
config.log_level = :info
if (smtp_settings = GlobalSetting.smtp_settings).present?
config.action_mailer.smtp_settings = smtp_settings
else
config.action_mailer.delivery_method = :sendmail
config.action_mailer.sendmail_settings = GlobalSetting.sendmail_settings
end
# Send deprecation notices to registered listeners
config.active_support.deprecation = :notify
# allows developers to use mini profiler
config.load_mini_profiler = GlobalSetting.load_mini_profiler
# Discourse strongly recommend you use a CDN.
# For origin pull cdns all you need to do is register an account and configure
config.action_controller.asset_host = GlobalSetting.cdn_url
# a comma delimited list of emails your devs have
# developers have god like rights and may impersonate anyone in the system
# normal admins may only impersonate other moderators (not admins)
if emails = GlobalSetting.developer_emails
config.developer_emails = emails.split(",").map(&:downcase).map(&:strip)
end
if ENV["RAILS_LOG_TO_STDOUT"].present?
config.logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))
end
config.active_record.action_on_strict_loading_violation = :log
# This is a NGINX specific header
config.action_dispatch.x_sendfile_header = "X-Accel-Redirect"
end