Files
fizzy/config/environments/development.rb
T
Mike Dalessio 45d165749f Fix CORS issues when using minio in development (#2814)
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.
2026-04-08 16:06:38 -04:00

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