Send all logs to stderr by default instead of stdout. Fixes a problem where parsing the output of sandboxed commands could fail, because they could contain Rails log messages in their stdout. When we run a command in a sandbox, we call fork+exec to run the command in the background so we can capture its output. If Rails prints anything to stdout between the fork and exec calls, then it will be inadvertently captured along with the command's output. This will break parsing of the command's output. This can happen if warning messages are printed by Rails while setting up the sandbox between the fork and exec calls. Writing to stderr is also more correct, since stdout is buffered by default, which means logs could potentially be lost if the process dies unexpectedly before the buffers are flushed. Stderr is unbuffered by default, which means logs will always be output immediately.
78 lines
2.8 KiB
Ruby
78 lines
2.8 KiB
Ruby
require "active_support/core_ext/integer/time"
|
|
|
|
Rails.application.configure do
|
|
# Settings specified here will take precedence over those in config/application.rb.
|
|
|
|
# In the development environment your application's code is reloaded any time
|
|
# it changes. This slows down response time but is perfect for development
|
|
# since you don't have to restart the web server when you make code changes.
|
|
config.cache_classes = false
|
|
|
|
# Do not eager load code on boot.
|
|
config.eager_load = false
|
|
|
|
# Show full error reports.
|
|
config.consider_all_requests_local = true
|
|
|
|
# Enable/disable caching. By default caching is disabled.
|
|
# Run rails dev:cache to toggle caching.
|
|
if Rails.root.join('tmp', 'caching-dev.txt').exist?
|
|
config.action_controller.perform_caching = true
|
|
config.action_controller.enable_fragment_cache_logging = true
|
|
|
|
config.cache_store = :memory_store
|
|
config.public_file_server.headers = {
|
|
'Cache-Control' => "public, max-age=#{2.days.to_i}"
|
|
}
|
|
else
|
|
config.action_controller.perform_caching = false
|
|
|
|
config.cache_store = :null_store
|
|
end
|
|
|
|
# Don't care if the mailer can't send.
|
|
config.action_mailer.raise_delivery_errors = false
|
|
|
|
config.action_mailer.perform_caching = false
|
|
|
|
# Print deprecation notices to the Rails logger.
|
|
config.active_support.deprecation = :log
|
|
|
|
# Raise exceptions for disallowed deprecations.
|
|
config.active_support.disallowed_deprecation = :raise
|
|
|
|
# Tell Active Support which deprecation messages to disallow.
|
|
config.active_support.disallowed_deprecation_warnings = []
|
|
|
|
# Raise an error on page load if there are pending migrations.
|
|
config.active_record.migration_error = :page_load
|
|
|
|
# Highlight code that triggered database queries in logs.
|
|
config.active_record.verbose_query_logs = true
|
|
|
|
|
|
# Raises error for missing translations.
|
|
# config.i18n.raise_on_missing_translations = true
|
|
|
|
# Annotate rendered view with file names.
|
|
# config.action_view.annotate_rendered_view_with_filenames = true
|
|
|
|
# Use an evented file watcher to asynchronously detect changes in source code,
|
|
# routes, locales, etc. This feature depends on the listen gem.
|
|
config.file_watcher = ActiveSupport::EventedFileUpdateChecker
|
|
|
|
# Uncomment if you wish to allow Action Cable access from any origin.
|
|
# config.action_cable.disable_request_forgery_protection = true
|
|
|
|
logger = ActiveSupport::Logger.new(STDERR)
|
|
logger.formatter = config.log_formatter
|
|
config.logger = ActiveSupport::TaggedLogging.new(logger)
|
|
|
|
BetterErrors::Middleware.allow_ip!(IPAddr.new("0.0.0.0/0"))
|
|
BetterErrors::Middleware.allow_ip!(IPAddr.new("::/0"))
|
|
|
|
# https://bigbinary.com/blog/rails-6-adds-guard-against-dns-rebinding-attacks
|
|
# hxxps://github.com/rails/rails/pull/33145
|
|
config.hosts += [".ngrok.io", ".lvh.me", ".xip.io", ".nip.io", Danbooru.config.hostname]
|
|
end
|