45d165749f
Move MinIO from minio.localhost to minio.fizzy.localhost, which makes it same-site with the app, so the CORS redirect succeeds. The service worker fetches Active Storage URLs with `mode: "cors"` so it can inspect response sizes for offline caching. Active Storage's redirect controller returns a 302 to the MinIO presigned URL. When that redirect crosses site boundaries (from fizzy.localhost to minio.localhost), the browser sets the Origin header to "null" on the redirected request per the Fetch spec, which fails the CORS check and produces net::ERR_FAILED.
100 lines
3.5 KiB
Ruby
100 lines
3.5 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.enable_reloading = true
|
|
|
|
# Do not eager load code on boot.
|
|
config.eager_load = false
|
|
|
|
# Show full error reports.
|
|
config.consider_all_requests_local = true
|
|
|
|
# Enable server timing
|
|
config.server_timing = 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
|
|
|
|
# Store uploaded files on the local file system (see config/storage.yml for options).
|
|
if Rails.root.join("tmp/minio-dev.txt").exist?
|
|
config.active_storage.service = :devminio
|
|
config.x.content_security_policy.connect_src = "http://minio.fizzy.localhost:39000"
|
|
config.x.content_security_policy.img_src = "http://minio.fizzy.localhost:39000"
|
|
else
|
|
config.active_storage.service = :local
|
|
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
|
|
|
|
# Highlight code that enqueued background job in logs.
|
|
config.active_job.verbose_enqueue_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
|
|
|
|
# Uncomment if you wish to allow Action Cable access from any origin.
|
|
# config.action_cable.disable_request_forgery_protection = true
|
|
|
|
# Raise error when a before_action's only/except options reference missing actions
|
|
config.action_controller.raise_on_missing_callback_actions = true
|
|
|
|
# Prepend all log lines with the following tags.
|
|
config.log_tags = [ :request_id ]
|
|
|
|
if Rails.root.join("tmp/email-dev.txt").exist?
|
|
config.action_mailer.delivery_method = :letter_opener
|
|
config.action_mailer.perform_deliveries = true
|
|
else
|
|
config.action_mailer.raise_delivery_errors = false
|
|
end
|
|
|
|
config.hosts = [
|
|
"fizzy.localhost",
|
|
"localhost",
|
|
"127.0.0.1",
|
|
/fizzy-\d+/, # review apps: fizzy-123, fizzy-456:3000
|
|
/.*\.ts\.net/, # tailscale serve: hostname.tail1234.ts.net
|
|
/.*\.nip\.io/ # nip.io for mobile apps
|
|
]
|
|
|
|
# Canonical host for mailer URLs (emails always link here, not personal Tailscale URLs)
|
|
config.action_mailer.default_url_options = { host: "#{config.hosts.first}:3006" }
|
|
end
|