discourse/config/site_settings.yml
Osama Sayegh 10ae7ef44a
FEATURE: Add estimated number of global and EU visitors to the about page (#28382)
This commit implements 2 new metrics/stats in the /about page for the _estimated_ numbers of unique visitors from the EU and the rest of the world. This new feature is currently off by default, but it can be enabled by turning on the hidden `display_eu_visitor_stats` site settings via the rails console.

There are a number of assumptions that we're making here in order to estimate the number of unique visitors, specifically:

1. we're assuming that the average of page views per anonymous visitor is similar to the average number of page views that a logged-in visitor makes, and
2. we're assuming that the ratio of logged in visitors from the EU is similar to the ratio of anonymous visitors from the EU

Discourse keeps track of the number of both logged-in and anonymous page views, and also the number of unique logged-in visitors and where they're from. So with those numbers and the assumptions above, we can estimate the number of unique anonymous visitors from the EU and the rest of the world.

Internal topic: t/128480.
2024-08-21 00:03:42 +03:00

3283 lines
74 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Available options:
#
# default - The default value of the setting. For upload site settings, use the id of the upload seeded in db/fixtures/010_uploads.rb.
# 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.
# 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. A type:list setting with the word 'colors' in
# its name will make color values have a bold line of the corresponding color
#
# type: enum - A single value, chosen from a set of valid values in the choices option.
# type: json_schema - The setting value is stored as JSON in the database. Used
# in the format `json_schema: ClassName` where the class implements
# a `.schema` class method and returns a hash in the JSON schema
# format (c.f. https://json-schema.org/)
# type: host_list - A list of domain names that does not allow * or ? wildcards.
# type: category_list - A list of category ids, which shows a special picker in the UI.
# type: category - A single category ID, which shows a special picker in the UI.
# type: uploaded_image_list - A list of upload IDs that should be images.
# type: upload - A single upload ID.
# type: group - A single group ID.
# type: group_list - A list of group IDs.
# type: tag_list - A list of tag names.
# type: emoji_list - A list of emoji names (e.g. joy, cold_hands)
# type: tag_group_list - A list of tag group names.
# type: file_size_restriction - A file size restriction in bytes.
#
required:
title:
client: true
default: "Discourse"
site_description:
default: ""
short_site_description:
default: ""
client: true
contact_email:
default: ""
type: email
contact_url:
default: ""
notification_email:
default: "noreply@unconfigured.discourse.org"
type: email
site_contact_username:
default: ""
type: username
site_contact_group_name:
default: ""
type: group
exclude_rel_nofollow_domains:
client: true
default: ""
type: list
list_type: simple
company_name:
default: ""
governing_law:
default: ""
city_for_disputes:
default: ""
branding:
logo:
default: -5
client: true
type: upload
logo_small:
default: -6
client: true
type: upload
digest_logo:
default: ""
client: true
type: upload
mobile_logo:
default: ""
client: true
type: upload
logo_dark:
default: ""
client: true
type: upload
logo_small_dark:
default: ""
client: true
type: upload
mobile_logo_dark:
default: ""
client: true
type: upload
large_icon:
default: ""
client: true
type: upload
manifest_icon:
default: ""
type: upload
manifest_screenshots:
type: list
list_type: simple
default: ""
favicon:
default: ""
client: true
type: upload
apple_touch_icon:
default: ""
client: true
type: upload
opengraph_image:
default: ""
type: upload
twitter_summary_large_image:
default: ""
type: upload
basic:
display_local_time_in_user_card:
client: true
default: false
allow_user_locale:
client: true
default: false
set_locale_from_accept_language_header:
default: false
client: true
validator: "AllowUserLocaleEnabledValidator"
set_locale_from_cookie:
default: false
hidden: true
client: true
validator: "AllowUserLocaleEnabledValidator"
support_mixed_text_direction:
client: true
default: false
categories_topics:
default: 20
validator: "CategoriesTopicsValidator"
suggested_topics:
client: true
default: 5
max: 2000
limit_suggested_to_category:
default: false
suggested_topics_unread_max_days_old:
default: 90
min: 0
max: 36500
suggested_topics_max_days_old:
default: 365
min: 7
max: 36500
ga_version:
type: enum
default: v4_gtag
choices:
- v3_analytics
- v4_gtag
ga_universal_tracking_code:
client: true
default: ""
regex: "^(UA|G)-[\\w-]+"
ga_universal_domain_name:
client: true
default: "auto"
ga_universal_auto_link_domains:
default: ""
type: list
list_type: simple
gtm_container_id:
client: true
default: ""
regex: "^GTM-"
top_menu:
client: true
refresh: true
type: list
list_type: simple
default: "latest|new|unread|hot|categories"
regex: "latest"
regex_error: "site_settings.errors.must_include_latest"
validator: RegexPresenceValidator
allow_any: false
choices:
- latest
- new
- unread
- unseen
- top
- categories
- read
- posted
- bookmarks
- hot
post_menu:
client: true
type: list
list_type: simple
default: "read|like|copyLink|flag|edit|bookmark|delete|admin|reply"
allow_any: false
choices:
- read
- copyLink
- share
- like
- edit
- flag
- delete
- bookmark
- admin
- reply
post_menu_hidden_items:
client: true
type: list
list_type: simple
default: "flag|bookmark|edit|delete|admin"
allow_any: false
choices:
- like
- edit
- flag
- delete
- share
- bookmark
- admin
- reply
share_links:
client: true
type: list
list_type: simple
default: "twitter|facebook|email"
allow_any: false
choices:
- twitter
- facebook
- email
allow_username_in_share_links:
client: true
default: true
share_quote_visibility:
client: true
type: enum
default: "all"
choices:
- none
- anonymous
- all
share_quote_buttons:
client: true
type: list
list_type: simple
default: "twitter|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"
max_category_nesting:
client: true
default: 2
min: 2
max: 3
hidden: true
enable_mobile_theme:
client: true
default: true
hidden: true
enable_direct_s3_uploads:
client: true
default: false
enable_upload_debug_mode:
default: false
hidden: true
client: true
default_theme_id:
default: -1
hidden: true
default_dark_mode_color_scheme_id:
default: -1
type: enum
enum: "ColorSchemeSetting"
client: 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:
client: true
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
max_favorite_badges:
client: true
default: 2
min: 0
max: 6
whispers_allowed_groups:
type: group_list
list_type: compact
default: ""
allow_any: false
refresh: true
hidden_post_visible_groups:
type: group_list
list_type: compact
default: "14"
allow_any: false
refresh: true
push_notifications_prompt:
default: true
client: true
push_notifications_icon:
default: ""
type: upload
enable_desktop_push_notifications:
default: true
client: true
push_notification_time_window_mins:
default: 1
min: 0
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
vapid_base_url:
default: ""
hidden: true
base_font:
default: "arial"
enum: "BaseFontSetting"
refresh: true
heading_font:
default: "arial"
enum: "BaseFontSetting"
refresh: true
enable_sitemap:
default: true
sitemap_page_size:
default: 10000
enable_user_status:
client: true
default: false
enable_user_tips:
client: true
default: true
refresh: true
page_loading_indicator:
client: true
type: enum
default: "slider"
choices:
- spinner
- slider
show_user_menu_avatars:
client: true
default: false
extended_site_description:
default: ""
max: 10_000
hidden: true
extended_site_description_cooked:
default: ""
hidden: true
max: 15_000
about_banner_image:
default: ""
type: upload
hidden: true
community_owner:
default: ""
max: 300
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
invite_code: ""
enable_local_logins:
client: true
default: true
enable_local_logins_via_email:
client: true
default: true
validator: "EnableLocalLoginsViaEmailValidator"
enable_passkeys:
client: true
default: true
hidden: true
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: ""
google_oauth2_hd_groups:
default: false
validator: GoogleOauth2HdGroupsValidator
google_oauth2_hd_groups_service_account_admin_email:
default: ""
google_oauth2_hd_groups_service_account_json:
default: ""
textarea: true
enable_twitter_logins:
default: false
twitter_consumer_key:
default: ""
regex: "^[\\w+-]+$"
twitter_consumer_secret:
default: ""
regex: "^[\\w+-]+$"
secret: true
enable_facebook_logins:
default: false
facebook_app_id:
client: true
default: ""
regex: "^\\d+$"
facebook_app_secret:
default: ""
regex: "^[a-f0-9]+$"
secret: true
enable_github_logins:
default: false
github_client_id:
default: ""
regex: "^[a-zA-Z0-9\\.]+$"
github_client_secret:
default: ""
regex: "^[a-f0-9]+$"
secret: true
enable_discord_logins:
default: false
discord_client_id:
default: ""
discord_secret:
default: ""
secret: true
discord_trusted_guilds:
default: ""
type: list
list_type: simple
enable_linkedin_oidc_logins:
default: false
validator: "LinkedinOidcCredentialsValidator"
linkedin_oidc_client_id:
default: ""
regex: "^[a-z0-9]+$"
linkedin_oidc_client_secret:
default: ""
regex: "^[a-zA-Z0-9_=\\.]+$"
secret: true
auth_skip_create_confirm:
default: false
client: true
auth_immediately:
default: true
auth_overrides_email:
default: false
validator: "SsoOverridesEmailValidator"
client: true
auth_overrides_username: false
auth_overrides_name: false
enable_discourse_connect:
client: true
default: false
validator: "EnableSsoValidator"
discourse_connect_allowed_redirect_domains:
default: ""
type: list
list_type: simple
verbose_discourse_connect_logging: false
verbose_upload_logging:
hidden: true
default: false
verbose_auth_token_logging:
hidden: true
default: false
max_suspicious_distance_km:
hidden: true
default: 100
discourse_connect_url:
default: ""
regex: '^https?:\/\/.+[^\/]$'
discourse_connect_secret:
default: ""
secret: true
discourse_connect_overrides_groups: false
discourse_connect_overrides_bio: false
discourse_connect_overrides_avatar:
default: false
client: true
discourse_connect_overrides_profile_background: false
discourse_connect_overrides_location: false
discourse_connect_overrides_website: false
discourse_connect_overrides_card_background: false
discourse_connect_not_approved_url: ""
discourse_connect_csrf_protection:
default: true
hidden: true
enable_discourse_connect_provider: false
discourse_connect_provider_secrets:
default: ""
type: list
list_type: secret
secret: true
placeholder:
key: "sso_provider.key_placeholder"
value: "sso_provider.value_placeholder"
blocked_email_domains:
default: "mailinator.com"
type: host_list
list_type: simple
allowed_email_domains:
default: ""
type: host_list
list_type: simple
normalize_emails:
default: false
auto_approve_email_domains:
default: ""
type: host_list
list_type: simple
hide_email_address_taken:
client: true
default: false
log_out_strict: false
pending_users_reminder_delay_minutes:
min: -1
default: 480
persistent_sessions: true
maximum_session_age:
default: 1440
min: 1
max: 175200
users:
min_username_length:
client: true
default: 3
validator: "MinUsernameLengthValidator"
max_username_length:
client: true
default: 20
validator: "MaxUsernameLengthValidator"
unicode_usernames:
default: false
client: true
validator: "UnicodeUsernameValidator"
allowed_unicode_username_characters:
validator: "UnicodeUsernameAllowlistValidator"
default: ""
locale_default:
cs: "[ěščřžýáíéóůúďťňĚŠČŘŽÝÁÍÉÓŮÚĎŤŇ]"
de: "[äöüßÄÖÜẞ]"
fi: "[åäöÅÄÖ]"
ja: '[\p{Han}\p{Katakana}\p{Hiragana}]'
ko: '\p{Hangul}'
zh_CN: '\p{Han}'
zh_TW: '\p{Han}'
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|all|here"
min_password_length:
client: true
default: 10
min: 8
max: 500
requires_confirmation: "simple"
min_admin_password_length:
client: true
default: 15
min: 8
max: 500
requires_confirmation: "simple"
password_unique_characters:
default: 6
min: 1
max: 10
requires_confirmation: "simple"
block_common_passwords:
default: true
requires_confirmation: "simple"
username_change_period: 3
email_editable:
client: true
default: true
logout_redirect:
client: true
default: ""
full_name_required:
client: true
default: false
enable_names:
client: true
default: true
invite_expiry_days:
default: 90
client: true
max: 36500
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
delete_user_self_max_post_count:
default: 1
min: -1
redirect_users_to_top_page: true
prioritize_username_in_ux:
client: true
default: true
email_token_valid_hours:
default: 48
min: 1
purge_unactivated_users_grace_period_days:
default: 14
max: 36500
public_user_custom_fields:
type: list
list_type: simple
default: ""
staff_user_custom_fields:
type: list
list_type: simple
default: ""
enable_user_directory:
client: true
default: true
allow_anonymous_posting:
default: false
client: true
allow_anonymous_likes:
default: false
client: true
anonymous_posting_min_trust_level:
default: 1
enum: "TrustLevelSetting"
client: true
hidden: true
anonymous_posting_allowed_groups:
default: "3|11" # auto group staff and trust_level_1
type: group_list
allow_any: false
refresh: true
validator: "AtLeastOneGroupValidator"
anonymous_account_duration_minutes:
default: 10080
max: 99000
allow_users_to_hide_profile:
default: true
client: true
hide_user_profiles_from_public:
default: false
client: true
allow_featured_topic_on_user_profiles:
default: true
client: true
show_inactive_accounts:
default: false
allowed_user_website_domains:
default: ""
type: list
list_type: simple
hide_suspension_reasons:
default: false
client: true
log_personal_messages_views: false
ignored_users_count_message_threshold:
default: 5
client: true
min: 1
ignored_users_message_gap_days:
default: 365
client: true
min: 1
max: 36500
clean_up_inactive_users_after_days:
default: 730
min: 0
max: 36500
clean_up_unused_staged_users_after_days:
default: 365
min: 0
max: 36500
user_selected_primary_groups:
default: false
client: true
max_notifications_per_user:
default: 10000
hidden: true
gravatar_name:
default: Gravatar
client: true
gravatar_base_url:
default: www.gravatar.com
client: true
gravatar_login_url:
default: /emails
client: true
max_bookmarks_per_user:
default: 2000
hidden: true
use_email_for_username_and_name_suggestions:
default: false
use_name_for_username_suggestions:
default: true
hide_user_activity_tab:
default: false
client: true
delete_associated_accounts_on_password_reset:
default: false
groups:
enable_group_directory:
client: true
default: true
group_in_subject:
default: false
enable_category_group_moderation:
client: true
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: 150000
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_views_for_delete_confirm:
client: true
default: 5000
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
enable_filtered_replies_view:
default: false
client: true
title_prettify:
default: true
locale_default:
ja: false
zh_CN: false
zh_TW: false
title_remove_extraneous_space:
default: false
locale_default:
en: true
en_GB: true
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: false
refresh: true
allow_duplicate_topic_titles: false
allow_duplicate_topic_titles_category: false
min_title_similar_length:
client: true
default: 10
locale_default:
ja: 4
zh_CN: 4
zh_TW: 4
enable_system_message_replies:
default: true
personal_message_enabled_groups:
default: "1|2|11" # auto group admins, moderators, trust_level_1
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
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: ""
shared_drafts_min_trust_level:
default: "staff"
enum: "TrustLevelAndStaffSetting"
hidden: true
shared_drafts_allowed_groups:
default: "3" # auto group staff
type: group_list
allow_any: false
refresh: true
validator: "AtLeastOneGroupValidator"
post_edit_time_limit:
default: 1440
max: 10080
tl2_post_edit_time_limit:
default: 43200
max: 525600
edit_history_visible_to_public:
client: true
default: true
delete_removed_posts_after:
client: true
default: 24
max: 876000
notify_users_after_responses_deleted_on_flagged_post:
default: false
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|onion|co|tv|ru|cn|us|uk|me|de|fr|fi|gov"
list_type: compact
validator: "MarkdownLinkifyTldsValidator"
markdown_typographer_quotation_marks:
client: true
type: list
list_type: compact
validator: "MarkdownTypographerQuotationMarksValidator"
default: "“|”||"
locale_default:
de: "„|“||"
fr: "«\xA0|\xA0»|\xA0|\xA0"
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:
default: 100
client: true
newuser_max_replies_per_topic: 3
newuser_max_mentions_per_post: 2
here_mention:
default: "here"
validator: "NotUsernameValidator"
client: true
max_here_mentioned: 10
min_trust_level_for_here_mention:
default: "2"
enum: "TrustLevelAndStaffSetting"
hidden: true
here_mention_allowed_groups:
default: "1|2|12" # auto group admins, moderators, trust_level_2
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
title_max_word_length:
default: 30
locale_default:
ja: 50
ko: 50
zh_CN: 50
zh_TW: 50
allowed_link_domains:
default: ""
type: list
newuser_max_links: 2
newuser_max_embedded_media:
client: true
default: 1
newuser_max_attachments:
client: true
default: 0
post_excerpt_maxlength:
default: 300
max: 1000
locale_default:
ja: 120
zh_CN: 120
zh_TW: 120
topic_excerpt_maxlength:
default: 220
max: 1000
locale_default:
ja: 120
zh_CN: 120
zh_TW: 120
default_subcategory_on_read_only_category:
client: true
default: false
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
max: 36500
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: "bash|c|cpp|csharp|css|diff|go|graphql|ini|java|javascript|json|kotlin|lua|makefile|markdown|objectivec|perl|php|php-template|plaintext|python|python-repl|r|ruby|rust|scss|shell|sql|swift|typescript|xml|yaml|wasm"
choices: "HighlightJs.languages"
type: list
client: true
list_type: compact
show_copy_button_on_codeblocks:
client: true
default: true
hidden: true
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
emoji_deny_list:
type: emoji_list
default: ""
client: true
refresh: true
approve_post_count:
default: 0
approve_unless_trust_level:
default: 0
enum: "TrustLevelSetting"
hidden: true
approve_unless_allowed_groups:
default: "1|2|10" # auto groups admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
approve_new_topics_unless_trust_level:
default: 0
enum: "TrustLevelSetting"
hidden: true
approve_new_topics_unless_allowed_groups:
default: "1|2|10" # auto groups admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
approve_suspect_users:
default: true
approve_unless_staged:
default: false
notify_about_queued_posts_after:
type: float
default: 24
min: 0
auto_close_messages_post_count:
default: 500
auto_close_topics_post_count:
default: 10000
auto_close_topics_create_linked_topic:
default: true
code_formatting_style:
client: true
type: enum
default: "code-fences"
choices:
- code-fences
- 4-spaces-indent
embed_any_origin: false
embed_topics_list: false
embed_set_canonical_url: false
embed_unlisted: false
import_embed_unlisted: true
embed_truncate: true
embed_support_markdown: false
allowed_embed_selectors: ""
allowed_href_schemes:
client: true
default: ""
type: list
list_type: compact
max_allowed_message_recipients:
default: 30
min: 1
disable_watched_word_checking_in_user_fields:
hidden: true
default: false
watched_words_regular_expressions:
client: true
default: false
enable_diffhtml_preview:
default: false
client: true
enable_fast_edit:
default: true
client: true
enable_quote_copy:
default: true
client: true
old_post_notice_days:
default: 14
max: 36500
client: true
new_user_notice_tl:
default: 2
enum: "TrustLevelSetting"
returning_user_notice_tl:
default: 2
enum: "TrustLevelSetting"
returning_users_days:
default: 120
max: 36500
review_media_unless_trust_level:
default: 0
enum: "TrustLevelSetting"
hidden: true
skip_review_media_groups:
default: "1|2|10" # auto groups admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
blur_tl0_flagged_posts_media:
default: true
client: true
enable_page_publishing:
default: false
show_published_pages_login_required:
default: false
skip_auto_delete_reply_likes: 5
review_every_post:
default: false
max_draft_length:
default: 400_000
hidden: true
max_drafts_per_user:
default: 10_000
hidden: true
max_form_template_title_length:
default: 100
min: 5
max: 255
max_form_template_content_length:
default: 5000
max: 150000
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: 180
max: 36500
digest_suppress_categories:
type: category_list
default: ""
digest_suppress_tags:
type: tag_list
default: ""
disable_digest_emails:
default: false
client: true
apply_custom_styles_to_digest: true
email_accent_bg_color:
type: color
default: "#2F70AC"
validator: "CssColorValidator"
email_accent_fg_color:
type: color
default: "#FFFFFF"
validator: "CssColorValidator"
email_link_color:
type: color
default: "#006699"
validator: "CssColorValidator"
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
strip_incoming_email_lines: false
email_in:
default: false
client: true
email_in_min_trust:
default: 2
enum: "TrustLevelSetting"
hidden: true
email_in_allowed_groups:
default: "1|2|12" # auto group admins, moderators, trust_level_2
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
email_in_authserv_id:
default: ""
email_in_spam_header:
type: enum
default: "none"
choices:
- none
- X-Spam-Flag
- X-Spam-Status
- X-SES-Spam-Verdict
enable_imap:
default: false
client: true
hidden: true
enable_imap_write:
default: false
hidden: true
enable_imap_idle:
default: false
hidden: true
enable_smtp:
default: false
client: true
imap_polling_period_mins:
default: 5
imap_polling_old_emails:
default: 1000
imap_polling_new_emails:
default: 250
imap_batch_import_email:
default: 100
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
max: 36500
delete_email_logs_after_days:
default: 90
max: 36500
max_emails_per_day_per_user: 100
enable_staged_users: true
maximum_staged_users_per_email: 10
maximum_recipients_per_new_group_email:
default: 10
min: 1
auto_generated_allowlist:
default: ""
type: list
list_type: simple
block_auto_generated_emails: true
ignore_by_title:
type: list
list_type: simple
default: ""
mailgun_api_key:
default: ""
regex: '^((key-)?\h{32}|\h{32}-\h{8}-\h{8})$'
secret: true
sendgrid_verification_key:
default: ""
secret: true
mailjet_webhook_token:
default: ""
secret: true
mandrill_authentication_key:
default: ""
secret: true
postmark_webhook_token:
default: ""
secret: true
sparkpost_webhook_token:
default: ""
secret: true
bounce_score_threshold:
client: true
default: 4
min: 1
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
max: 36500
blocked_attachment_content_types:
type: list
default: "pkcs7|x-vcard|pgp-keys|pgp-signature"
list_type: compact
blocked_attachment_filenames:
type: list
default: "smime.p7s|signature.asc|winmail.dat"
list_type: compact
forwarded_emails_behaviour:
type: enum
default: hide
choices:
- hide
- quote
- create_replies
always_show_trimmed_content: false
trim_incoming_emails: true
private_email: false
email_custom_template:
default: ""
hidden: true
email_custom_css:
default: ""
hidden: true
email_custom_css_compiled:
default: ""
hidden: true
email_total_attachment_size_limit_kb:
default: 0
max: 51200
type: file_size_restriction
post_excerpts_in_emails: false
raw_email_max_length: 220000
raw_rejected_email_max_length: 4000
delete_rejected_email_after_days:
default: 90
validator: "DeleteRejectedEmailAfterDaysValidator"
enable_secondary_emails:
client: true
default: true
hidden: true
max_participant_names:
default: 10
hidden: true
require_change_email_confirmation: false
view_raw_email_allowed_groups:
type: group_list
list_type: compact
default: "1|2"
allow_any: false
refresh: true
files:
max_image_size_kb:
client: true
default: 4096
max: 102400
type: file_size_restriction
max_attachment_size_kb:
client: true
default: 4096
max: 1024000
type: file_size_restriction
system_user_max_attachment_size_kb:
default: 0
max: 4096000
type: file_size_restriction
hidden: true
max_image_megapixels:
default: 40
min: 5
max: 150
max_export_file_size_kb:
hidden: true
default: 50000
max: 1024000
type: file_size_restriction
theme_authorized_extensions:
default: "wasm|jpg|jpeg|png|woff|woff2|svg|eot|ttf|otf|gif|webp|avif|js"
type: list
list_type: file_types
authorized_extensions:
client: true
default: "jpg|jpeg|png|gif|heic|heif|webp|avif"
refresh: true
type: list
list_type: file_types
authorized_extensions_for_staff:
client: true
default: ""
refresh: true
type: list
list_type: file_types
export_authorized_extensions:
hidden: true
default: "zip"
type: list
list_type: compact
responsive_post_image_sizes:
default: "1|1.5|2"
type: list
list_type: compact
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
disabled_image_download_domains:
type: list
list_type: simple
default: ""
block_hotlinked_media:
default: false
block_hotlinked_media_exceptions:
default: ""
type: list
regex: '\A((https?:\/\/.+)(\|https?:\/\/.+[|$])*)?\z'
create_thumbnails: true
clean_up_uploads: true
clean_orphan_uploads_grace_period_hours:
default: 48
max: 168
purge_deleted_uploads_grace_period_days:
default: 30
max: 36500
prevent_anons_from_downloading_files:
default: false
client: true
secure_uploads:
default: false
client: true
secure_uploads_allow_embed_images_in_emails:
default: true
secure_uploads_max_email_embed_image_size_kb:
default: 1024
min: 1
max: 10240
type: file_size_restriction
secure_uploads_pm_only:
default: false
hidden: true
client: true
enable_s3_uploads:
default: false
client: true
enable_s3_transfer_acceleration:
default: false
hidden: true
s3_use_iam_profile:
default: false
s3_access_key_id:
default: ""
secret: true
s3_secret_access_key:
default: ""
secret: true
s3_region:
default: "us-east-1"
enum: "S3RegionSiteSetting"
s3_upload_bucket:
default: ""
regex: '^[a-z0-9\-\/_]+$' # can't use '.' when using HTTPS
s3_endpoint:
default: ""
regex: '^https?:\/\/.+[^\/]$'
s3_http_continue_timeout:
default: 1
hidden: true
s3_install_cors_rule:
default: true
hidden: true
s3_cdn_url:
default: ""
regex: '^https?:\/\/.+[^\/]$'
s3_use_cdn_url_for_all_uploads:
default: false
s3_configure_tombstone_policy:
default: true
s3_use_acls:
default: true
s3_presigned_get_url_expires_after_seconds:
default: 300
hidden: true
min: 60
max: 604800
allow_profile_backgrounds:
client: true
default: true
automatically_download_gravatars: true
allow_uploaded_avatars:
client: true
default: "0"
enum: "TrustLevelAndStaffAndDisabledSetting"
hidden: true
uploaded_avatars_allowed_groups:
default: 10
type: group_list
allow_any: false
refresh: true
default_avatars:
default: ""
type: url_list
client: true
avatar_sizes:
default: "24|48|72|96|144|288"
type: list
list_type: compact
client: true
external_system_avatars_enabled:
default: true
client: true
validator: "ExternalSystemAvatarsValidator"
external_system_avatars_url:
default: "/letter_avatar_proxy/v4/letter/{first_letter}/{color}/{size}.png"
client: true
regex: '^((https?:)?\/)?\/.+[^\/]'
external_emoji_url:
default: ""
client: true
restrict_letter_avatar_colors:
default: ""
type: list
list_type: compact
validator: "ColorListValidator"
selectable_avatars_mode:
default: disabled
client: true
type: enum
choices:
- disabled
- everyone
- tl1
- tl2
- tl3
- tl4
- staff
- no_one
validator: "SelectableAvatarsModeValidator"
selectable_avatars:
default: ""
client: true
type: uploaded_image_list
allow_all_attachments_for_group_messages: false
png_to_jpg_quality:
default: 95
min: 1
max: 100
recompress_original_jpg_quality:
default: 90
min: 1
max: 100
image_preview_jpg_quality:
default: 90
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.22
min: 0
max: 1
simultaneous_uploads:
client: true
default: 5
min: 0
max: 20
decompressed_theme_max_file_size_mb:
default: 1000
hidden: true
decompressed_backup_max_file_size_mb:
default: 100000
hidden: true
composer_media_optimization_image_enabled:
default: true
client: true
composer_media_optimization_image_bytes_optimization_threshold:
default: 524288
client: true
composer_media_optimization_image_resize_dimensions_threshold:
default: 1920
client: true
composer_media_optimization_image_resize_width_target:
default: 1920
client: true
composer_media_optimization_image_resize_pre_multiply:
default: false
hidden: true
client: true
composer_media_optimization_image_resize_linear_rgb:
default: false
hidden: true
client: true
composer_media_optimization_image_encode_quality:
default: 75
client: true
composer_media_optimization_debug_mode:
default: false
client: true
hidden: true
composer_ios_media_optimisation_image_enabled:
default: false
client: true
hidden: true
video_thumbnails_enabled:
default: true
client: true
hidden: true
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"
hidden: true
create_topic_allowed_groups:
default: "1|2|10" # auto group admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
min_trust_to_edit_wiki_post:
default: 1
enum: "TrustLevelSetting"
hidden: true
edit_wiki_post_allowed_groups:
default: "1|2|11" # auto group admins, moderators, trust_level_1
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
min_trust_to_edit_post:
default: 0
enum: "TrustLevelSetting"
hidden: true
edit_post_allowed_groups:
default: "1|2|10" # auto group admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
min_trust_to_allow_self_wiki:
default: 3
enum: "TrustLevelSetting"
hidden: true
self_wiki_allowed_groups:
default: "1|2|13" # auto group admins, moderators, trust_level_3
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
min_trust_to_send_email_messages:
default: "4"
enum: "TrustLevelAndStaffSetting"
hidden: true
send_email_messages_allowed_groups:
default: "1|2|14" # auto group admins, moderators, trust_level_4
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
min_trust_to_flag_posts:
default: 1
enum: "TrustLevelSetting"
hidden: true
flag_post_allowed_groups:
default: "1|2|11" # auto group admins, moderators, trust_level_1
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
min_trust_to_post_links:
default: 0
enum: "TrustLevelSetting"
hidden: true
post_links_allowed_groups:
default: "1|2|10" # auto group admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
min_trust_to_post_embedded_media:
default: 0
enum: "TrustLevelSetting"
hidden: true
embedded_media_post_allowed_groups:
default: "1|2|10" # auto group admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
min_trust_level_to_allow_profile_background:
default: 0
client: true
enum: "TrustLevelSetting"
hidden: true
profile_background_allowed_groups:
default: "1|2|10" # auto group admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
min_trust_level_to_allow_user_card_background:
default: 0
client: true
enum: "TrustLevelSetting"
hidden: true
user_card_background_allowed_groups:
default: "1|2|10" # auto group admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
min_trust_level_to_allow_invite:
default: 2
enum: "TrustLevelSetting"
hidden: true
invite_allowed_groups:
default: "1|2|12" # auto group admins, moderators, trust_level_2
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
min_trust_level_to_allow_ignore:
default: 2
enum: "TrustLevelSetting"
client: true
hidden: true
ignore_allowed_groups:
default: "1|2|12" # auto group admins, moderators, trust_level_2
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
allow_flagging_staff: true
send_tl1_welcome_message: true
send_tl2_promotion_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
max: 36500
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
max: 36500
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
tl4_delete_posts_and_topics:
default: false
client: true
hidden: true
delete_all_posts_and_topics_allowed_groups:
default: ""
type: group_list
allow_any: false
refresh: true
edit_all_topic_groups:
default: "13"
type: group_list
edit_all_post_groups:
default: "14"
type: group_list
security:
detailed_404: false
enforce_second_factor_on_external_auth:
client: true
default: true
enforce_second_factor:
client: true
type: enum
default: "no"
choices:
- "no"
- "staff"
- "all"
force_https:
default: false
same_site_cookies:
default: Lax
hidden: true
type: enum
choices:
- Lax
- Strict
- Disabled
- None
regex: "^(Lax|Strict|Disabled|None)$"
enable_escaped_fragments: true
allow_index_in_robots_txt: true
allow_indexing_non_canonical_urls:
default: true
hidden: true
moderators_manage_categories_and_groups:
default: false
client: true
moderators_change_post_ownership:
client: true
default: false
moderators_view_emails:
client: true
default: false
non_crawler_user_agents:
hidden: true
default: "trident|webkit|gecko|chrome|safari|msie|opera|goanna|discourse"
type: list
list_type: compact
crawler_user_agents:
hidden: true
default: "rss|bot|spider|crawler|facebook|archive|wayback|ping|monitor|lighthouse|google-inspectiontool|gptbot|claudebot|anthropic-ai|brightbot|googleother"
type: list
list_type: compact
browser_update_user_agents:
hidden: true
default: "MSIE 6|MSIE 7|MSIE 8|MSIE 9|Xbox|PlayStation"
type: list
list_type: compact
crawler_check_bypass_agents:
hidden: true
default: "cubot"
cors_origins:
default: ""
type: list
list_type: simple
keep_old_ip_address_count:
default: 0
hidden: true
use_admin_ip_allowlist:
default: false
client: true
blocked_ip_blocks:
default: ""
type: list
list_type: compact
allowed_internal_hosts:
default: ""
type: list
allowed_onebox_iframes:
default: "*"
type: list
allow_any: false
choices: "['*'] + Onebox::Engine.all_iframe_origins"
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/|https://www.instagram.com/|https://open.spotify.com/"
type: list
list_type: simple
client: true
validator: "AllowedIframesValidator"
allowed_crawler_user_agents:
type: list
default: ""
list_type: compact
blocked_crawler_user_agents:
type: list
default: "mauibot|semrushbot|ahrefsbot|blexbot|seo spider"
list_type: compact
slow_down_crawler_user_agents:
type: list
default: "gptbot|claudebot|anthropic-ai|brightbot"
list_type: compact
slow_down_crawler_rate: 60
content_security_policy:
default: true
content_security_policy_report_only:
default: false
content_security_policy_collect_reports:
default: false
hidden: true
content_security_policy_frame_ancestors:
default: true
content_security_policy_script_src:
type: simple_list
default: ""
validator: "CspScriptSrcValidator"
invalidate_inactive_admin_email_after_days:
default: 365
min: 0
max: 36500
allow_embedding_site_in_an_iframe:
default: false
hidden: true
send_old_credential_reminder_days:
default: 0
hidden: true
disable_onebox_media_download_controls:
default: false
hidden: true
can_permanently_delete:
default: false
client: true
hidden: true
suppress_secured_categories_from_admin:
default: false
hidden: true
include_secure_categories_in_tag_counts:
default: false
display_personal_messages_tag_counts:
default: false
cross_origin_opener_policy_header:
default: "same-origin-allow-popups"
type: enum
choices:
- "unsafe-none"
- "same-origin"
- "same-origin-allow-popups"
hidden: true
cross_origin_opener_unsafe_none_groups:
type: group_list
list_type: compact
default: ""
allow_any: false
refresh: true
hidden: true
onebox:
post_onebox_maxlength:
default: 500
locale_default:
ja: 200
zh_CN: 200
zh_TW: 200
blocked_onebox_domains:
default: ""
type: host_list
list_type: compact
max_oneboxes_per_post:
default: 50
client: true
allowed_inline_onebox_domains:
default: ""
type: list
list_type: compact
enable_inline_onebox_on_all_domains:
default: true
onebox_user_agent:
default: ""
hidden: true
force_custom_user_agent_hosts:
default: "http://codepen.io"
type: list
force_get_hosts:
default: "us.battle.net|news.yahoo.com|*.medium.com"
type: list
hidden: true
facebook_app_access_token:
default: ""
secret: true
block_onebox_on_redirect:
default: false
cache_onebox_response_body:
default: false
hidden: true
cache_onebox_response_body_domains:
default: ""
type: list
hidden: true
cache_onebox_user_agent:
default: ""
hidden: true
github_onebox_access_tokens:
default: ""
type: list
secret: true
list_type: secret
spam:
add_rel_nofollow_to_user_content: true
hide_post_sensitivity:
type: enum
enum: "ReviewableSensitivitySetting"
default: 6
cooldown_minutes_after_hiding_posts: 10
silence_new_user_sensitivity:
type: enum
enum: "ReviewableSensitivitySetting"
default: 3
num_users_to_silence_new_user: 3
notify_mods_when_user_silenced: false
flag_sockpuppets: false
newuser_spam_host_threshold: 3
allowed_spam_host_domains:
default: ""
type: list
list_type: simple
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
auto_close_topic_sensitivity:
type: enum
enum: "ReviewableSensitivitySetting"
default: 9
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:
default: 0
enum: "TrustLevelSetting"
auto_silence_first_post_regex: ""
high_trust_flaggers_auto_hide_posts: true
cooldown_hours_until_reflag:
default: 24
min: 0
slow_mode_prevents_editing: true
reviewable_claiming:
client: true
type: enum
default: disabled
choices:
- disabled
- optional
- required
reviewable_default_topics:
default: false
client: true
reviewable_default_visibility:
client: true
type: enum
default: low
enum: "ReviewablePrioritySetting"
reviewable_low_priority_threshold:
default: 0
min: 0
reviewable_revision_reasons:
default: "Duplicate|Does not meet posting guidelines"
type: list
client: true
rate_limits:
unique_posts_mins: 5
rate_limit_create_topic: 15
rate_limit_create_post: 5
rate_limit_new_user_create_post: 30
rate_limit_search_anon_global_per_minute:
hidden: true
default: 150
rate_limit_search_anon_user_per_minute:
hidden: true
default: 15
rate_limit_search_anon_global_per_second:
hidden: true
default: 8
rate_limit_search_anon_user_per_second:
hidden: true
default: 2
rate_limit_search_user:
hidden: true
default: 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_topic_invitations_per_minute: 5
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
tl2_additional_edits_per_day_multiplier: 1.5
tl3_additional_edits_per_day_multiplier: 2
tl4_additional_edits_per_day_multiplier: 3
tl2_additional_flags_per_day_multiplier: 1.5
tl3_additional_flags_per_day_multiplier: 2
tl4_additional_flags_per_day_multiplier: 3
alert_admins_if_errors_per_minute:
client: true
default: 0
alert_admins_if_errors_per_hour:
client: true
default: 0
max_prints_per_hour_per_user:
default: 5
client: true
min: 0
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: 0
default: 2
max_post_deletions_per_day:
min: 0
default: 10
invite_link_max_redemptions_limit:
min: 2
max: 1000000
default: 5000
client: true
invite_link_max_redemptions_limit_users:
min: 2
max: 1000000
default: 10
client: true
max_allowed_secondary_emails:
default: 10
hidden: true
client: true
max_batch_presign_multipart_per_minute:
default: 20
hidden: true
max_presigned_put_per_minute:
default: 10
hidden: true
max_create_multipart_per_minute:
default: 10
hidden: true
max_complete_multipart_per_minute:
default: 10
hidden: true
max_uploads_per_minute:
default: 10
hidden: true
developer:
force_hostname:
hidden: true
default: ""
port:
hidden: true
default: ""
enable_chunked_encoding:
hidden: true
client: true
default: true
long_polling_base_url:
hidden: true
client: true
default: "/"
background_polling_interval:
hidden: true
client: true
default: 60000
max: 99000
polling_interval:
hidden: true
client: true
default: 3000
max: 99000
anon_polling_interval:
hidden: true
client: true
default: 25000
max: 99000
flush_timings_secs:
client: true
default: 60
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:
hidden: true
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
bootstrap_error_pages:
hidden: true
default: false
enable_safe_mode:
default: true
client: true
experimental_hashtag_search_result_limit:
default: 20
client: true
hidden: true
include_associated_account_ids:
default: false
hidden: true
experimental_form_templates:
client: true
default: false
experimental_new_new_view_groups:
client: true
type: group_list
list_type: compact
default: ""
allow_any: false
refresh: true
experimental_glimmer_topic_list_groups:
client: true
type: group_list
list_type: compact
default: ""
allow_any: false
refresh: true
enable_experimental_lightbox:
default: false
client: true
experimental_topics_filter:
client: true
default: false
max_sidebar_section_links:
default: 50
hidden: true
instrument_gc_stat_per_request:
default: false
hidden: true
glimmer_header_mode:
client: true
type: enum
choices:
- disabled
- auto
- enabled
default: enabled
admin_sidebar_enabled_groups:
type: group_list
list_type: compact
default: "1|2"
allow_any: false
refresh: true
lazy_load_categories_groups:
default: ""
type: group_list
list_type: compact
warn_critical_js_deprecations:
default: true
client: true
hidden: true
warn_critical_js_deprecations_message:
default: ""
client: true
hidden: true
experimental_redesigned_about_page_groups:
default: ""
type: group_list
hidden: true
allow_any: false
custom_flags_limit:
default: 50
hidden: true
client: true
navigation:
navigation_menu:
client: true
default: "sidebar"
type: enum
enum: "NavigationMenuSiteSetting"
default_navigation_menu_categories:
type: category_list
default: ""
client: true
default_navigation_menu_tags:
type: tag_list
default: ""
client: true
default_sidebar_switch_panel_position:
default: "bottom"
type: enum
client: true
choices:
- "top"
- "bottom"
embedding:
embed_by_username:
default: ""
type: username
hidden: true
embed_post_limit:
default: 100
hidden: true
embed_topic_limit_per_page:
default: 200
hidden: true
embed_title_scrubber:
default: ""
hidden: true
blocked_embed_selectors:
default: ""
hidden: true
allowed_embed_classnames:
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
experimental_rename_faq_to_guidelines:
default: false
hidden: true
client: true
display_eu_visitor_stats:
default: false
client: true
hidden: true
backups:
enable_backups:
default: true
client: true
allow_restore:
default: false
backup_location:
default: "local"
type: enum
enum: "BackupLocationSiteSetting"
client: true
maximum_backups:
client: true
default: 5
remove_older_backups:
client: true
default: ""
automatic_backups_enabled:
default: true
backup_frequency:
min: 1
max: 30
default: 7
s3_backup_bucket:
default: ""
regex: '^[a-z0-9\-\/]+$' # can't use '.' when using HTTPS
s3_inventory_bucket:
hidden: true
default: ""
regex: '^[a-z0-9\-\/_]+$' # can't use '.' when using HTTPS
s3_inventory_bucket_region:
hidden: true
default: ""
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
backup_gzip_compression_level_for_uploads:
default: 1
min: 1
max: 9
include_thumbnails_in_backups:
default: false
include_s3_uploads_in_backups:
default: false
hidden: true
client: true
search:
user_search_similar_results:
default: false
hidden: true
prioritize_exact_search_title_match:
default: true
hidden: true
max_duplicate_search_index_terms:
default: 6
hidden: true
use_pg_headlines_for_excerpt:
default: false
hidden: true
client: true
search_max_indexed_word_length:
default: 100
hidden: true
search_ranking_normalization:
default: "0"
hidden: true
search_ranking_weights:
default: ""
hidden: true
validator: "SearchRankingWeightsValidator"
min_search_term_length:
client: true
default: 3
locale_default:
zh_CN: 1
zh_TW: 1
ko: 1
ja: 1
search_tokenize_chinese:
default: false
validator: "SearchTokenizeChineseValidator"
search_tokenize_japanese:
default: false
validator: "SearchTokenizeJapaneseValidator"
search_prefer_recent_posts: false
search_recent_posts_size:
default: 1000000
max: 10000000
search_recent_regular_posts_offset_post_id:
default: 0
hidden: true
search_enable_recent_regular_posts_offset_size:
default: 200000
hidden: true
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
category_search_priority_low_weight:
default: 0.8
hidden: true
validator: "CategorySearchPriorityWeightsValidator"
category_search_priority_high_weight:
default: 1.2
hidden: true
validator: "CategorySearchPriorityWeightsValidator"
search_page_size:
default: 50
hidden: true
search_default_sort_order:
default: 0 # "relevance"
client: true
type: enum
enum: "SearchSortOrderSiteSetting"
uncategorized:
version_checks:
client: true
default: true
include_in_discourse_discover:
default: false
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"
client: true
locale_default:
ja: "none"
zh_CN: "none"
zh_TW: "none"
permalink_normalizations:
default: ""
type: list
list_type: simple
validator: "RegexpListValidator"
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
summary_timeline_button:
client: true
default: false
summarization_strategy:
client: true
hidden: true
default: ""
enum: "SummarizationStrategy"
validator: "SummarizationValidator"
custom_summarization_allowed_groups:
hidden: true
type: group_list
list_type: compact
default: "3|13" # 3: @staff, 13: @trust_level_3
automatic_topic_heat_values: true
# 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: 3500
# 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
max: 36500
client: true
cold_age_days_medium:
default: 90
max: 36500
client: true
cold_age_days_high:
default: 180
max: 36500
client: true
# Warnings
educate_until_posts: 2
sequential_replies_threshold: 2
get_a_room_threshold: 3
dont_feed_the_trolls_threshold: 2
dominating_topic_minimum_percent: 40
disable_avatar_education_message: false
pm_warn_user_last_seen_months_ago: 24
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
general_category_id:
default: -1
hidden: true
client: true
meta_category_id:
default: -1
hidden: true
staff_category_id:
default: -1
hidden: true
uncategorized_category_id:
default: -1
hidden: true
default_composer_category:
client: true
type: category
default: ""
validator: "DefaultComposerCategoryValidator"
notify_about_reviewable_item_after:
type: float
default: 48
use_site_small_logo_as_system_avatar:
default: true
enable_listing_suspended_users_on_search:
default: false
disable_system_edit_notifications: true
disable_category_edit_notifications:
default: false
disable_tags_edit_notifications:
default: false
notification_consolidation_threshold:
default: 3
min: 0
likes_notification_consolidation_window_mins:
default: 120
min: 1
linked_notification_consolidation_window_mins:
default: 120
min: 1
delete_drafts_older_than_n_days:
default: 180
max: 36500
delete_merged_stub_topics_after_days:
default: 7
min: -1
backup_drafts_to_pm_length:
default: 0
hidden: true
view_user_route:
default: "summary"
hidden: true
client: true
tos_topic_id:
default: -1
hidden: true
guidelines_topic_id:
default: -1
hidden: true
privacy_topic_id:
default: -1
hidden: true
welcome_topic_id:
default: -1
hidden: true
admin_quick_start_topic_id:
default: -1
hidden: true
client: 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_ios: false
native_app_install_banner_android: false
ios_app_id:
default: "1173672076"
hidden: true
android_app_id:
default: "com.discourse"
hidden: true
pwa_display_browser_regex:
default: "a^"
hidden: true
app_association_android:
default: ""
textarea: true
app_association_ios:
default: ""
textarea: true
share_anonymized_statistics: true
enable_powered_by_discourse:
default: true
client: true
auto_handle_queued_age:
default: 60
min: 0
penalty_step_hours:
default: "24|72|168|720"
type: "list"
list_type: "compact"
penalty_include_post_message:
default: false
client: true
svg_icon_subset:
default: ""
type: "list"
list_type: "compact"
client: true
always_include_topic_excerpts:
default: false
hidden: true
allow_bulk_invite:
default: true
client: true
max_bulk_invites:
default: 50000
hidden: true
skip_email_bulk_invites:
default: false
hidden: true
max_api_invites:
default: 200
hidden: true
overridden_robots_txt:
default: ""
hidden: true
show_category_definitions_in_topic_lists:
default: false
hidden: true
client: true
create_revision_on_bulk_topic_moves:
default: true
allow_changing_staged_user_tracking: false
use_polymorphic_bookmarks:
client: true
default: true
hidden: true
splash_screen:
default: true
suggest_weekends_in_date_pickers:
client: true
default: true
show_bottom_topic_map:
client: true
default: true
show_topic_map_in_topics_without_replies:
client: true
default: false
user_preferences:
default_email_digest_frequency:
enum: "DigestEmailSiteSetting"
default: 10080
default_include_tl0_in_digests: false
default_email_level:
enum: "EmailLevelSiteSetting"
default: 1
default_email_messages_level:
enum: "EmailLevelSiteSetting"
default: 0
default_email_mailing_list_mode: false
default_email_mailing_list_mode_frequency:
enum: "MailingListModeSiteSetting"
default: 1
disable_mailing_list_mode:
default: true
client: true
default_email_previous_replies:
enum: "PreviousRepliesSiteSetting"
default: 2
default_email_in_reply_to:
default: false
default_hide_profile_and_presence:
default: false
default_other_new_topic_duration_minutes:
enum: "NewTopicDurationSiteSetting"
default: 2880
default_other_auto_track_topics_after_msecs:
enum: "AutoTrackDurationSiteSetting"
default: 300000
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_enable_defer: false
default_other_dynamic_favicon: false
default_other_skip_new_user_tips: 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_categories_normal:
type: category_list
default: ""
mute_all_categories_by_default:
default: false
client: true
default_tags_watching:
type: tag_list
default: ""
default_tags_tracking:
type: tag_list
default: ""
default_tags_muted:
type: tag_list
default: ""
default_tags_watching_first_post:
type: tag_list
default: ""
default_text_size:
type: enum
default: normal
choices:
- smaller
- normal
- larger
- largest
default_title_count_mode:
type: enum
default: notifications
choices:
- notifications
- contextual
enable_offline_indicator:
default: false
client: true
default_sidebar_link_to_filtered_list: false
default_sidebar_show_count_of_new_items: false
api:
retain_web_hook_events_period_days:
default: 30
max: 36500
retain_web_hook_events_aggregate_days:
default: 720
max: 36500
retry_web_hook_events:
default: false
api_key_last_used_epoch:
default: "" # Value is added in a migration
hidden: true
revoke_api_keys_unused_days:
default: 180
max: 36500
revoke_api_keys_maxlife_days:
default: 0
max: 36500
hidden: true
user_api:
allow_user_api_key_scopes:
default: "read|write|message_bus|push|notifications|session_info|one_time_password"
type: list
push_api_secret_key:
default: ""
hidden: true
min_trust_level_for_user_api_key:
default: 0
enum: "TrustLevelSetting"
hidden: true
user_api_key_allowed_groups:
default: "1|2|10" # auto group admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
allowed_user_api_push_urls:
default: ""
type: list
hidden: true
allowed_user_api_auth_redirects:
default: "https://api.discourse.org/api/auth_redirect|discourse://auth_redirect"
type: list
revoke_user_api_keys_unused_days:
default: 180
max: 36500
revoke_user_api_keys_maxlife_days:
default: 0
max: 36500
hidden: true
tags:
tagging_enabled:
client: true
default: true
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
enable_max_tags_per_email_subject:
default: false
client: true
max_tags_per_email_subject:
default: 5
client: true
min: 0
max_tag_length:
default: 20
client: true
min_trust_to_create_tag:
default: "3"
type: enum
enum: "TrustLevelAndStaffSetting"
hidden: true
create_tag_allowed_groups:
default: "1|2|13" # auto group admins, moderators, trust_level_3
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
min_trust_level_to_tag_topics:
default: "0"
enum: "TrustLevelAndStaffSetting"
client: true
hidden: true
tag_topic_allowed_groups:
default: "1|2|10" # auto group admins, moderators, trust_level_0
mandatory_values: "1|2" # auto group admins, moderators
type: group_list
allow_any: false
refresh: true
client: true
max_tag_search_results:
client: true
default: 5
min: 1
max_tags_in_filter_list:
client: true
default: 30
min: 1
refresh: true
tags_sort_alphabetically:
client: true
default: false
refresh: true
tags_listed_by_group:
client: true
default: false
pm_tags_allowed_for_groups:
type: group_list
list_type: compact
default: ""
allow_any: false
refresh: true
suppress_overlapping_tags_in_list:
default: false
client: true
remove_muted_tags_from_latest:
client: true
type: enum
default: always
enum: RemoveMutedTagsFromLatestSiteSetting
watched_precedence_over_muted:
client: true
default: false
force_lowercase_tags:
default: true
client: true
automatically_clean_unused_tags:
default: false
dashboard:
dashboard_hidden_reports:
client: true
type: list
list_type: compact
default: ""
allow_any: true
dashboard_visible_tabs:
client: true
type: list
list_type: compact
default: "moderation|security|reports|features"
allow_any: false
choices:
- moderation
- security
- reports
- features
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
verbose_user_stat_count_logging:
hidden: true
default: false
hot_topics_gravity:
hidden: true
default: 1.2
hot_topics_recent_days:
hidden: true
default: 7
admin_allow_filter_untranslated_text:
hidden: true
default: false
client: true