215 lines
5.0 KiB
Ruby
215 lines
5.0 KiB
Ruby
# RailsSettings Model
|
|
class Setting < RailsSettings::Base
|
|
cache_prefix { "v1" }
|
|
|
|
field :primary_domain, type: :string,
|
|
default: ENV["PRIMARY_DOMAIN"].presence
|
|
|
|
field :accounts_domain, type: :string,
|
|
default: ENV["AKKOUNTS_DOMAIN"].presence
|
|
|
|
#
|
|
# Internal services
|
|
#
|
|
|
|
field :redis_url, type: :string,
|
|
default: ENV["REDIS_URL"] || "redis://localhost:6379/0"
|
|
|
|
field :s3_enabled, type: :boolean,
|
|
default: ENV["S3_ENABLED"] && ENV["S3_ENABLED"].to_s != "false"
|
|
|
|
#
|
|
# Registrations
|
|
#
|
|
|
|
field :reserved_usernames, type: :array, default: %w[
|
|
account accounts donations mail webmaster support
|
|
]
|
|
|
|
#
|
|
# XMPP
|
|
#
|
|
|
|
field :xmpp_default_rooms, type: :array, default: []
|
|
field :xmpp_autojoin_default_rooms, type: :boolean, default: false
|
|
field :xmpp_notifications_from_address, type: :string, default: primary_domain
|
|
|
|
#
|
|
# Sentry
|
|
#
|
|
|
|
field :sentry_enabled, type: :boolean, readonly: true,
|
|
default: ENV["SENTRY_DSN"].present?
|
|
|
|
#
|
|
# BTCPay Server
|
|
#
|
|
|
|
field :btcpay_api_url, type: :string,
|
|
default: ENV["BTCPAY_API_URL"].presence
|
|
|
|
field :btcpay_enabled, type: :boolean,
|
|
default: ENV["BTCPAY_API_URL"].present?
|
|
|
|
field :btcpay_public_url, type: :string,
|
|
default: ENV["BTCPAY_PUBLIC_URL"].presence
|
|
|
|
field :btcpay_store_id, type: :string,
|
|
default: ENV["BTCPAY_STORE_ID"].presence
|
|
|
|
field :btcpay_auth_token, type: :string,
|
|
default: ENV["BTCPAY_AUTH_TOKEN"].presence
|
|
|
|
field :btcpay_publish_wallet_balances, type: :boolean, default: true
|
|
|
|
#
|
|
# Discourse
|
|
#
|
|
|
|
field :discourse_public_url, type: :string,
|
|
default: ENV["DISCOURSE_PUBLIC_URL"].presence
|
|
|
|
field :discourse_enabled, type: :boolean,
|
|
default: ENV["DISCOURSE_PUBLIC_URL"].present?
|
|
|
|
field :discourse_connect_secret, type: :string,
|
|
default: ENV["DISCOURSE_CONNECT_SECRET"].presence
|
|
|
|
#
|
|
# Drone CI
|
|
#
|
|
|
|
field :droneci_public_url, type: :string,
|
|
default: ENV["DRONECI_PUBLIC_URL"].presence
|
|
|
|
field :droneci_enabled, type: :boolean,
|
|
default: ENV["DRONECI_PUBLIC_URL"].present?
|
|
|
|
#
|
|
# ejabberd
|
|
#
|
|
|
|
field :ejabberd_enabled, type: :boolean,
|
|
default: ENV["EJABBERD_API_URL"].present?
|
|
|
|
field :ejabberd_api_url, type: :string,
|
|
default: ENV["EJABBERD_API_URL"].presence
|
|
|
|
field :ejabberd_admin_url, type: :string,
|
|
default: ENV["EJABBERD_ADMIN_URL"].presence
|
|
|
|
field :ejabberd_buddy_roster, type: :string,
|
|
default: "Buddies"
|
|
|
|
#
|
|
# Gitea
|
|
#
|
|
|
|
field :gitea_public_url, type: :string,
|
|
default: ENV["GITEA_PUBLIC_URL"].presence
|
|
|
|
field :gitea_enabled, type: :boolean,
|
|
default: ENV["GITEA_PUBLIC_URL"].present?
|
|
|
|
#
|
|
# Lightning Network
|
|
#
|
|
|
|
field :lndhub_api_url, type: :string,
|
|
default: ENV["LNDHUB_API_URL"].presence
|
|
|
|
field :lndhub_enabled, type: :boolean,
|
|
default: ENV["LNDHUB_API_URL"].present?
|
|
|
|
field :lndhub_admin_token, type: :string,
|
|
default: ENV["LNDHUB_ADMIN_TOKEN"].presence
|
|
|
|
field :lndhub_admin_enabled, type: :boolean,
|
|
default: ENV["LNDHUB_ADMIN_UI"] || false
|
|
|
|
field :lndhub_public_key, type: :string,
|
|
default: (ENV["LNDHUB_PUBLIC_KEY"] || "")
|
|
|
|
field :lndhub_keysend_enabled, type: :boolean,
|
|
default: -> { self.lndhub_public_key.present? }
|
|
|
|
#
|
|
# Mastodon
|
|
#
|
|
|
|
field :mastodon_public_url, type: :string,
|
|
default: ENV["MASTODON_PUBLIC_URL"].presence
|
|
|
|
field :mastodon_enabled, type: :boolean,
|
|
default: ENV["MASTODON_PUBLIC_URL"].present?
|
|
|
|
field :mastodon_address_domain, type: :string,
|
|
default: ENV["MASTODON_ADDRESS_DOMAIN"].presence || self.primary_domain
|
|
|
|
#
|
|
# MediaWiki
|
|
#
|
|
|
|
field :mediawiki_public_url, type: :string,
|
|
default: ENV["MEDIAWIKI_PUBLIC_URL"].presence
|
|
|
|
field :mediawiki_enabled, type: :boolean,
|
|
default: ENV["MEDIAWIKI_PUBLIC_URL"].present?
|
|
|
|
#
|
|
# Nostr
|
|
#
|
|
|
|
field :nostr_enabled, type: :boolean, default: false
|
|
|
|
#
|
|
# OpenCollective
|
|
#
|
|
|
|
field :opencollective_enabled, type: :boolean, default: true
|
|
|
|
#
|
|
# RemoteStorage
|
|
#
|
|
|
|
field :remotestorage_enabled, type: :boolean,
|
|
default: ENV["RS_STORAGE_URL"].present?
|
|
|
|
field :rs_storage_url, type: :string,
|
|
default: ENV["RS_STORAGE_URL"].presence
|
|
|
|
field :rs_redis_url, type: :string,
|
|
default: ENV["RS_REDIS_URL"] || "redis://localhost:6379/1"
|
|
|
|
|
|
#
|
|
# E-Mail Service
|
|
#
|
|
|
|
field :email_enabled, type: :boolean,
|
|
default: ENV["EMAIL_SMTP_HOST"].present?
|
|
|
|
# field :email_smtp_host, type: :string,
|
|
# default: ENV["EMAIL_SMTP_HOST"].presence
|
|
#
|
|
# field :email_smtp_port, type: :string,
|
|
# default: ENV["EMAIL_SMTP_PORT"].presence || 587
|
|
#
|
|
# field :email_smtp_enable_starttls, type: :string,
|
|
# default: ENV["EMAIL_SMTP_PORT"].presence || true
|
|
#
|
|
# field :email_auth_method, type: :string,
|
|
# default: ENV["EMAIL_AUTH_METHOD"].presence || "plain"
|
|
#
|
|
# field :email_imap_host, type: :string,
|
|
# default: ENV["EMAIL_IMAP_HOST"].presence
|
|
#
|
|
# field :email_imap_port, type: :string,
|
|
# default: ENV["EMAIL_IMAP_PORT"].presence || 993
|
|
|
|
def self.default_services
|
|
# TODO Make configurable from respective service settings page
|
|
%w[ discourse gitea mediawiki xmpp ]
|
|
end
|
|
end
|