about summary refs log tree commit diff
path: root/config/initializers/1_hosts.rb
diff options
context:
space:
mode:
authorThibaut Girka <thib@sitedethib.com>2018-08-23 13:08:39 +0200
committerThibG <thib@sitedethib.com>2018-08-23 22:58:40 +0200
commit48db3b3c99a3ea240f94eda9fccc4ed84f37538f (patch)
tree792b7d25cfc8b8d09ea12a59fafc3b715ec38b48 /config/initializers/1_hosts.rb
parent478f70a0e6ac06e0eae8829fe076b56868414881 (diff)
Tighten CSP while allowing CDN hosts
Diffstat (limited to 'config/initializers/1_hosts.rb')
-rw-r--r--config/initializers/1_hosts.rb29
1 files changed, 29 insertions, 0 deletions
diff --git a/config/initializers/1_hosts.rb b/config/initializers/1_hosts.rb
new file mode 100644
index 000000000..5773b7290
--- /dev/null
+++ b/config/initializers/1_hosts.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+port     = ENV.fetch('PORT') { 3000 }
+host     = ENV.fetch('LOCAL_DOMAIN') { "localhost:#{port}" }
+web_host = ENV.fetch('WEB_DOMAIN') { host }
+
+alternate_domains = ENV.fetch('ALTERNATE_DOMAINS') { '' }
+
+Rails.application.configure do
+  https    = Rails.env.production? || ENV['LOCAL_HTTPS'] == 'true'
+
+  config.x.local_domain = host
+  config.x.web_domain   = web_host
+  config.x.use_https    = https
+  config.x.use_s3       = ENV['S3_ENABLED'] == 'true'
+  config.x.use_swift    = ENV['SWIFT_ENABLED'] == 'true'
+
+  config.x.alternate_domains = alternate_domains.split(/\s*,\s*/)
+
+  config.action_mailer.default_url_options = { host: web_host, protocol: https ? 'https://' : 'http://', trailing_slash: false }
+
+  config.x.streaming_api_base_url = ENV.fetch('STREAMING_API_BASE_URL') do
+    if Rails.env.production?
+      "ws#{https ? 's' : ''}://#{web_host}"
+    else
+      "ws://#{ENV['REMOTE_DEV'] == 'true' ? host.split(':').first : 'localhost'}:4000"
+    end
+  end
+end