rosscdh
(RossCdH)
7월 29, 2020, 1:20오후
1
안녕하세요,
우선 최고의 포럼 소프트웨어를 제공해 주셔서 감사합니다.
Docker 컨테이너로 실행 중인 Discourse를 다시 시작할 때 문제가 발생합니다. Discourse가 항상 자신을 다시 설치하려고 합니다.
저는 멀티 컨테이너 구성을 선택했습니다(기본적으로 더 나은 선택지입니다).
Discourse 컨테이너를 다시 시작하면 프로세스가 항상 자신을 다시 설치하려고 합니다.
데이터베이스가 이미 존재하는 것을 인식하고 즉시 사용 가능해지기를 기대했지만, 항상 재설치를 시도하며 ID 충돌에 대해 오류를 보고합니다.
재설치를 하지 않도록 설정할 수 있는 옵션이 있을까요?
미리 감사드립니다.
Stephen
(Stephen)
7월 29, 2020, 1:45오후
2
컨테이너를 재시작하는 방법을 설명해 주실 수 있나요?
rosscdh
(RossCdH)
7월 29, 2020, 2:12오후
3
스티븐, 안녕하세요.
다른 컨테이너를 재시작하듯, 도커로 디스커스를 재시작하면 됩니다.
pfaffman
(Jay Pfaffman)
7월 29, 2020, 2:13오후
4
두 컨테이너를 어떻게 생성하셨나요?
설치를 시도하는 것처럼 보이는 메시지는 무엇인가요?
rosscdh
(RossCdH)
7월 29, 2020, 2:15오후
5
안녕하세요,
여러분, 이건 도커(Docker)라서 다른 시작 방법은 많지 않습니다.
환경 변수(env vars) 세트가 있습니다.
nami INFO Initializing postgresql-client
nami INFO postgresql-client successfully initialized
nami INFO Initializing discourse
discour INFO Patching Discourse...
postgre INFO Trying to connect to PostgreSQL server
postgre INFO Found PostgreSQL server listening at postgres:5432
postgre INFO PostgreSQL server listening and working at postgres:5432
discour INFO Preparing Discourse environment...
discour INFO Configuring the Discourse database files...
discour INFO Configuring Redis...
discour INFO Setting up SMTP in Discourse...
discour INFO Configuring Discourse database...
discour INFO Enabling PostgreSQL plugins for Discourse...
discour INFO Migrating database...
discour INFO Creating the Discourse admin user...
discour INFO Configuring your Discourse installation...
Error executing 'postInstallation': ERROR: duplicate key value violates unique constraint "index_site_settings_on_name"
DETAIL: Key (name)=(site_contact_username) already exists.
그래서 데이터베이스는 존재하는데, 어떤 이유로인지 Discourse가 다시 설치하려고 하는 것 같습니다. 그리고 질문은 이런 일이 일어나지 않도록 방지하는 방법이 무엇인지입니다.
환경 변수가 있을까요? (시스템이 데이터베이스와 설정이 이미 존재하는 것을 알아차릴 것으로 기대했는데요?)
rosscdh
(RossCdH)
7월 29, 2020, 2:19오후
8
네, '공식 솔루션’은 실제로는 도커를 잘 활용하지 않고 사용자 지정 스크립트에 너무 많이 의존하거든요. 그래서 이거 지원 안 받을 것 같은데 ㅋㅋ..
Stephen
(Stephen)
7월 29, 2020, 2:20오후
9
bitnami 이미지는 지원되지 않습니다. 이 이미지를 사용하려면 해당 업체에 직접 문의해야 합니다.
또한 이미지가 매우 오래되었습니다.
rosscdh
(RossCdH)
7월 29, 2020, 2:21오후
10
알겠습니다… 멀티 컨테이너 솔루션에 대한 docker-compose가 있나요?
rosscdh
(RossCdH)
7월 29, 2020, 2:26오후
11
스티븐, 죄송하지만 대신 공식 이미지를 사용하고 싶습니다;
discourse/base - Docker Image 이걸로 대신 사용해도 될까요?
rosscdh
(RossCdH)
7월 29, 2020, 2:36오후
12
@Stephen 환경 변수 목록이 어딘가에 있나요?
DISCOURSE_ 접두사가 붙은 설정 파일 값들이겠군요.
?
# 사용 가능한 옵션:
#
# default - 설정의 기본값. 업로드 사이트 설정의 경우, db/fixtures/010_uploads.rb에서 시드된 업로드의 id를 사용합니다.
# client - 자바스크립트가 이 설정의 값에 접근할 수 있도록 하려면 true로 설정합니다.
# refresh - 설정이 변경될 때 클라이언트가 새로고침하도록 하려면 true로 설정합니다.
# min - 문자열 설정의 경우, 최소 길이. 정수 설정의 경우, 최소값.
# max - 문자열 설정의 경우, 최대 길이. 정수 설정의 경우, 최대값.
# regex - 값이 일치해야 하는 정규식.
# validator - 설정 값을 검증하는 데 사용되는 클래스의 이름.
# allow_any - 선택 설정에서 선택 목록에 지정되지 않은 항목을 허용 (기본값 true)
# secret - 입력 유형이 비밀번호여야 하고 값이 로그에서 마스킹되어야 하면 true로 설정합니다 (기본값 false).
# enum - 설정은 허용된 값의 고정 집합을 가지며, 하나만 선택할 수 있습니다.
# 집합을 정의하는 클래스 이름으로 설정합니다.
# locale_default - `SiteSetting.default_locale`에 따라 오버라이드하는 해시.
# 키는 default_locale의 가능한 값과 동일해야 합니다.
#
#
# type: email - 유효한 이메일 주소여야 합니다.
# type: username - 기존 사용자의 사용자명과 일치해야 합니다.
# type: list - choices 옵션에서 정의된 유효한 값의 집합에서 선택된 값의 목록.
# type: enum - choices 옵션에서 정의된 유효한 값의 집합에서 선택된 단일 값.
#
# 이름에 'colors'라는 단어가 포함된 type:list 설정은 색상 값에 해당 색상의 굵은 줄을 표시합니다.
#
required:
title:
client: true
default: "Discourse"
site_description:
default: ""
short_site_description:
default: ""
client: true
contact_email:
client: true
default: ""
type: email
contact_url:
client: true
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:
default: ""
type: list
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
large_icon:
default: ""
client: true
type: upload
manifest_icon:
default: ""
type: upload
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
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_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: "read|like|share|flag|edit|bookmark|delete|admin|reply"
allow_any: false
choices:
- read
- 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
max_category_nesting:
client: true
default: 2
min: 2
max: 3
hidden: true
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
enable_bookmarks_with_reminders:
client: true
default: true
hidden: true
push_notifications_prompt:
default: true
client: true
push_notifications_icon:
default: ""
type: upload
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
login:
invite_only:
refresh: true
client: true
default: false
validator: "EnableInviteOnlyValidator"
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"
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_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-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
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"
client: true
sso_overrides_username: false
sso_overrides_name: false
sso_overrides_avatar:
default: false
client: true
sso_overrides_profile_background: false
sso_overrides_location: false
sso_overrides_website: false
sso_overrides_card_background: false
sso_not_approved_url: ""
email_domains_blacklist:
default: "mailinator.com"
type: list
email_domains_whitelist:
default: ""
type: list
auto_approve_email_domains:
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"
unicode_usernames:
default: false
client: true
validator: "UnicodeUsernameValidator"
unicode_username_character_whitelist:
validator: "UnicodeUsernameWhitelistValidator"
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|hp"
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
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
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
allow_featured_topic_on_user_profiles:
default: true
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
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
gravatar_name:
default: Gravatar
client: true
gravatar_base_url:
default: www.gravatar.com
client: true
gravatar_login_url:
default: /emails
client: true
groups:
enable_group_directory:
client: true
default: true
group_in_subject:
default: false
enable_category_group_review:
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_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_remove_extraneous_space:
default: false
locale_default:
en: true
en_US: 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: true
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_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: 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
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
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: 100
newuser_max_replies_per_topic: 3
newuser_max_mentions_per_post: 2
title_max_word_length:
default: 30
locale_default:
ja: 50
ko: 50
zh_CN: 50
zh_TW: 50
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
topic_excerpt_maxlength:
default: 220
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
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: "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
show_copy_button_on_codeblocks:
client: true
default: false
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_suspect_users:
default: true
approve_unless_staged:
default: false
notify_about_queued_posts_after:
default: 24
auto_close_messages_post_count:
default: 500
auto_close_topics_post_count:
default: 10000
code_formatting_style:
client: true
type: enum
default: "4-spaces-indent"
choices:
- 4-spaces-indent
- code-fences
embed_any_origin: false
embed_topics_list: false
embed_set_canonical_url: false
embed_unlisted: false
embed_truncate: true
embed_support_markdown: false
embed_whitelist_selector: ""
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
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
enable_page_publishing:
default: false
show_published_pages_login_required:
default: false
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
max: 36500
digest_suppress_categories:
type: category_list
default: ""
disable_digest_emails:
default: false
client: true
apply_custom_styles_to_digest: true
email_accent_bg_color:
type: color
default: "#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
strip_incoming_email_lines: false
email_in:
default: false
client: true
email_in_min_trust:
default: 2
enum: "TrustLevelSetting"
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
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
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_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
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
forwarded_emails_behaviour:
type: enum
default: hide
choices:
- hide
- quote
- create_replies
always_show_trimmed_content: false
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
post_excerpts_in_emails: false
raw_email_max_length: 220000
raw_rejected_email_max_length: 4000
delete_rejected_email_after_days:
default: 90
max: 36500
enable_secondary_emails:
client: true
default: true
hidden: true
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|js"
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: "zip"
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
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
max: 36500
prevent_anons_from_downloading_files:
default: false
client: true
secure_media:
default: false
client: true
enable_s3_uploads:
default: false
client: 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\-\/_]+$' # 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_configure_tombstone_policy:
default: true
enable_s3_inventory:
default: false
s3_configure_inventory_policy:
default: true
hidden: 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
validator: "ExternalSystemAvatarsValidator"
external_system_avatars_url:
default: "/letter_avatar_proxy/v4/letter/{first_letter}/{color}/{size}.png"
client: true
regex: '^((https?:)?\/)?\/.+[^\/]'
restrict_letter_avatar_colors:
default: ""
type: list
list_type: compact
validator: "ColorListValidator"
selectable_avatars_enabled:
default: false
client: true
validator: "SelectableAvatarsEnabledValidator"
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 # 18:9의 90%
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
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
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
trusted_users_can_edit_others:
default: true
security:
detailed_404: false
enforce_second_factor:
client: true
type: enum
default: "no"
choices:
- "no"
- "staff"
- "all"
force_https:
default: {{ config | traverse("force_https", False) }}
same_site_cookies:
default: Lax
type: enum
choices:
- Lax
- Strict
- Disabled
- None
regex: "^(Lax|Strict|Disabled|None)$"
enable_escaped_fragments: true
allow_index_in_robots_txt: true
moderators_create_categories: 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"
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
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|blexbot|seo spider"
list_type: compact
slow_down_crawler_user_agents:
type: list
default: "bingbot"
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
content_security_policy_script_src:
type: simple_list
default: ""
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
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
force_custom_user_agent_hosts:
default: "http://codepen.io"
type: list
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
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
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: 0
auto_silence_first_post_regex: ""
high_trust_flaggers_auto_hide_posts: true
cooldown_hours_until_reflag:
default: 24
min: 0
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"
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
rate_limit_search_anon:
hidden: true
default: 15
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_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
default: 0
alert_admins_if_errors_per_hour:
client: 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
invite_link_max_redemptions_limit:
min: 2
max: 1000000
default: 5000
client: true
developer:
force_hostname:
hidden: true
default: ""
port:
hidden: true
default: ""
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: 30000
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:
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:
embed_by_username:
default: ""
type: username
hidden: true
embed_post_limit:
default: 100
hidden: true
embed_title_scrubber:
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
client: true
allow_restore:
default: false
backup_location:
default: "local"
type: enum
enum: "BackupLocationSiteSetting"
client: true
maximum_backups:
client: true
default: 5
automatic_backups_enabled:
default: true
backup_frequency:
min: 1
max: 30
default: 7
s3_backup_bucket:
default: ""
regex: '^[a-z0-9\-\/]+$' # HTTPS 사용 시 '.'를 사용할 수 없습니다
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
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년
max: 1825 # 5년
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_very_low_weight:
default: 0.6
hidden: true
validator: "CategorySearchPriorityWeightsValidator"
category_search_priority_low_weight:
default: 0.8
hidden: true
validator: "CategorySearchPriorityWeightsValidator"
category_search_priority_high_weight:
default: 1.2
hidden: true
validator: "CategorySearchPriorityWeightsValidator"
category_search_priority_very_high_weight:
default: 1.4
hidden: true
validator: "CategorySearchPriorityWeightsValidator"
uncategorized:
version_checks:
client: true
default: 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"
client: true
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_score_threshold: 15
summary_posts_required: 50
summary_likes_required: 1
summary_percent_filter: 20
summary_max_results: 100
automatic_topic_heat_values: true
# 뷰 열기 임계값
topic_views_heat_low:
client: true
default: 1000
topic_views_heat_medium:
client: true
default: 2000
topic_views_heat_high:
client: true
default: 3500
# 게시글/좋아요 열기 임계값
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_hours_low:
client: true
default: 12
history_hours_medium:
client: true
default: 24
history_hours_high:
client: true
default: 48
# 콜드 맵 임계값
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
# 경고
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
# 이 임계값 이후의 것은 결코 새로움으로 간주되지 않습니다
# 15분마다 동적으로 계산됩니다
min_new_topics_time:
default: 0
hidden: true
# 카테고리 ID
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_system_edit_notifications: true
notification_consolidation_threshold:
default: 3
min: 0
likes_notification_consolidation_window_mins:
default: 120
min: 1
delete_drafts_older_than_n_days:
default: 180
max: 36500
backup_drafts_to_pm_length:
default: 0
hidden: 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
lounge_welcome_topic_id:
default: -1
hidden: true
admin_quick_start_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_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
auto_handle_queued_age:
default: 60
min: 0
svg_icon_subset:
default: ""
type: "list"
list_type: "compact"
client: true
always_include_topic_excerpts:
default: false
hidden: true
max_bulk_invites:
default: 50000
hidden: true
overridden_robots_txt:
default: ""
hidden: true
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: false
client: true
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_enable_defer: false
default_other_dynamic_favicon: 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: ""
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
api:
retain_web_hook_events_period_days:
default: 30
max: 36500
retry_web_hook_events:
default: false
api_key_last_used_epoch:
default: "" # 값은 마이그레이션에서 추가됩니다
hidden: true
revoke_api_keys_days:
default: 180
max: 36500
user_api:
allow_user_api_keys:
default: true
allow_user_api_key_scopes:
default: "read|write|message_bus|push|notifications|session_info|one_time_password"
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
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
max: 36500
tags:
tagging_enabled:
client: true
default: false
refresh: true
tag_style:
client: true
type: enum
default: "simple"
choices:
- simple
- bullet
- box
{% raw %}
preview: '<div class="discourse-tags"><span class="discourse-tag {{value}}">tag1</span><span class="discourse-tag {{value}}">tag2</span></div>'
{% endraw %}
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:
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
allow_staff_to_tag_pms:
default: false
suppress_overlapping_tags_in_list:
default: false
client: true
remove_muted_tags_from_latest:
client: true
type: enum
default: always
enum: RemoveMutedTagsFromLatestSiteSetting
force_lowercase_tags:
default: true
client: true
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"
allow_any: false
choices:
- moderation
- security
- reports
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
rosscdh
(RossCdH)
7월 29, 2020, 2:38오후
13
rosscdh:
DISCOURSE_
솔직히 말해서, 설정 파일과 그 설정값을 마운트하는 방식으로 처리할 것 같습니다.
rosscdh
(RossCdH)
7월 29, 2020, 2:51오후
14
이 런처를 정말 좋아하신다는 건 알겠어요. 근데; docker-compose라는 게 있잖아요? 이미 백 번쯤 언급된 거라고 알고 있고, 제가 보기엔 여러분한테 아주 잘 작동하고 있는 것 같긴 해요 하지만 docker를 어떻게 다루는지 아는 docker 개발자들이 꽤 많은 세계가 있거든요… docker-compose 예제가 하나 있으면 정말 좋겠어요
fzngagan
(Faizaan Gagan)
7월 29, 2020, 2:54오후
15
discoursey를 더 선호하고 dockery는 덜 지원하는 쪽으로 가기를 제안합니다. 왜 이런 방식으로 진행되었는지를 이해할 수 있도록 많은 논의가 이루어졌습니다.
rosscdh
(RossCdH)
7월 29, 2020, 2:58오후
16
음, 아니야. 도커는 앱을 실행하는 표준 방식이니까. 그걸 맞춤 스크립트 같은 것에 감싸는 건.. 차를 다시 발명하는 거랑 비슷해.
docker-compose는 중간 규모의 서비스 제공업체에게 넘겨줄 수 있는 런북(runbook)이야. 그들은 그걸로 뭘 해야 하는지 알고 있어. 또한 saltstack 같은 도구와도 완벽하게 통합되는데, 스크립트는 그렇지 않아..
물론 왜 그랬는지 이해는 해. 그 스크립트는 도커가 신선했던 몇 년 전에 만들어졌으니까.. 그리고 앞서 말했듯이 지원팀에게 큰 도움이 되는 도구임은 분명해…
또한 쿠버네티스로 넘어가게 되면; 음.. 그건 흥미로울 거야.
이미 주변을 둘러보면 discourse용 helm 차트와 docker-compose를 만드는 사람들이 수없이 많아.. 적어도 그 부분에 대한 최소한의 지원이라도 있으면 좋겠어..
하지만 괜찮아.. 나는 이제 런처를 사용 중이고, 거기서 필요한 것들을 추출해서 쓸 거야
fzngagan
(Faizaan Gagan)
7월 29, 2020, 3:00오후
17
rosscdh
(RossCdH)
7월 29, 2020, 3:03오후
18
알려주셔서 감사합니다. 읽어보겠습니다.
하지만 알아두면 중요한 점은, 더 이상 도커가 낯선 기술이 아니라는 것입니다. 그리고 이를 제대로 지원하지 않으면 더 큰 조직들이 이를 고려하지 않게 될 수 있습니다.
모두 잘 되고 있으니, 좋은 일 계속하시고 열정에 감사드립니다.
Stephen
(Stephen)
7월 29, 2020, 5:46오후
19
그건 사실이 아닙니다. Discourse는 인터넷에서 가장 큰 커뮤니티 중 몇 곳에서 사용되고 있습니다.
큰 조직들은 숟가락으로 떠먹여 주는 패키지 형태를 원하지 않는 기술 인력을 고용하거나, CDCK 같은 회사에 아웃소싱하는 것을 선호합니다.
중간 규모는 물론 큰 커뮤니티를 위한 표준 설치 과정에 문제가 있는 것은 아닙니다. Launcher가 Docker와 어떻게 상호작용하는지 알고 싶다면, 이를 파고들 수 있는 소스 코드가 있습니다.