|
4 | 4 | # Settings specified here will take precedence over those in config/application.rb. |
5 | 5 |
|
6 | 6 | # Code is not reloaded between requests. |
7 | | - config.cache_classes = true |
| 7 | + config.enable_reloading = false |
8 | 8 |
|
9 | | - # Eager load code on boot. This eager loads most of Rails and |
10 | | - # your application in memory, allowing both threaded web servers |
11 | | - # and those relying on copy on write to perform better. |
12 | | - # Rake tasks automatically ignore this option for performance. |
| 9 | + # Eager load code on boot for better performance and memory savings (ignored by Rake tasks). |
13 | 10 | config.eager_load = true |
14 | 11 |
|
15 | | - # Full error reports are disabled and caching is turned on. |
16 | | - config.consider_all_requests_local = false |
17 | | - config.action_controller.perform_caching = true |
18 | | - |
19 | | - # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] |
20 | | - # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). |
21 | | - # config.require_master_key = true |
22 | | - |
23 | | - # Disable serving static files from the `/public` folder by default since |
24 | | - # Apache or NGINX already handles this. |
25 | | - config.public_file_server.enabled = ENV["RAILS_SERVE_STATIC_FILES"].present? |
| 12 | + # Full error reports are disabled. |
| 13 | + config.consider_all_requests_local = false |
26 | 14 |
|
27 | | - # Compress CSS using a preprocessor. |
28 | | - # config.assets.css_compressor = :sass |
| 15 | + # Turn on fragment caching in view templates. |
| 16 | + config.action_controller.perform_caching = true |
29 | 17 |
|
30 | | - # Do not fallback to assets pipeline if a precompiled asset is missed. |
31 | | - config.assets.compile = false |
| 18 | + # Cache assets for far-future expiry since they are all digest stamped. |
| 19 | + config.public_file_server.headers = { "cache-control" => "public, max-age=#{1.year.to_i}" } |
32 | 20 |
|
33 | 21 | # Enable serving of images, stylesheets, and JavaScripts from an asset server. |
34 | 22 | # config.asset_host = "http://assets.example.com" |
35 | 23 |
|
36 | | - # Specifies the header that your server uses for sending files. |
37 | | - # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for Apache |
38 | | - # config.action_dispatch.x_sendfile_header = "X-Accel-Redirect" # for NGINX |
39 | | - |
40 | 24 | # Store uploaded files on the local file system (see config/storage.yml for options). |
41 | 25 | config.active_storage.service = :local |
42 | 26 |
|
43 | | - # Mount Action Cable outside main process or domain. |
44 | | - # config.action_cable.mount_path = nil |
45 | | - # config.action_cable.url = "wss://example.com/cable" |
46 | | - # config.action_cable.allowed_request_origins = [ "http://example.com", /http:\/\/example.*/ ] |
| 27 | + # Assume all access to the app is happening through a SSL-terminating reverse proxy. |
| 28 | + config.assume_ssl = true |
47 | 29 |
|
48 | 30 | # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. |
49 | | - # config.force_ssl = true |
| 31 | + config.force_ssl = true |
50 | 32 |
|
51 | | - # Include generic and useful information about system operation, but avoid logging too much |
52 | | - # information to avoid inadvertent exposure of personally identifiable information (PII). |
53 | | - config.log_level = :info |
| 33 | + # Skip http-to-https redirect for the default health check endpoint. |
| 34 | + # config.ssl_options = { redirect: { exclude: ->(request) { request.path == "/up" } } } |
54 | 35 |
|
55 | | - # Prepend all log lines with the following tags. |
| 36 | + # Log to STDOUT with the current request id as a default log tag. |
56 | 37 | config.log_tags = [ :request_id ] |
| 38 | + config.logger = ActiveSupport::TaggedLogging.logger(STDOUT) |
57 | 39 |
|
58 | | - # Use a different cache store in production. |
59 | | - # config.cache_store = :mem_cache_store |
| 40 | + # Change to "debug" to log everything (including potentially personally-identifiable information!) |
| 41 | + config.log_level = ENV.fetch("RAILS_LOG_LEVEL", "info") |
| 42 | + |
| 43 | + # Prevent health checks from clogging up the logs. |
| 44 | + config.silence_healthcheck_path = "/up" |
| 45 | + |
| 46 | + # Don't log any deprecations. |
| 47 | + config.active_support.report_deprecations = false |
60 | 48 |
|
61 | | - # Use a real queuing backend for Active Job (and separate queues per environment). |
62 | | - # config.active_job.queue_adapter = :resque |
63 | | - # config.active_job.queue_name_prefix = "codespaces_try_rails_production" |
| 49 | + # Replace the default in-process memory cache store with a durable alternative. |
| 50 | + # config.cache_store = :mem_cache_store |
64 | 51 |
|
65 | | - config.action_mailer.perform_caching = false |
| 52 | + # Replace the default in-process and non-durable queuing backend for Active Job. |
| 53 | + # config.active_job.queue_adapter = :resque |
66 | 54 |
|
67 | 55 | # Ignore bad email addresses and do not raise email delivery errors. |
68 | 56 | # Set this to true and configure the email server for immediate delivery to raise delivery errors. |
69 | 57 | # config.action_mailer.raise_delivery_errors = false |
70 | 58 |
|
| 59 | + # Set host to be used by links generated in mailer templates. |
| 60 | + config.action_mailer.default_url_options = { host: "example.com" } |
| 61 | + |
| 62 | + # Specify outgoing SMTP server. Remember to add smtp/* credentials via rails credentials:edit. |
| 63 | + # config.action_mailer.smtp_settings = { |
| 64 | + # user_name: Rails.application.credentials.dig(:smtp, :user_name), |
| 65 | + # password: Rails.application.credentials.dig(:smtp, :password), |
| 66 | + # address: "smtp.example.com", |
| 67 | + # port: 587, |
| 68 | + # authentication: :plain |
| 69 | + # } |
| 70 | + |
71 | 71 | # Enable locale fallbacks for I18n (makes lookups for any locale fall back to |
72 | 72 | # the I18n.default_locale when a translation cannot be found). |
73 | 73 | config.i18n.fallbacks = true |
74 | 74 |
|
75 | | - # Don't log any deprecations. |
76 | | - config.active_support.report_deprecations = false |
77 | | - |
78 | | - # Use default logging formatter so that PID and timestamp are not suppressed. |
79 | | - config.log_formatter = ::Logger::Formatter.new |
80 | | - |
81 | | - # Use a different logger for distributed setups. |
82 | | - # require "syslog/logger" |
83 | | - # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new "app-name") |
84 | | - |
85 | | - if ENV["RAILS_LOG_TO_STDOUT"].present? |
86 | | - logger = ActiveSupport::Logger.new(STDOUT) |
87 | | - logger.formatter = config.log_formatter |
88 | | - config.logger = ActiveSupport::TaggedLogging.new(logger) |
89 | | - end |
90 | | - |
91 | 75 | # Do not dump schema after migrations. |
92 | 76 | config.active_record.dump_schema_after_migration = false |
| 77 | + |
| 78 | + # Only use :id for inspections in production. |
| 79 | + config.active_record.attributes_for_inspect = [ :id ] |
| 80 | + |
| 81 | + # Enable DNS rebinding protection and other `Host` header attacks. |
| 82 | + # config.hosts = [ |
| 83 | + # "example.com", # Allow requests from example.com |
| 84 | + # /.*\.example\.com/ # Allow requests from subdomains like `www.example.com` |
| 85 | + # ] |
| 86 | + # |
| 87 | + # Skip DNS rebinding protection for the default health check endpoint. |
| 88 | + # config.host_authorization = { exclude: ->(request) { request.path == "/up" } } |
93 | 89 | end |
0 commit comments