mirror of https://github.com/docusealco/docuseal
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.6 KiB
61 lines
1.6 KiB
# frozen_string_literal: true
|
|
|
|
module Docuseal
|
|
PRODUCT_URL = 'https://www.docuseal.co'
|
|
NEWSLETTER_URL = "#{PRODUCT_URL}/newsletters".freeze
|
|
PRODUCT_NAME = 'DocuSeal'
|
|
DEFAULT_APP_URL = 'http://localhost:3000'
|
|
GITHUB_URL = 'https://github.com/docusealco/docuseal'
|
|
DISCORD_URL = 'https://discord.gg/qygYCDGck9'
|
|
TWITTER_URL = 'https://twitter.com/docusealco'
|
|
TWITTER_HANDLE = '@docusealco'
|
|
SUPPORT_EMAIL = 'support@docuseal.co'
|
|
HOST = ENV.fetch('HOST', 'localhost')
|
|
CONSOLE_URL = if Rails.env.development?
|
|
'http://console.localhost.io:3001'
|
|
else
|
|
"https://console.#{HOST}"
|
|
end
|
|
CDN_URL = if Rails.env.development?
|
|
'http://localhost:3000'
|
|
else
|
|
"https://cdn.#{HOST}"
|
|
end
|
|
|
|
CERTS = JSON.parse(ENV.fetch('CERTS', '{}'))
|
|
|
|
DEFAULT_URL_OPTIONS = {
|
|
host: ENV.fetch('HOST', 'localhost'),
|
|
protocol: ENV['FORCE_SSL'] == 'true' ? 'https' : 'http'
|
|
}.freeze
|
|
|
|
module_function
|
|
|
|
def multitenant?
|
|
ENV['MULTITENANT'] == 'true'
|
|
end
|
|
|
|
def demo?
|
|
ENV['DEMO'] == 'true'
|
|
end
|
|
|
|
def active_storage_public?
|
|
ENV['ACTIVE_STORAGE_PUBLIC'] == 'true'
|
|
end
|
|
|
|
def default_url_options
|
|
return DEFAULT_URL_OPTIONS if multitenant?
|
|
|
|
@default_url_options ||= begin
|
|
value = EncryptedConfig.find_by(key: EncryptedConfig::APP_URL_KEY)&.value
|
|
value ||= DEFAULT_APP_URL
|
|
url = Addressable::URI.parse(value)
|
|
{ host: url.host, port: url.port, protocol: url.scheme }
|
|
end
|
|
end
|
|
|
|
def refresh_default_url_options!
|
|
@default_url_options = nil
|
|
end
|
|
end
|