discourse/config/site_settings.yml
David Taylor c10941bbde REFACTOR: Proxy letter avatars in rails instead of nginx
Co-authored-by: Sam Saffron <sam.saffron@gmail.com>
Co-authored-by: David Taylor <david@taylorhq.com>

This gives more control over the request. In particular we can easily
lookup DNS dynamically, instead of only upon NGINX startup.
Previously, NGINX was looking up IP for the letter avatar service and
caching the CDN IP address, this caused issues if CDN changed IP, in
which letter avatars would be broken till a container restarted.

NGINX config has been updated to add caching. This change will require
a container rebuild.

The proxy will now function in development environments, so the patch
for `letter_avatar_proxy` has been removed.
2019-02-18 08:51:58 +11:00

1934 lines
42 KiB
YAML

# Available options:
#
# default - The default value of the setting.
# client - Set to true if the javascript should have access to this setting's value.
# refresh - Set to true if clients should refresh when the setting is changed.
# min - For a string setting, the minimum length. For an integer setting, the minimum value.
# max - For a string setting, the maximum length. For an integer setting, the maximum value.
# regex - A regex that the value must match.
# validator - The name of the class that will be use to validate the value of the setting.
# allow_any - For choice settings allow items not specified in the choice list (default true)
# secret - Set to true if input type should be password and value needs to be scrubbed from logs (default false).
# enum - The setting has a fixed set of allowed values, and only one can be chosen.
# Set to the class name that defines the set.
# shadowed_by_global - "Shadow" a site setting with a GlobalSetting. If the GlobalSetting
# exists it will be used instead of the setting and the setting will be hidden.
# Useful for things like API keys on multisite.
# locale_default - A hash which overrides according to `SiteSetting.default_locale`.
# The key should be as the same as possible value of default_locale.
#
#
# type: email - Must be a valid email address.
# type: username - Must match the username of an existing user.
# type: list - A list of values, chosen from a set of valid values defined in the choices option.
# type: enum - A single value, chosen from a set of valid values in the choices option.
#
# A type:list setting with the word 'colors' in its name will make color values have a bold line of the corresponding color
#
required:
title:
client: true
default: "Discourse"
site_description:
default: ""
short_site_description:
default: ""
contact_email:
client: true
default: ""
type: email
contact_url:
client: true
default: ""
notification_email:
default: "noreply@unconfigured.discourse.org"
type: email
shadowed_by_global: true
site_contact_username:
default: ""
type: username
logo:
default: ""
client: true
type: upload
logo_url:
hidden: true
default: "/images/d-logo-sketch.png"
logo_small:
default: ""
client: true
type: upload
logo_small_url:
hidden: true
default: "/images/d-logo-sketch-small.png"
digest_logo:
default: ""
client: true
type: upload
digest_logo_url:
hidden: true
default: ""
mobile_logo:
default: ""
client: true
type: upload
mobile_logo_url:
hidden: true
default: ""
large_icon:
default: ""
client: true
type: upload
large_icon_url:
hidden: true
default: ""
favicon:
default: ""
client: true
type: upload
favicon_url:
hidden: true
default: "/images/default-favicon.ico"
apple_touch_icon:
default: ""
client: true
type: upload
apple_touch_icon_url:
hidden: true
default: "/images/default-apple-touch-icon.png"
opengraph_image:
default: ""
type: upload
default_opengraph_image_url:
hidden: true
default: ""
twitter_summary_large_image:
default: ""
type: upload
twitter_summary_large_image_url:
hidden: true
default: ""
exclude_rel_nofollow_domains:
default: ""
type: list
company_name:
default: ""
governing_law:
default: ""
city_for_disputes:
default: ""
basic:
allow_user_locale:
client: true
default: false
set_locale_from_accept_language_header:
default: false
validator: "AllowUserLocaleEnabledValidator"
support_mixed_text_direction:
client: true
default: false
categories_topics:
default: 20
min: 5
max: 2000
suggested_topics:
client: true
default: 5
max: 2000
limit_suggested_to_category:
default: false
suggested_topics_max_days_old:
default: 365
min: 7
max: 10000
ga_universal_tracking_code:
client: true
default: ""
regex: "^UA-\\d+-\\d+$"
ga_universal_domain_name:
client: true
default: "auto"
ga_universal_auto_link_domains:
default: ""
type: list
gtm_container_id:
client: true
default: ""
regex: "^GTM-"
top_menu:
client: true
refresh: true
type: list
list_type: compact
default: "latest|new|unread|top|categories"
regex: "latest"
regex_error: "site_settings.errors.must_include_latest"
validator: RegexPresenceValidator
allow_any: false
choices:
- latest
- new
- unread
- top
- categories
- read
- posted
- bookmarks
post_menu:
client: true
type: list
default: "like-count|like|share|flag|edit|bookmark|delete|admin|reply"
allow_any: false
choices:
- like-count
- like
- edit
- flag
- delete
- share
- bookmark
- admin
- reply
post_menu_hidden_items:
client: true
type: list
default: "flag|bookmark|edit|delete|admin"
allow_any: false
choices:
- like
- edit
- flag
- delete
- share
- bookmark
- admin
- reply
share_links:
client: true
type: list
default: "twitter|facebook|email"
allow_any: false
choices:
- twitter
- facebook
- email
desktop_category_page_style:
client: true
enum: "CategoryPageStyle"
default: "categories_and_latest_topics"
category_colors:
client: true
type: list
list_type: compact
default: "BF1E2E|F1592A|F7941D|9EB83B|3AB54A|12A89D|25AAE2|0E76BD|652D90|92278F|ED207B|8C6238|231F20|808281|B3B5B4|E45735"
category_style:
client: true
default: "bullet"
type: enum
choices:
- bar
- box
- bullet
- none
enable_mobile_theme:
client: true
default: true
hidden: true
default_theme_id:
default: -1
hidden: true
relative_date_duration:
client: true
default: 30
topics_per_period_in_top_summary:
default: 20
min: 1
topics_per_period_in_top_page:
default: 50
min: 1
top_page_default_timeframe:
default: "yearly"
type: enum
choices:
- all
- yearly
- quarterly
- monthly
- weekly
- daily
fixed_category_positions:
client: true
default: false
fixed_category_positions_on_create:
client: true
default: false
enable_badges:
client: true
default: true
enable_badge_sql:
client: true
default: false
hidden: true
enable_whispers:
client: true
default: false
push_notifications_prompt:
default: true
client: true
push_notifications_icon:
default: ""
type: upload
push_notifications_icon_url:
hidden: true
default: ""
short_title:
default: ""
max: 12
vapid_public_key_bytes:
default: ""
client: true
hidden: true
vapid_public_key:
default: ""
hidden: true
vapid_private_key:
default: ""
hidden: true
login:
invite_only:
refresh: true
client: true
default: false
login_required:
refresh: true
client: true
default: false
must_approve_users:
client: true
default: false
enable_local_logins:
client: true
default: true
enable_local_logins_via_email:
client: true
default: true
validator: "EnableLocalLoginsViaEmailValidator"
allow_new_registrations:
client: true
default: true
enable_signup_cta:
client: true
default: true
enable_google_oauth2_logins:
default: false
google_oauth2_client_id: ""
google_oauth2_client_secret:
default: ""
secret: true
google_oauth2_prompt:
default: ""
type: list
choices:
- ""
- "none"
- "consent"
- "select_account"
google_oauth2_hd:
default: ""
enable_yahoo_logins:
default: false
enable_twitter_logins:
default: false
twitter_consumer_key:
default: ""
regex: "^[\\w+-]+$"
twitter_consumer_secret:
default: ""
regex: "^[\\w+-]+$"
secret: true
enable_instagram_logins:
default: false
instagram_consumer_key:
default: ""
regex: "^[a-z0-9]+$"
instagram_consumer_secret:
default: ""
regex: "^[a-z0-9]+$"
secret: true
enable_facebook_logins:
default: false
facebook_app_id:
default: ""
regex: "^\\d+$"
facebook_app_secret:
default: ""
regex: "^[a-f0-9]+$"
secret: true
enable_github_logins:
default: false
github_client_id:
default: ""
regex: "^[a-f0-9]+$"
github_client_secret:
default: ""
regex: "^[a-f0-9]+$"
secret: true
enable_sso:
client: true
default: false
validator: "EnableSsoValidator"
sso_allows_all_return_paths: false
enable_sso_provider: false
verbose_sso_logging: false
verbose_auth_token_logging:
hidden: true
default: true
max_suspicious_distance_km:
hidden: true
default: 500
sso_url:
default: ""
regex: '^https?:\/\/.+[^\/]$'
sso_secret:
default: ""
secret: true
sso_provider_secrets:
default: ""
type: list
list_type: secret
secret: true
placeholder:
key: "sso_provider.key_placeholder"
value: "sso_provider.value_placeholder"
sso_overrides_groups: false
sso_overrides_bio: false
sso_overrides_email:
default: false
validator: "SsoOverridesEmailValidator"
sso_overrides_username: false
sso_overrides_name: false
sso_overrides_avatar:
default: false
client: true
sso_overrides_profile_background: false
sso_overrides_card_background: false
sso_not_approved_url: ""
email_domains_blacklist:
default: "mailinator.com"
type: list
email_domains_whitelist:
default: ""
type: list
hide_email_address_taken: false
log_out_strict: true
pending_users_reminder_delay:
min: -1
default: 8
maximum_session_age:
default: 1440
min: 1
max: 175200
users:
min_username_length:
client: true
default: 3
min: 1
max: 60
validator: "MinUsernameLengthValidator"
max_username_length:
client: true
default: 20
min: 8
max: 60
validator: "MaxUsernameLengthValidator"
reserved_usernames:
type: list
list_type: compact
default: "admin|moderator|administrator|mod|sys|system|community|info|you|name|username|user|nickname|discourse|discourseorg|discourseforum|support|hp|account-created|password-reset|admin-login|confirm-admin|account-created|activate-account|confirm-email-token|authorize-email"
min_password_length:
client: true
default: 10
min: 8
max: 500
min_admin_password_length:
client: true
default: 15
min: 8
max: 500
password_unique_characters:
default: 6
min: 1
max: 10
block_common_passwords: true
username_change_period: 3
email_editable: true
logout_redirect:
client: true
default: ""
full_name_required:
client: true
default: false
enable_names:
client: true
default: true
invite_expiry_days:
default: 30
invites_per_page:
client: true
default: 40
hidden: true
delete_user_max_post_age:
client: true
default: 60
delete_all_posts_max:
client: true
default: 15
min: 1
redirect_users_to_top_page: true
show_email_on_profile:
client: true
default: false
prioritize_username_in_ux:
client: true
default: true
email_token_valid_hours:
default: 48
min: 1
purge_unactivated_users_grace_period_days:
default: 14
public_user_custom_fields:
type: list
default: ""
staff_user_custom_fields:
type: list
default: ""
enable_user_directory:
client: true
default: true
allow_anonymous_posting:
default: false
client: true
anonymous_posting_min_trust_level:
default: 1
enum: "TrustLevelSetting"
client: true
anonymous_account_duration_minutes:
default: 10080
max: 99000
hide_user_profiles_from_public:
default: false
client: true
show_inactive_accounts:
default: false
user_website_domains_whitelist:
default: ""
type: list
hide_suspension_reasons:
default: false
client: true
log_personal_messages_views: false
groups:
enable_group_directory:
client: true
default: true
group_in_subject:
default: false
posting:
min_post_length:
client: true
min: 1
default: 20
locale_default:
ja: 8
zh_CN: 8
zh_TW: 8
min_first_post_length:
client: true
min: 1
default: 20
locale_default:
ja: 8
zh_CN: 8
zh_TW: 8
min_personal_message_post_length:
client: true
min: 1
default: 10
locale_default:
ja: 3
zh_CN: 3
zh_TW: 3
max_post_length:
client: true
default: 32000
max: 99000
topic_featured_link_enabled:
client: true
default: true
body_min_entropy:
default: 7
locale_default:
ja: 3
zh_CN: 3
zh_TW: 3
min_topic_title_length:
client: true
default: 15
min: 1
locale_default:
ja: 6
zh_CN: 6
zh_TW: 6
max_topic_title_length:
client: true
default: 255
min: 5
max: 255
title_min_entropy:
default: 10
locale_default:
ja: 3
zh_CN: 3
zh_TW: 3
allow_uppercase_posts:
default: false
locale_default:
ja: true
max_consecutive_replies:
default: 3
title_prettify:
default: true
locale_default:
ja: false
zh_CN: false
zh_TW: false
title_fancy_entities: true
min_personal_message_title_length:
client: true
default: 2
min: 1
max_emojis_in_title: 1
allow_uncategorized_topics:
client: true
default: true
refresh: true
allow_duplicate_topic_titles: false
min_title_similar_length:
client: true
default: 10
locale_default:
ja: 4
zh_CN: 4
zh_TW: 4
enable_personal_messages:
default: true
client: true
enable_system_message_replies:
default: true
enable_personal_email_messages:
hidden: true
default: false
client: true
validator: "EnablePrivateEmailMessagesValidator"
editing_grace_period: 300
editing_grace_period_max_diff: 100
editing_grace_period_max_diff_high_trust: 400
staff_edit_locks_post: false
shared_drafts_category:
type: category
default: ""
post_edit_time_limit:
default: 86400
max: 525600
edit_history_visible_to_public:
client: true
default: true
delete_removed_posts_after:
client: true
default: 24
traditional_markdown_linebreaks:
client: true
default: false
enable_markdown_typographer:
client: true
default: true
enable_markdown_linkify:
client: true
default: true
markdown_linkify_tlds:
client: true
type: list
default: "com|net|org|io|co|tv|ru|cn|us|uk|me|de|fr|fi|gov"
list_type: compact
enable_rich_text_paste:
client: true
default: true
suppress_reply_directly_below:
client: true
default: true
suppress_reply_directly_above:
client: true
default: true
suppress_reply_when_quoting:
default: true
remove_full_quote:
default: true
max_reply_history:
default: 1
client: true
post_undo_action_window_mins: 10
enable_mentions:
default: true
client: true
max_mentions_per_post: 10
max_users_notified_per_group_mention: 100
newuser_max_replies_per_topic: 3
newuser_max_mentions_per_post: 2
title_max_word_length: 30
whitelisted_link_domains:
default: ""
type: list
newuser_max_links: 2
newuser_max_images:
client: true
default: 1
newuser_max_attachments:
client: true
default: 0
post_excerpt_maxlength:
default: 300
locale_default:
ja: 120
zh_CN: 120
zh_TW: 120
show_pinned_excerpt_mobile:
client: true
default: true
show_pinned_excerpt_desktop:
client: true
default: true
display_name_on_posts:
client: true
default: false
show_time_gap_days:
default: 7
client: true
short_progress_text_threshold:
client: true
default: 10000
max: 99000
default_code_lang:
client: true
default: "auto"
warn_reviving_old_topic_age: 180
autohighlight_all_code:
client: true
default: false
highlighted_languages:
default: "apache|bash|cs|cpp|css|coffeescript|diff|xml|http|ini|json|java|javascript|makefile|markdown|nginx|objectivec|ruby|perl|php|python|sql|handlebars"
choices: "HighlightJs.languages"
type: list
client: true
list_type: compact
delete_old_hidden_posts: true
enable_emoji:
default: true
client: true
enable_emoji_shortcuts:
default: true
client: true
emoji_set:
default: "twitter"
client: true
enum: "EmojiSetSiteSetting"
emoji_autocomplete_min_chars:
client: true
default: 0
locale_default:
fr: 1
enable_inline_emoji_translation:
client: true
default: false
locale_default:
zh_CN: true
zh_TW: true
ja: true
ko: true
approve_post_count:
default: 0
approve_unless_trust_level:
default: 0
enum: "TrustLevelSetting"
approve_new_topics_unless_trust_level:
default: 0
enum: "TrustLevelSetting"
approve_unless_staged:
default: false
notify_about_queued_posts_after:
default: 24
auto_close_messages_post_count:
default: 500
shadowed_by_global: true
auto_close_topics_post_count:
default: 10000
shadowed_by_global: true
code_formatting_style:
client: true
type: enum
default: "4-spaces-indent"
choices:
- 4-spaces-indent
- code-fences
embed_truncate:
default: true
embed_support_markdown:
default: false
allowed_href_schemes:
client: true
default: ""
type: list
list_type: compact
max_allowed_message_recipients:
default: 30
min: 1
watched_words_regular_expressions:
client: true
default: false
enable_advanced_editor_preview_sync:
hidden: true
default: false
client: true
shadowed_by_global: true
email:
email_time_window_mins:
default: 10
client: true
personal_email_time_window_seconds: 20
email_posts_context: 5
digest_min_excerpt_length:
default: 100
locale_default:
ja: 50
zh_CN: 50
zh_TW: 50
digest_topics:
default: 5
min: 1
max: 20
digest_posts:
default: 5
min: 0
max: 20
digest_other_topics:
default: 5
min: 0
max: 20
suppress_digest_email_after_days:
default: 365
digest_suppress_categories:
type: category_list
default: ""
disable_digest_emails:
default: false
client: true
email_accent_bg_color: "#2F70AC"
email_accent_fg_color: "#FFFFFF"
email_link_color: "#006699"
show_topic_featured_link_in_digest: false
email_custom_headers: "Auto-Submitted: auto-generated"
email_subject: "[%{site_name}] %{optional_pm}%{optional_cat}%{topic_title}"
reply_by_email_enabled:
default: false
validator: "ReplyByEmailEnabledValidator"
reply_by_email_address:
default: ""
validator: "ReplyByEmailAddressValidator"
alternative_reply_by_email_addresses:
default: ""
validator: "AlternativeReplyByEmailAddressesValidator"
find_related_post_with_key:
default: true
manual_polling_enabled:
default: false
pop3_polling_enabled:
default: false
validator: "POP3PollingEnabledSettingValidator"
pop3_polling_ssl: true
pop3_polling_openssl_verify: true
pop3_polling_period_mins: 5
pop3_polling_host: ""
pop3_polling_port: 995
pop3_polling_username: ""
pop3_polling_password:
default: ""
secret: true
pop3_polling_delete_from_server: true
log_mail_processing_failures: false
incoming_email_prefer_html: true
email_in:
default: false
client: true
email_in_min_trust:
default: 2
enum: "TrustLevelSetting"
email_in_spam_header:
type: enum
default: "none"
choices:
- none
- X-Spam-Flag
- X-Spam-Status
email_prefix: ""
email_site_title: ""
disable_emails:
client: true
type: enum
default: "no"
choices:
- "no"
- "yes"
- "non-staff"
strip_images_from_short_emails: true
short_email_length: 2800
display_name_on_email_from:
default: true
unsubscribe_via_email:
default: true
unsubscribe_via_email_footer:
default: false
disallow_reply_by_email_after_days:
default: 90
shadowed_by_global: true
delete_email_logs_after_days:
default: 90
shadowed_by_global: true
max_emails_per_day_per_user: 100
enable_staged_users: true
maximum_staged_users_per_email: 10
auto_generated_whitelist:
default: ""
type: list
block_auto_generated_emails: true
ignore_by_title:
type: list
default: ""
mailgun_api_key:
default: ""
regex: '^(key-\h{32}|\h{32}-\h{8}-\h{8})$'
secret: true
bounce_score_threshold:
client: true
default: 4
min: 1
bounce_score_threshold_deactivate: 30
bounce_score_erode_on_send:
default: 0.1
hidden: true
soft_bounce_score:
default: 1
min: 1
hard_bounce_score:
default: 2
min: 2
reset_bounce_score_after_days:
default: 30
attachment_content_type_blacklist:
type: list
default: "pkcs7|x-vcard"
list_type: compact
attachment_filename_blacklist:
type: list
default: "smime.p7s|signature.asc|winmail.dat"
list_type: compact
enable_forwarded_emails: false
always_show_trimmed_content: false
private_email: false
files:
max_image_size_kb:
client: true
default: 4096
max: 102400
max_attachment_size_kb:
client: true
default: 4096
max: 1024000
max_image_megapixels:
default: 40
min: 5
max: 150
max_export_file_size_kb:
hidden: true
default: 50000
max: 1024000
theme_authorized_extensions:
default: "jpg|jpeg|png|woff|woff2|svg|eot|ttf|otf|gif"
type: list
list_type: compact
authorized_extensions:
client: true
default: "jpg|jpeg|png|gif"
refresh: true
type: list
list_type: compact
authorized_extensions_for_staff:
client: true
default: ""
refresh: true
type: list
list_type: compact
export_authorized_extensions:
hidden: true
default: "gz"
type: list
list_type: compact
responsive_post_image_sizes:
default: "1|1.5|2"
type: list
list_type: compact
crawl_images:
default: true
max_image_width:
client: true
default: 690
max_image_height:
client: true
default: 500
download_remote_images_to_local:
default: true
download_remote_images_threshold: 10
download_remote_images_max_days_old:
default: 30
min: 1
max: 10000
disabled_image_download_domains:
type: list
default: ""
create_thumbnails: true
clean_up_uploads: true
clean_orphan_uploads_grace_period_hours: 48
purge_deleted_uploads_grace_period_days:
default: 30
shadowed_by_global: true
prevent_anons_from_downloading_files:
default: false
client: true
enable_s3_uploads:
default: false
client: true
s3_use_iam_profile: false
s3_access_key_id:
default: ""
secret: true
shadowed_by_global: true
s3_secret_access_key:
default: ""
secret: true
shadowed_by_global: true
s3_region:
default: "us-east-1"
enum: "S3RegionSiteSetting"
shadowed_by_global: true
s3_upload_bucket:
default: ""
regex: '^[a-z0-9\-\/]+$' # can't use '.' when using HTTPS
s3_endpoint:
default: ""
regex: '^https?:\/\/.+[^\/]$'
shadowed_by_global: true
s3_cdn_url:
default: ""
regex: '^https?:\/\/.+[^\/]$'
s3_force_path_style:
default: false
shadowed_by_global: true
s3_configure_tombstone_policy:
default: true
shadowed_by_global: true
allow_profile_backgrounds:
client: true
default: true
automatically_download_gravatars: true
allow_uploaded_avatars:
client: true
default: true
allow_animated_avatars:
client: true
default: false
allow_animated_thumbnails: true
default_avatars:
default: ""
type: url_list
client: true
avatar_sizes:
default: "20|25|32|45|60|120"
type: list
list_type: compact
external_system_avatars_enabled:
default: true
client: true
shadowed_by_global: true
external_system_avatars_url:
default: "/letter_avatar_proxy/v3/letter/{first_letter}/{color}/{size}.png"
client: true
regex: '^((https?:)?\/)?\/.+[^\/]'
shadowed_by_global: true
selectable_avatars_enabled:
default: false
client: true
selectable_avatars:
default: ""
type: uploaded_image_list
allow_all_attachments_for_group_messages: false
png_to_jpg_quality:
default: 95
min: 1
max: 100
allow_staff_to_upload_any_file_in_pm:
default: true
client: true
strip_image_metadata: true
min_ratio_to_crop:
type: float
default: 0.45 # 90% of 18:9
min: 0
max: 1
simultaneous_uploads:
client: true
default: 5
min: 0
max: 20
trust:
default_trust_level:
default: 0
enum: "TrustLevelSetting"
default_invitee_trust_level:
default: 1
enum: "TrustLevelSetting"
min_trust_to_create_topic:
default: 0
enum: "TrustLevelSetting"
min_trust_to_edit_wiki_post:
default: 1
enum: "TrustLevelSetting"
min_trust_to_edit_post:
default: 0
enum: "TrustLevelSetting"
min_trust_to_allow_self_wiki:
default: 3
enum: "TrustLevelSetting"
min_trust_to_send_messages:
default: 1
enum: "TrustLevelSetting"
min_trust_to_send_email_messages:
hidden: true
default: 4
enum: "TrustLevelSetting"
min_trust_to_flag_posts:
default: 1
enum: "TrustLevelSetting"
min_trust_to_post_links:
default: 0
enum: "TrustLevelSetting"
min_trust_to_post_images:
default: 0
enum: "TrustLevelSetting"
allow_flagging_staff: true
send_tl1_welcome_message: true
tl1_requires_topics_entered: 5
tl1_requires_read_posts:
default: 30
client: true
tl1_requires_time_spent_mins: 10
tl2_requires_topics_entered: 20
tl2_requires_read_posts: 100
tl2_requires_time_spent_mins: 60
tl2_requires_days_visited:
default: 15
tl2_requires_likes_received: 1
tl2_requires_likes_given: 1
tl2_requires_topic_reply_count: 3
tl3_time_period:
default: 100
min: 1
max: 1000000
tl3_requires_days_visited:
default: 50
tl3_requires_topics_replied_to:
default: 10
tl3_requires_topics_viewed:
default: 25
max: 100
tl3_requires_topics_viewed_cap:
default: 500
tl3_requires_posts_read:
default: 25
max: 100
tl3_requires_posts_read_cap:
default: 20000
max: 99000
tl3_requires_topics_viewed_all_time:
default: 200
tl3_requires_posts_read_all_time:
default: 500
tl3_requires_max_flagged:
default: 5
tl3_promotion_min_duration:
default: 14
max: 10000
tl3_requires_likes_given:
default: 30
tl3_requires_likes_received:
default: 20
tl3_links_no_follow:
default: false
client: true
trusted_users_can_edit_others:
default: true
security:
force_https:
default: false
shadowed_by_global: true
same_site_cookies:
default: Lax
type: enum
choices:
- Lax
- Strict
- Disabled
regex: "^(Lax|Strict|Disabled)$"
enable_escaped_fragments: true
allow_index_in_robots_txt: true
allow_moderators_to_create_categories: false
non_crawler_user_agents:
hidden: true
default: "trident|webkit|gecko|chrome|safari|msie|opera|goanna"
type: list
list_type: compact
crawler_user_agents:
hidden: true
default: "rss|bot|spider|crawler|facebook|archive|wayback|ping|monitor"
type: list
list_type: compact
crawler_check_bypass_agents:
hidden: true
default: "cubot"
cors_origins:
default: ""
type: list
use_admin_ip_whitelist:
default: false
client: true
blacklist_ip_blocks:
default: ""
type: list
list_type: compact
shadowed_by_global: true
whitelist_internal_hosts:
default: ""
type: list
allowed_iframes:
default: "https://www.google.com/maps/embed?|https://www.openstreetmap.org/export/embed.html?|https://calendar.google.com/calendar/embed?|https://codepen.io/"
type: list
client: true
whitelisted_crawler_user_agents:
type: list
default: ""
list_type: compact
blacklisted_crawler_user_agents:
type: list
default: "mauibot|semrushbot|ahrefsbot"
list_type: compact
slow_down_crawler_user_agents:
type: list
default: "bingbot"
list_type: compact
slow_down_crawler_rate: 60
content_security_policy:
default: false
content_security_policy_report_only:
default: false
content_security_policy_collect_reports:
default: false
content_security_policy_script_src:
type: list
default: ""
invalidate_inactive_admin_email_after_days:
default: 365
min: 0
max: 2000
onebox:
enable_flash_video_onebox: false
post_onebox_maxlength:
default: 500
locale_default:
ja: 200
zh_CN: 200
zh_TW: 200
onebox_domains_blacklist:
default: ""
type: list
list_type: compact
max_oneboxes_per_post:
default: 50
client: true
inline_onebox_domains_whitelist:
default: ""
type: list
list_type: compact
enable_inline_onebox_on_all_domains:
default: false
spam:
add_rel_nofollow_to_user_content: true
flags_required_to_hide_post: 3
cooldown_minutes_after_hiding_posts: 10
num_spam_flags_to_silence_new_user: 3
num_users_to_silence_new_user: 3
num_tl3_flags_to_silence_new_user: 4
num_tl3_users_to_silence_new_user: 2
notify_mods_when_user_silenced: false
flag_sockpuppets: false
newuser_spam_host_threshold: 3
white_listed_spam_host_domains:
default: ""
type: list
levenshtein_distance_spammer_emails:
default: 2
max: 3
max_new_accounts_per_registration_ip: 3
min_ban_entries_for_roll_up: 5
max_age_unmatched_emails: 365
max_age_unmatched_ips: 365
num_flaggers_to_close_topic: 5
num_flags_to_close_topic: 12
num_hours_to_close_topic:
default: 4
min: 1
auto_respond_to_flag_actions: true
min_first_post_typing_time: 3000
auto_silence_fast_typers_on_first_post: true
auto_silence_fast_typers_max_trust_level: 0
auto_silence_first_post_regex: ""
flags_default_topics:
default: false
client: true
min_flags_staff_visibility: 1
rate_limits:
unique_posts_mins: 5
rate_limit_create_topic: 15
rate_limit_create_post: 5
rate_limit_new_user_create_topic: 120
rate_limit_new_user_create_post: 30
max_topics_per_day: 20
max_personal_messages_per_day: 20
max_likes_per_day: 50
max_bookmarks_per_day: 20
max_flags_per_day: 20
max_edits_per_day: 30
max_invites_per_day: 10
max_topic_invitations_per_day: 30
max_topics_in_first_day: 3
max_replies_in_first_day: 10
tl2_additional_likes_per_day_multiplier: 1.5
tl3_additional_likes_per_day_multiplier: 2
tl4_additional_likes_per_day_multiplier: 3
alert_admins_if_errors_per_minute:
client: true
shadowed_by_global: true
default: 0
alert_admins_if_errors_per_hour:
client: true
shadowed_by_global: true
default: 0
max_prints_per_hour_per_user:
default: 5
client: true
max_logins_per_ip_per_hour:
min: 1
default: 30
max_logins_per_ip_per_minute:
min: 1
default: 6
max_post_deletions_per_minute:
min: 1
default: 2
max_post_deletions_per_day:
min: 1
default: 10
developer:
force_hostname:
hidden: true
default: ""
port:
hidden: true
default: ""
queue_jobs:
hidden: true
default: true
enable_long_polling:
client: true
default: true
long_polling_interval:
default: 25000
max: 25000
long_polling_base_url:
client: true
default: "/"
background_polling_interval:
client: true
default: 60000
max: 99000
polling_interval:
client: true
default: 3000
max: 99000
anon_polling_interval:
client: true
default: 15000
max: 99000
flush_timings_secs:
client: true
default: 20
active_user_rate_limit_secs: 60
verbose_localization:
default: false
client: true
top_topics_formula_log_views_multiplier:
default: 2
top_topics_formula_first_post_likes_multiplier:
default: 0.5
top_topics_formula_least_likes_per_post_multiplier:
default: 3
rebake_old_posts_count:
default: 80
min: 1
migrate_to_new_scheme:
hidden: true
default: false
max_new_topics:
default: 500
client: true
hidden: true
wizard_enabled:
default: true
hidden: true
bypass_wizard_check:
default: false
hidden: true
logging_provider:
hidden: true
default: "default"
type: "list"
choices:
- "default"
- "lograge"
bootstrap_error_pages:
hidden: true
default: false
enable_safe_mode:
default: true
client: true
embedding:
feed_polling_enabled:
default: false
hidden: true
feed_polling_url:
default: ""
hidden: true
feed_polling_frequency_mins:
min: 5
max: 180
default: 60
hidden: true
embed_by_username:
default: ""
type: username
hidden: true
embed_username_key_from_feed:
default: ""
hidden: true
embed_post_limit:
default: 100
hidden: true
embed_title_scrubber:
default: ""
hidden: true
embed_whitelist_selector:
default: ""
hidden: true
embed_blacklist_selector:
default: ""
hidden: true
embed_classname_whitelist:
default: "emoji"
hidden: true
legal:
tos_url:
client: true
default: ""
privacy_policy_url:
client: true
default: ""
faq_url:
client: true
default: ""
log_anonymizer_details:
default: true
backups:
enable_backups:
default: true
shadowed_by_global: true
client: true
readonly_mode_during_backup:
default: false
allow_restore:
default: false
shadowed_by_global: true
backup_location:
default: "local"
type: enum
enum: "BackupLocationSiteSetting"
shadowed_by_global: true
client: true
maximum_backups:
client: true
default: 5
shadowed_by_global: true
automatic_backups_enabled:
default: true
shadowed_by_global: true
backup_frequency:
min: 1
max: 30
default: 7
shadowed_by_global: true
s3_backup_bucket:
default: ""
regex: '^[a-z0-9\-\/]+$' # can't use '.' when using HTTPS
shadowed_by_global: true
s3_disable_cleanup:
default: false
backup_time_of_day:
default: "3:30"
regex: "^((0?(0|1|2|3|4|5|6|7|8|9)|(10|11|12|13|14|15|16|17|18|19|20|21|22|23))):\\d\\d$"
backup_with_uploads: true
search:
min_search_term_length:
client: true
default: 3
locale_default:
zh_CN: 2
zh_TW: 2
ko: 2
ja: 2
search_tokenize_chinese_japanese_korean: false
search_prefer_recent_posts: false
search_recent_posts_size:
default: 100000
max: 100000
log_search_queries:
client: true
default: true
search_query_log_max_size:
default: 1000000
max: 1000000
search_query_log_max_retention_days:
default: 365 # 1 year
max: 1825 # 5 years
search_ignore_accents:
default: false
locale_default:
ar: true
ca: true
cs: true
el: true
es: true
fa_IR: true
fr: true
hu: true
pt: true
pt_BR: true
ro: true
sk: true
tr_TR: true
uncategorized:
version_checks:
client: true
default: true
shadowed_by_global: true
new_version_emails: true
send_welcome_message: true
suppress_uncategorized_badge:
client: true
default: true
header_dropdown_category_count:
client: true
default: 8
slug_generation_method:
default: "ascii"
enum: "SlugSetting"
locale_default:
ja: "none"
zh_CN: "none"
zh_TW: "none"
permalink_normalizations:
default: ""
type: list
max_similar_results: 5
minimum_topics_similar: 50
previous_visit_timeout_hours: 1
staff_like_weight: 3
topic_view_duration_hours: 8
user_profile_view_duration_hours: 8
# Summary mode
summary_score_threshold: 15
summary_posts_required: 50
summary_likes_required: 1
summary_percent_filter: 20
summary_max_results: 100
# View heat thresholds
topic_views_heat_low:
client: true
default: 1000
topic_views_heat_medium:
client: true
default: 2000
topic_views_heat_high:
client: true
default: 5000
# Post/Like heat thresholds
topic_post_like_heat_low:
client: true
default: 0.5
topic_post_like_heat_medium:
client: true
default: 1.0
topic_post_like_heat_high:
client: true
default: 2.0
# History edit heat thresholds
history_hours_low:
client: true
default: 12
history_hours_medium:
client: true
default: 24
history_hours_high:
client: true
default: 48
# Cold map thresholds
cold_age_days_low:
default: 14
client: true
cold_age_days_medium:
default: 90
client: true
cold_age_days_high:
default: 180
client: true
# Warnings
educate_until_posts: 2
sequential_replies_threshold: 2
get_a_room_threshold: 3
dominating_topic_minimum_percent: 20
disable_avatar_education_message: false
global_notice:
default: ""
client: true
has_login_hint:
default: false
hidden: true
# Nothing past this threshold is ever considered new
# this is calculated dynamically every 15 minutes
min_new_topics_time:
default: 0
hidden: true
# Category IDs
lounge_category_id:
default: -1
hidden: true
meta_category_id:
default: -1
hidden: true
staff_category_id:
default: -1
hidden: true
uncategorized_category_id:
default: -1
hidden: true
notify_about_flags_after: 48
show_create_topics_notice:
client: true
default: true
enable_system_avatars:
hidden: true
default: true
disable_edit_notifications: false
likes_notification_consolidation_threshold:
default: 3
min: 0
likes_notification_consolidation_window_mins:
default: 120
min: 1
delete_drafts_older_than_n_days:
default: 180
tos_topic_id:
default: -1
hidden: true
guidelines_topic_id:
default: -1
hidden: true
privacy_topic_id:
default: -1
hidden: true
bootstrap_mode_min_users:
default: 50
client: true
max: 5000
bootstrap_mode_enabled:
default: false
client: true
hidden: true
automatically_unpin_topics:
default: true
client: true
read_time_word_count:
default: 500
client: true
locale_default:
ja: 350
zh_CN: 350
zh_TW: 350
topic_page_title_includes_category:
default: true
client: true
native_app_install_banner: false
pwa_display_browser_regex:
default: "iPad|iPhone"
hidden: true
share_anonymized_statistics: true
auto_handle_queued_age:
default: 60
min: 0
svg_icon_subset:
default: ""
type: "list"
list_type: "compact"
client: true
user_preferences:
default_email_digest_frequency:
enum: "DigestEmailSiteSetting"
default: 10080
default_include_tl0_in_digests: false
default_email_personal_messages: true
default_email_direct: true
default_email_mailing_list_mode: false
default_email_mailing_list_mode_frequency:
enum: "MailingListModeSiteSetting"
default: 1
disable_mailing_list_mode:
default: false
client: true
default_email_always: false
default_email_previous_replies:
enum: "PreviousRepliesSiteSetting"
default: 2
default_email_in_reply_to:
default: true
default_other_new_topic_duration_minutes:
enum: "NewTopicDurationSiteSetting"
default: 2880
default_other_auto_track_topics_after_msecs:
enum: "AutoTrackDurationSiteSetting"
default: 240000
default_other_notification_level_when_replying:
enum: "NotificationLevelWhenReplyingSiteSetting"
default: 2
default_other_external_links_in_new_tab: false
default_other_enable_quoting: true
default_other_dynamic_favicon: false
default_other_disable_jump_reply: false
default_other_like_notification_frequency:
enum: "LikeNotificationFrequencySiteSetting"
default: 1
default_topics_automatic_unpin:
default: true
client: true
default_categories_watching:
type: category_list
default: ""
default_categories_tracking:
type: category_list
default: ""
default_categories_muted:
type: category_list
default: ""
default_categories_watching_first_post:
type: category_list
default: ""
default_text_size:
type: enum
default: normal
choices:
- smaller
- normal
- larger
- largest
api:
retain_web_hook_events_period_days:
default: 30
retry_web_hook_events:
default: false
user_api:
allow_user_api_keys:
default: true
allow_user_api_key_scopes:
default: "read|write|message_bus|push|notifications|session_info"
type: list
max_api_keys_per_user:
default: 10
push_api_secret_key:
default: ""
hidden: true
min_trust_level_for_user_api_key:
default: 0
enum: "TrustLevelSetting"
allowed_user_api_push_urls:
default: ""
type: list
shadowed_by_global: true
allowed_user_api_auth_redirects:
default: "https://api.discourse.org/api/auth_redirect|discourse://auth_redirect"
type: list
expire_user_api_keys_days:
default: 180
tags:
tagging_enabled:
client: true
default: false
refresh: true
tag_style:
client: true
type: enum
default: "simple"
choices:
- simple
- bullet
- box
preview: '<div class="discourse-tags"><span class="discourse-tag {{value}}">tag1</span><span class="discourse-tag {{value}}">tag2</span></div>'
max_tags_per_topic:
default: 5
client: true
max_tag_length:
default: 20
client: true
min_trust_to_create_tag:
default: "3"
enum: "TrustLevelAndStaffSetting"
min_trust_level_to_tag_topics:
default: "0"
enum: "TrustLevelAndStaffSetting"
client: true
max_tag_search_results:
client: true
default: 5
min: 1
show_filter_by_tag:
client: true
default: false
refresh: true
max_tags_in_filter_list:
default: 30
min: 1
refresh: true
tags_sort_alphabetically:
client: true
default: false
refresh: true
tags_listed_by_group:
client: true
default: false
allow_staff_to_tag_pms:
default: false
suppress_overlapping_tags_in_list:
default: false
client: true
remove_muted_tags_from_latest:
default: false
force_lowercase_tags:
default: true
client: true
dashboard:
dashboard_general_tab_activity_metrics:
client: true
type: list
list_type: compact
default: "page_view_total_reqs|visits|time_to_first_response|likes|flags|user_to_user_private_messages_with_replies"
allow_any: false
choices:
- page_view_total_reqs
- visits
- time_to_first_response
- likes
- flags
- user_to_user_private_messages_with_replies
- signups