123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- def env_trusted_proxies
- return nil if ENV['RAILS_TRUSTED_PROXIES'].blank?
- if ENV['RAILS_TRUSTED_PROXIES'].strip.start_with?('[')
- # Backwards compatibility for Docker environments setting the variable to a
- # Ruby literal like "['127.0.0.1', '::1']".
- eval(ENV['RAILS_TRUSTED_PROXIES']) # rubocop:disable Security/Eval
- else
- # The regular way: variable contains a list if IP addresses/masks: "127.0.0.1,::1"
- ENV['RAILS_TRUSTED_PROXIES'].split(',').select(&:present?)
- end
- end
- Rails.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
- # Eager load code on boot. This eager loads most of Rails and
- # your application in memory, allowing both threaded web servers
- # and those relying on copy on write to perform better.
- # Rake tasks automatically ignore this option for performance.
- 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
- # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"]
- # or in config/master.key. This key is used to decrypt credentials (and other encrypted files).
- # config.require_master_key = true
- # 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?
- # Compress JavaScripts and CSS.
- config.assets.js_compressor = :terser
- # config.assets.css_compressor = :sass
- # Do not fallback to assets pipeline if a precompiled asset is missed.
- config.assets.compile = false
- # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
- # Enable serving of images, stylesheets, and JavaScripts from an asset server.
- # config.action_controller.asset_host = 'http://assets.example.com'
- # Specifies the header that your server uses for sending files.
- # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
- # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
- # Store uploaded files on the local file system (see config/storage.yml for options).
- # config.active_storage.service = :local
- # Mount Action Cable outside main process or domain.
- # config.action_cable.mount_path = nil
- # config.action_cable.url = 'wss://example.com/cable'
- # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ]
- # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
- # config.force_ssl = true
- # Use the lowest log level to ensure availability of diagnostic information
- # when problems arise.
- config.log_level = :info
- # Prepend all log lines with the following tags.
- config.log_tags = [ :request_id ]
- # Use a different cache store in production.
- # config.cache_store = :mem_cache_store
- # Use a real queuing backend for Active Job (and separate queues per environment).
- # config.active_job.queue_adapter = :resque
- # config.active_job.queue_name_prefix = "zammad_#{Rails.env}"
- config.action_mailer.perform_caching = false
- # Ignore bad email addresses and do not raise email delivery errors.
- # Set this to true and configure the email server for immediate delivery to raise delivery errors.
- # config.action_mailer.raise_delivery_errors = false
- # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
- # the I18n.default_locale when a translation cannot be found).
- config.i18n.fallbacks = true
- # Enable autoload
- config.dependency_loading = true
- # Send deprecation notices to registered listeners.
- config.active_support.deprecation = :notify
- # Use default logging formatter so that PID and timestamp are not suppressed.
- # config.log_formatter = ::Logger::Formatter.new
- # Use a different logger for distributed setups.
- # require 'syslog/logger'
- # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
- if ENV['RAILS_LOG_TO_STDOUT'].present?
- logger = ActiveSupport::Logger.new($stdout)
- logger.formatter = config.log_formatter
- config.logger = ActiveSupport::TaggedLogging.new(logger)
- end
- # Do not dump schema after migrations.
- config.active_record.dump_schema_after_migration = false
- # Overwrite default Rails TRUSTED_PROXIES because otherwise IPs from private ranges will be
- # ignored for Session logging and fall back to localhost (https://github.com/zammad/zammad/issues/742).
- config.action_dispatch.trusted_proxies = env_trusted_proxies || ['127.0.0.1', '::1']
- end
|