2013-02-05 13:16:51 -06:00
|
|
|
require File.expand_path('../boot', __FILE__)
|
|
|
|
require 'rails/all'
|
2013-02-18 00:34:43 -06:00
|
|
|
require 'redis-store' # HACK
|
2013-02-05 13:16:51 -06:00
|
|
|
|
|
|
|
# Plugin related stuff
|
|
|
|
require './lib/discourse_plugin_registry'
|
|
|
|
|
|
|
|
if defined?(Bundler)
|
|
|
|
# If you precompile assets before deploying to production, use this line
|
|
|
|
Bundler.require(*Rails.groups(:assets => %w(development test)))
|
|
|
|
# If you want your assets lazily compiled in production, use this line
|
|
|
|
# Bundler.require(:default, :assets, Rails.env)
|
|
|
|
end
|
|
|
|
|
|
|
|
module Discourse
|
|
|
|
class Application < Rails::Application
|
|
|
|
# Settings in config/environments/* take precedence over those specified here.
|
|
|
|
# Application configuration should go into files in config/initializers
|
|
|
|
# -- all .rb files in that directory are automatically loaded.
|
|
|
|
|
|
|
|
require 'discourse'
|
|
|
|
|
|
|
|
# Custom directories with classes and modules you want to be autoloadable.
|
|
|
|
config.autoload_paths += %W(#{config.root}/app/serializers)
|
|
|
|
|
|
|
|
# Only load the plugins named here, in the order given (default is alphabetical).
|
|
|
|
# :all can be used as a placeholder for all plugins not explicitly named.
|
|
|
|
# config.plugins = [ :exception_notification, :ssl_requirement, :all ]
|
|
|
|
|
|
|
|
config.assets.paths += %W(#{config.root}/config/locales)
|
|
|
|
|
2013-02-19 22:37:42 -06:00
|
|
|
config.assets.precompile += [
|
2013-02-25 10:42:20 -06:00
|
|
|
'admin.js', 'admin.css', 'shiny/shiny.css', 'preload_store.js',
|
2013-02-26 09:47:23 -06:00
|
|
|
'jquery.js', 'defer/html-sanitizer-bundle.js'
|
2013-02-19 22:37:42 -06:00
|
|
|
]
|
2013-02-05 13:16:51 -06:00
|
|
|
|
2013-02-28 13:31:39 -06:00
|
|
|
# Precompile all available locales
|
|
|
|
Dir.glob("app/assets/javascripts/locales/*.js.erb").each do |file|
|
2013-02-28 14:06:04 -06:00
|
|
|
config.assets.precompile << "locales/#{file.match(/([a-z]+\.js)\.erb$/)[1]}"
|
2013-02-28 13:31:39 -06:00
|
|
|
end
|
|
|
|
|
2013-02-05 13:16:51 -06:00
|
|
|
# Activate observers that should always be running.
|
|
|
|
config.active_record.observers = [
|
|
|
|
:user_email_observer,
|
2013-02-25 10:42:20 -06:00
|
|
|
:user_action_observer,
|
|
|
|
:message_bus_observer,
|
2013-02-05 13:16:51 -06:00
|
|
|
:post_alert_observer,
|
|
|
|
:search_observer
|
|
|
|
]
|
|
|
|
|
|
|
|
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
|
|
|
|
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
|
|
|
|
config.time_zone = 'Eastern Time (US & Canada)'
|
|
|
|
|
|
|
|
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
|
|
|
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
|
|
|
# config.i18n.default_locale = :de
|
|
|
|
|
|
|
|
# Configure the default encoding used in templates for Ruby 1.9.
|
2013-02-18 00:34:43 -06:00
|
|
|
config.encoding = 'utf-8'
|
2013-02-05 13:16:51 -06:00
|
|
|
|
|
|
|
# Configure sensitive parameters which will be filtered from the log file.
|
|
|
|
config.filter_parameters += [:password]
|
|
|
|
|
|
|
|
# Enable the asset pipeline
|
|
|
|
config.assets.enabled = true
|
|
|
|
|
|
|
|
# Version of your assets, change this if you want to expire all your assets
|
|
|
|
config.assets.version = '1.2.4'
|
|
|
|
|
|
|
|
# We need to be able to spin threads
|
|
|
|
config.active_record.thread_safe!
|
|
|
|
|
2013-02-25 10:42:20 -06:00
|
|
|
# see: http://stackoverflow.com/questions/11894180/how-does-one-correctly-add-custom-sql-dml-in-migrations/11894420#11894420
|
2013-02-05 13:16:51 -06:00
|
|
|
config.active_record.schema_format = :sql
|
|
|
|
|
2013-02-25 10:42:20 -06:00
|
|
|
# per https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet
|
2013-02-05 13:16:51 -06:00
|
|
|
config.pbkdf2_iterations = 64000
|
|
|
|
|
|
|
|
# dumping rack lock cause the message bus does not work with it (throw :async, it catches Exception)
|
|
|
|
# see: https://github.com/sporkrb/spork/issues/66
|
|
|
|
# rake assets:precompile also fails
|
|
|
|
config.threadsafe! unless $PROGRAM_NAME =~ /spork|rake/
|
|
|
|
|
|
|
|
# route all exceptions via our router
|
|
|
|
config.exceptions_app = self.routes
|
|
|
|
|
|
|
|
# Our templates shouldn't start with 'discourse/templates'
|
|
|
|
config.handlebars.templates_root = 'discourse/templates'
|
|
|
|
|
|
|
|
# Use redis for our cache
|
|
|
|
redis_config = YAML::load(File.open("#{Rails.root}/config/redis.yml"))[Rails.env]
|
|
|
|
redis_store = ActiveSupport::Cache::RedisStore.new "redis://#{redis_config['host']}:#{redis_config['port']}/#{redis_config['cache_db']}"
|
|
|
|
redis_store.options[:namespace] = -> { DiscourseRedis.namespace }
|
|
|
|
config.cache_store = redis_store
|
|
|
|
|
|
|
|
# Test with rack::cache disabled. Nginx does this for us
|
|
|
|
config.action_dispatch.rack_cache = nil
|
|
|
|
|
|
|
|
# So open id logs somewhere sane
|
2013-02-25 10:42:20 -06:00
|
|
|
config.after_initialize do
|
2013-02-05 13:16:51 -06:00
|
|
|
OpenID::Util.logger = Rails.logger
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|