123456789101112131415161718192021222324252627282930313233343536373839 |
- # Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
- # If REDIS_URL is not set, fall back to default port / localhost, to ease configuration
- # for simple installations.
- redis_url = ENV['REDIS_URL'].presence || 'redis://localhost:6379'
- Rails.application.config.action_cable.cable = {
- adapter: :redis,
- driver: :hiredis,
- url: redis_url,
- channel_prefix: "zammad_#{Rails.env}",
- }
- begin
- Redis.new(driver: :hiredis, url: redis_url).ping
- Rails.logger.info { "ActionCable is using the redis instance at #{redis_url}." }
- rescue Redis::CannotConnectError => e
- warn "There was an error trying to connect to Redis via #{redis_url}."
- if ENV['REDIS_URL'].present?
- warn 'Please make sure Redis is available.'
- else
- warn 'Please provide a Redis instance at localhost:6379 or set REDIS_URL to point to a different location.'
- end
- warn e.inspect
- Zammad::SafeMode.continue_or_exit!
- end
- Rails.application.reloader.to_prepare do
- begin
- Rails.application.config.action_cable.allow_same_origin_as_host = true
- # Support for configurations where the HTTP_HOST header is not correctly forwarded:
- request_origins = [%r{https?://localhost:\d+}]
- request_origins << "#{Setting.get('http_type')}://#{Setting.get('fqdn')}"
- Rails.application.config.action_cable.allowed_request_origins = request_origins
- Rails.application.config.action_cable.disable_request_forgery_protection = true if !Rails.env.production?
- Rails.logger.info { "ActionCable is configured to accept requests from #{request_origins.join(', ')}." }
- rescue ActiveRecord::ConnectionNotEstablished, ActiveRecord::NoDatabaseError, ActiveRecord::StatementInvalid
- Rails.logger.warn { "Database doesn't exist. Skipping allowed_request_origins configuration." }
- end
- end
|