mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-05 07:13:12 +08:00
Pitchfork has been the default web server for some time now. This removes Unicorn entirely to simplify the codebase and unblock future improvements (like Rack 3). Notable changes beyond the straightforward removal: - `Discourse.after_unicorn_worker_fork` → `Discourse.apply_worker_db_variables_overrides`: renamed and wired into pitchfork.conf.rb's `after_worker_fork`. This actually *fixes* per-worker DB variable overrides (`unicorn_worker_db_variables_*`) which were never called under Pitchfork. - `bin/ember-cli`: `--unicorn` flag renamed to `--server` (`-u` kept). - `lib/demon/sidekiq.rb`: removed Unicorn-specific USR1/USR2 signal handlers and `reopen_logs` (called `Unicorn::Util.reopen_logs`), which were already dead code under Pitchfork. Intentionally kept unchanged: - `config/unicorn_launcher` (used by Docker images, separate effort) - `docker_manager` plugin (separate repo) - `UNICORN_*` env vars (renaming deferred) - Rack < 3 constraint (separate PR)
115 lines
4 KiB
Ruby
115 lines
4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
Discourse::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 on
|
|
# every request. 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
|
|
config.file_watcher = ActiveSupport::EventedFileUpdateChecker
|
|
|
|
config.eager_load = ENV["DISCOURSE_ZEITWERK_EAGER_LOAD"] == "1"
|
|
|
|
# Use the schema_cache.yml file generated during db:migrate (via db:schema:cache:dump)
|
|
config.active_record.use_schema_cache_dump = true
|
|
|
|
# Show full error reports and disable caching
|
|
config.consider_all_requests_local = true
|
|
config.action_controller.perform_caching = false
|
|
|
|
config.action_controller.asset_host = GlobalSetting.cdn_url
|
|
|
|
# Print deprecation notices to the Rails logger
|
|
config.active_support.deprecation = :log
|
|
|
|
# Do not compress assets
|
|
config.assets.compress = false
|
|
|
|
# Don't Digest assets, makes debugging uglier
|
|
config.assets.digest = false
|
|
|
|
config.assets.debug = false
|
|
|
|
config.public_file_server.headers = { "Access-Control-Allow-Origin" => "*" }
|
|
|
|
# Raise an error on page load if there are pending migrations
|
|
config.active_record.migration_error = :page_load
|
|
config.watchable_dirs["lib"] = [:rb]
|
|
|
|
config.action_mailer.smtp_settings =
|
|
if GlobalSetting.try(:use_smtp_environment_in_development)
|
|
GlobalSetting.smtp_settings ||
|
|
{ address: "localhost", port: ENV["DISCOURSE_LOCAL_EMAIL_PORT"] || 1025 }
|
|
else
|
|
# we recommend you use mailpit: https://github.com/axllent/mailpit/
|
|
{ address: "localhost", port: ENV["DISCOURSE_LOCAL_EMAIL_PORT"] || 1025 }
|
|
end
|
|
|
|
config.action_mailer.raise_delivery_errors = true
|
|
|
|
config.log_level = ENV["DISCOURSE_DEV_LOG_LEVEL"] if ENV["DISCOURSE_DEV_LOG_LEVEL"]
|
|
|
|
config.active_record.logger = nil if ENV["RAILS_DISABLE_ACTIVERECORD_LOGS"] == "1" ||
|
|
ENV["ENABLE_LOGSTASH_LOGGER"] == "1"
|
|
config.active_record.verbose_query_logs = true if ENV["RAILS_VERBOSE_QUERY_LOGS"] == "1"
|
|
|
|
if defined?(BetterErrors)
|
|
BetterErrors::Middleware.allow_ip! ENV["TRUSTED_IP"] if ENV["TRUSTED_IP"]
|
|
|
|
if defined?(Pitchfork) && ENV["UNICORN_WORKERS"].to_i != 1
|
|
# BetterErrors doesn't work with multiple workers. Disable it to avoid confusion
|
|
Rails.configuration.middleware.delete BetterErrors::Middleware
|
|
end
|
|
end
|
|
|
|
config.load_mini_profiler = true if !ENV["DISABLE_MINI_PROFILER"]
|
|
|
|
if hosts = ENV["DISCOURSE_DEV_HOSTS"]
|
|
Discourse.deprecate("DISCOURSE_DEV_HOSTS is deprecated. Use RAILS_DEVELOPMENT_HOSTS instead.")
|
|
config.hosts.concat(hosts.split(","))
|
|
end
|
|
|
|
require "middleware/missing_avatars"
|
|
config.middleware.insert 1, Middleware::MissingAvatars
|
|
|
|
config.enable_anon_caching = false
|
|
require "rbtrace" if RUBY_ENGINE == "ruby"
|
|
|
|
if emails = GlobalSetting.developer_emails
|
|
config.developer_emails = emails.split(",").map(&:downcase).map(&:strip)
|
|
end
|
|
|
|
if ENV["DISCOURSE_SKIP_CSS_WATCHER"] != "1" && (defined?(Rails::Server) || defined?(Pitchfork))
|
|
require "stylesheet/watcher"
|
|
STDERR.puts "Starting CSS change watcher"
|
|
@watcher = Stylesheet::Watcher.watch
|
|
end
|
|
|
|
config.after_initialize do
|
|
config.colorize_logging = true if ENV["RAILS_COLORIZE_LOGGING"] == "1"
|
|
|
|
if ENV["RAILS_VERBOSE_QUERY_LOGS"] == "1"
|
|
ActiveRecord::LogSubscriber.backtrace_cleaner.add_silencer do |line|
|
|
line =~ %r{lib/freedom_patches}
|
|
end
|
|
end
|
|
|
|
if ENV["BULLET"]
|
|
Bullet.enable = true
|
|
Bullet.rails_logger = true
|
|
end
|
|
end
|
|
|
|
config.hosts << /\A(([a-z0-9-]+)\.)*localhost(\:\d+)?\Z/
|
|
|
|
config.generators.after_generate do |files|
|
|
parsable_files = files.filter { |file| file.end_with?(".rb") }
|
|
unless parsable_files.empty?
|
|
system("bundle exec rubocop -A --fail-level=E #{parsable_files.shelljoin}", exception: true)
|
|
end
|
|
end
|
|
|
|
# This is a NGINX specific header
|
|
config.action_dispatch.x_sendfile_header = nil
|
|
end
|