rosscdh
(RossCdH)
Julho 29, 2020, 1:20pm
1
Olá,
Primeiramente, obrigado pelo melhor software de fórum disponível.
Tenho um problema ao reiniciar um contêiner Docker executando o Discourse; ele sempre tenta se reinstalar.
Optei pela configuração de múltiplos contêineres (é melhor por padrão).
Ao reiniciar o contêiner do Discourse, o processo sempre tenta se reinstalar.
Eu esperava que ele identificasse que o banco de dados já existe e ficasse disponível; no entanto, ele sempre tenta reinstalar e reclama sobre IDs conflitantes.
Existe alguma configuração que possa ser definida para impedir que ele se reinstale?
Obrigado antecipadamente.
Stephen
(Stephen)
Julho 29, 2020, 1:45pm
2
Você pode explicar como você está tentando reiniciar o container?
rosscdh
(RossCdH)
Julho 29, 2020, 2:12pm
3
Olá, Stephen,
assim como faria com qualquer outro container, execute docker restart discourse
pfaffman
(Jay Pfaffman)
Julho 29, 2020, 2:13pm
4
Como você criou os dois containers?
Qual mensagem você recebe que parece estar tentando instalar?
rosscdh
(RossCdH)
Julho 29, 2020, 2:15pm
5
E aí,
pessoal, como é Docker, não há muitas outras formas de iniciar.
Ele tem um conjunto de variáveis de ambiente:
nami INFO Inicializando postgresql-client
nami INFO postgresql-client inicializado com sucesso
nami INFO Inicializando discourse
discour INFO Aplicando patches no Discourse...
postgre INFO Tentando conectar ao servidor PostgreSQL
postgre INFO Servidor PostgreSQL encontrado ouvindo em postgres:5432
postgre INFO Servidor PostgreSQL ouvindo e funcionando em postgres:5432
discour INFO Preparando o ambiente do Discourse...
discour INFO Configurando os arquivos de banco de dados do Discourse...
discour INFO Configurando o Redis...
discour INFO Configurando o SMTP no Discourse...
discour INFO Configurando o banco de dados do Discourse...
discour INFO Habilitando plugins PostgreSQL para o Discourse...
discour INFO Migrando banco de dados...
discour INFO Criando o usuário administrador do Discourse...
discour INFO Configurando sua instalação do Discourse...
Erro ao executar 'postInstallation': ERRO: valor de chave duplicado viola a restrição de unicidade "index_site_settings_on_name"
DETALHE: A chave (name)=(site_contact_username) já existe.
Então, o banco de dados está presente, mas, por algum motivo, o Discourse tenta se instalar novamente… e a pergunta é: como evitar que isso aconteça?
Existe alguma variável de ambiente? (Eu esperaria que o sistema detectasse que há um banco de dados e uma configuração presentes?)
Stephen
(Stephen)
Julho 29, 2020, 2:17pm
6
Você está usando o Bitnami?
pfaffman
(Jay Pfaffman)
Julho 29, 2020, 2:17pm
7
Como você criou os containers?
rosscdh
(RossCdH)
Julho 29, 2020, 2:19pm
8
Sim, como a “solução oficial” não é realmente dockery e depende demais de scripts personalizados. Imagino que isso não receba suporte, rs.
Stephen
(Stephen)
Julho 29, 2020, 2:20pm
9
A imagem do Bitnami não é suportada. Se você deseja usá-la, precisará entrar em contato com eles.
Além disso, ela está muito desatualizada.
rosscdh
(RossCdH)
Julho 29, 2020, 2:21pm
10
justo,… existe um docker-compose para a solução multi-container?
rosscdh
(RossCdH)
Julho 29, 2020, 2:26pm
11
Desculpe, Stephen, adoraria usar as imagens oficiais em vez disso;
discourse/base - Docker Image Vou começar a usar esta?
rosscdh
(RossCdH)
Julho 29, 2020, 2:36pm
12
@Stephen existe uma lista de variáveis de ambiente em algum lugar?
Acho que são apenas o arquivo de configuração com o prefixo DISCOURSE_
?
# Opções disponíveis:
#
# default - O valor padrão da configuração. Para configurações de upload do site, use o id do upload semeado em db/fixtures/010_uploads.rb.
# client - Defina como true se o javascript deve ter acesso ao valor desta configuração.
# refresh - Defina como true se os clientes devem atualizar quando a configuração for alterada.
# min - Para uma configuração de string, o comprimento mínimo. Para uma configuração de inteiro, o valor mínimo.
# max - Para uma configuração de string, o comprimento máximo. Para uma configuração de inteiro, o valor máximo.
# regex - Uma regex que o valor deve corresponder.
# validator - O nome da classe que será usada para validar o valor da configuração.
# allow_any - Para configurações de escolha, permite itens não especificados na lista de escolhas (padrão true)
# secret - Defina como true se o tipo de entrada deve ser senha e o valor precisa ser removido dos logs (padrão false).
# enum - A configuração tem um conjunto fixo de valores permitidos, e apenas um pode ser escolhido.
# Defina para o nome da classe que define o conjunto.
# locale_default - Um hash que substitui de acordo com `SiteSetting.default_locale`.
# A chave deve ser a mesma que o possível valor de default_locale.
#
#
# type: email - Deve ser um endereço de email válido.
# type: username - Deve corresponder ao nome de usuário de um usuário existente.
# type: list - Uma lista de valores, escolhidos a partir de um conjunto de valores válidos definidos na opção choices.
# type: enum - Um único valor, escolhido a partir de um conjunto de valores válidos na opção choices.
#
# Uma configuração type:list com a palavra 'colors' em seu nome fará com que os valores de cor tenham uma linha grossa da cor correspondente
#
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\-\/_]+$' # 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_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 # 90% of 18:9
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
segurança:
detalhado_404: false
aplicar_segundo_fator:
cliente: true
tipo: enum
padrão: "não"
opções:
- "não"
- "staff"
- "todos"
forçar_https:
padrão: {{ config | traverse("force_https", False) }}
cookies_same_site:
padrão: Lax
tipo: enum
opções:
- Lax
- Strict
- Disabled
- None
regex: "^(Lax|Strict|Disabled|None)$"
habilitar_fragmentos_escapados: true
permitir_indexação_no_robots_txt: true
moderadores_criam_categorias: false
moderadores_veem_emails:
cliente: true
padrão: false
agentes_de_usuário_não_rastejadores:
oculto: true
padrão: "trident|webkit|gecko|chrome|safari|msie|opera|goanna|discourse"
tipo: lista
tipo_lista: compacta
agentes_de_usuário_rastejadores:
oculto: true
padrão: "rss|bot|spider|crawler|facebook|archive|wayback|ping|monitor|lighthouse"
tipo: lista
tipo_lista: compacta
agentes_de_bypass_de_verificação_de_rastejadores:
oculto: true
padrão: "cubot"
origens_cors:
padrão: ""
tipo: lista
usar_lista_branca_de_ips_admin:
padrão: false
cliente: true
blocos_de_ip_na_lista_negra:
padrão: ""
tipo: lista
tipo_lista: compacta
hosts_internos_na_lista_branca:
padrão: ""
tipo: lista
iframes_permitidos:
padrão: "https://www.google.com/maps/embed?|https://www.openstreetmap.org/export/embed.html?|https://calendar.google.com/calendar/embed?|https://codepen.io/"
tipo: lista
cliente: true
agentes_de_usuário_rastejadores_na_lista_branca:
tipo: lista
padrão: ""
tipo_lista: compacta
agentes_de_usuário_rastejadores_na_lista_negra:
tipo: lista
padrão: "mauibot|semrushbot|ahrefsbot|blexbot|seo spider"
tipo_lista: compacta
agentes_de_usuário_rastejadores_lentos:
tipo: lista
padrão: "bingbot"
tipo_lista: compacta
taxa_de_rastejadores_lentos: 60
política_de_segurança_de_conteúdo:
padrão: true
política_de_segurança_de_conteúdo_apenas_relatório:
padrão: false
coletar_relatórios_de_política_de_segurança_de_conteúdo:
padrão: false
origem_de_script_de_política_de_segurança_de_conteúdo:
tipo: lista_simples
padrão: ""
invalidar_email_de_admin_inativo_após_dias:
padrão: 365
min: 0
max: 36500
permitir_incorporação_do_site_em_um_iframe:
padrão: false
oculto: true
enviar_lembrete_de_credenciais_antigas_dias:
padrão: 0
oculto: true
onebox:
habilitar_onebox_de_vídeo_flash: false
comprimento_máximo_do_onebox_do_post:
padrão: 500
padrão_local:
ja: 200
zh_CN: 200
zh_TW: 200
lista_negra_de_domínios_onebox:
padrão: ""
tipo: lista
tipo_lista: compacta
oneboxes_máximos_por_post:
padrão: 50
cliente: true
lista_branca_de_domínios_onebox_inline:
padrão: ""
tipo: lista
tipo_lista: compacta
habilitar_onebox_inline_em_todos_os_domínios:
padrão: false
forçar_hosts_de_agente_de_usuário_personalizado:
padrão: "http://codepen.io"
tipo: lista
spam:
adicionar_rel_nofollow_ao_conteúdo_do_usuário: true
sensibilidade_de_esconder_post:
tipo: enum
enum: "ReviewableSensitivitySetting"
padrão: 6
cooldown_minutos_após_esconder_posts: 10
sensibilidade_de_silenciar_novo_usuário:
tipo: enum
enum: "ReviewableSensitivitySetting"
padrão: 3
número_de_usuários_para_silenciar_novo_usuário: 3
notificar_mods_quando_usuário_silenciado: false
sinalizar_sockpuppets: false
limite_de_host_de_spam_para_novo_usuário: 3
domínios_de_host_de_spam_na_lista_branca:
padrão: ""
tipo: lista
distância_levenshtein_emails_de_spammer:
padrão: 2
max: 3
contas_novas_máximas_por_ip_de_registro: 3
entradas_mínimas_de_banimento_para_agrupamento: 5
idade_máxima_de_emails_não_combinados: 365
idade_máxima_de_ips_não_combinados: 365
número_de_sinalizadores_para_fechar_tópico: 5
sensibilidade_de_fechamento_automático_de_tópico:
tipo: enum
enum: "ReviewableSensitivitySetting"
padrão: 9
horas_para_fechar_tópico:
padrão: 4
min: 1
responder_automaticamente_a_acções_de_sinalização: true
tempo_mínimo_de_digitacao_do_primeiro_post: 3000
silenciar_automaticamente_digitadores_rápidos_no_primeiro_post: true
nível_de_confiança_máximo_para_silenciar_digitadores_rápidos: 0
regex_de_silenciamento_automático_do_primeiro_post: ""
sinalizadores_de_alta_confiança_escondem_posts_automaticamente: true
cooldown_horas_até_nova_sinalização:
padrão: 24
min: 0
reivindicacao_revisavel:
cliente: true
tipo: enum
padrão: desabilitado
opções:
- desabilitado
- opcional
- obrigatório
tópicos_revisaveis_padrão:
padrão: false
cliente: true
visibilidade_revisavel_padrão:
cliente: true
tipo: enum
padrão: baixa
enum: "ReviewablePrioritySetting"
limites_de_taxa:
minutos_de_posts_únicos: 5
limite_de_taxa_de_criacao_de_tópico: 15
limite_de_taxa_de_criacao_de_post: 5
limite_de_taxa_de_novo_usuário_criando_tópico: 120
limite_de_taxa_de_novo_usuário_criando_post: 30
limite_de_taxa_de_busca_anon:
oculto: true
padrão: 15
limite_de_taxa_de_busca_usuário:
oculto: true
padrão: 30
tópicos_máximos_por_dia: 20
mensagens_pessoais_máximas_por_dia: 20
curtidas_máximas_por_dia: 50
favoritos_máximos_por_dia: 20
sinalizações_máximas_por_dia: 20
edições_máximas_por_dia: 30
convites_máximos_por_dia: 10
convites_de_tópico_máximos_por_dia: 30
tópicos_máximos_no_primeiro_dia: 3
respostas_máximas_no_primeiro_dia: 10
multiplicador_de_curtidas_adicionais_por_dia_tl2: 1.5
multiplicador_de_curtidas_adicionais_por_dia_tl3: 2
multiplicador_de_curtidas_adicionais_por_dia_tl4: 3
alertar_admins_se_erros_por_minuto:
cliente: true
padrão: 0
alertar_admins_se_erros_por_hora:
cliente: true
padrão: 0
impressões_máximas_por_hora_por_usuário:
padrão: 5
cliente: true
logins_máximos_por_ip_por_hora:
min: 1
padrão: 30
logins_máximos_por_ip_por_minuto:
min: 1
padrão: 6
deleções_de_post_máximas_por_minuto:
min: 1
padrão: 2
deleções_de_post_máximas_por_dia:
min: 1
padrão: 10
limite_de_redenção_de_link_de_convite:
min: 2
max: 1000000
padrão: 5000
cliente: true
desenvolvedor:
forçar_hostname:
oculto: true
padrão: ""
porta:
oculto: true
padrão: ""
habilitar_long_polling:
cliente: true
padrão: true
intervalo_de_long_polling:
padrão: 25000
max: 25000
url_base_de_long_polling:
cliente: true
padrão: "/"
intervalo_de_background_polling:
cliente: true
padrão: 60000
max: 99000
intervalo_de_polling:
cliente: true
padrão: 3000
max: 99000
intervalo_de_anon_polling:
cliente: true
padrão: 30000
max: 99000
segundos_de_flush_de_timings:
cliente: true
padrão: 60
segundos_de_limite_de_taxa_de_usuário_ativo: 60
localização_verbose:
padrão: false
cliente: true
multiplicador_de_visualizações_de_log_da_fórmula_de_tópicos_top:
padrão: 2
multiplicador_de_curtidas_do_primeiro_post_da_fórmula_de_tópicos_top:
padrão: 0.5
multiplicador_de_menos_curtidas_por_post_da_fórmula_de_tópicos_top:
padrão: 3
contagem_de_posts_antigos_para_rebake:
padrão: 80
min: 1
migrar_para_novo_esquema:
oculto: true
padrão: false
tópicos_novos_máximos:
padrão: 500
cliente: true
oculto: true
assistente_habilitado:
padrão: true
oculto: true
ignorar_verificação_do_assistente:
padrão: false
oculto: true
provedor_de_logging:
oculto: true
padrão: "default"
tipo: "lista"
opções:
- "default"
- "lograge"
páginas_de_erro_bootstrap:
oculto: true
padrão: false
habilitar_modo_seguro:
padrão: true
cliente: true
incorporação:
incorporar_por_nome_de_usuário:
padrão: ""
tipo: nome_de_usuário
oculto: true
limite_de_post_de_incorporação:
padrão: 100
oculto: true
limpador_de_título_de_incorporação:
padrão: ""
oculto: true
seletor_de_lista_negra_de_incorporação:
padrão: ""
oculto: true
lista_branca_de_classname_de_incorporação:
padrão: "emoji"
oculto: true
legal:
url_de_tos:
cliente: true
padrão: ""
url_de_política_de_privacidade:
cliente: true
padrão: ""
url_de_faq:
cliente: true
padrão: ""
detalhes_do_anonimizador_de_logs:
padrão: true
backups:
habilitar_backups:
padrão: true
cliente: true
permitir_restauração:
padrão: false
localização_do_backup:
padrão: "local"
tipo: enum
enum: "BackupLocationSiteSetting"
cliente: true
backups_máximos:
cliente: true
padrão: 5
backups_automáticos_habilitados:
padrão: true
frequência_do_backup:
min: 1
max: 30
padrão: 7
bucket_s3_do_backup:
padrão: ""
regex: '^[a-z0-9\-\/]+$' # não pode usar '.' quando usando HTTPS
desativar_limpeza_s3:
padrão: false
hora_do_dia_do_backup:
padrão: "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_com_uploads: true
nível_de_compressão_gzip_para_uploads_no_backup:
padrão: 1
min: 1
max: 9
incluir_thumbnails_nos_backups:
padrão: false
incluir_uploads_s3_nos_backups:
padrão: false
oculto: true
busca:
comprimento_mínimo_do_termo_de_busca:
cliente: true
padrão: 3
padrão_local:
zh_CN: 2
zh_TW: 2
ko: 2
ja: 2
tokenizar_busca_chinês_japonês_coreano: false
preferir_posts_recentes_na_busca: false
tamanho_de_posts_recentes_na_busca:
padrão: 100000
max: 100000
registrar_queries_de_busca:
cliente: true
padrão: true
tamanho_máximo_do_log_de_queries_de_busca:
padrão: 1000000
max: 1000000
dias_máximos_de_retenção_do_log_de_queries_de_busca:
padrão: 365 # 1 ano
max: 1825 # 5 anos
ignorar_acentos_na_busca:
padrão: false
padrão_local:
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
peso_de_prioridade_de_busca_de_categoria_muito_baixo:
padrão: 0.6
oculto: true
validador: "CategorySearchPriorityWeightsValidator"
peso_de_prioridade_de_busca_de_categoria_baixo:
padrão: 0.8
oculto: true
validador: "CategorySearchPriorityWeightsValidator"
peso_de_prioridade_de_busca_de_categoria_alto:
padrão: 1.2
oculto: true
validador: "CategorySearchPriorityWeightsValidator"
peso_de_prioridade_de_busca_de_categoria_muito_alto:
padrão: 1.4
oculto: true
validador: "CategorySearchPriorityWeightsValidator"
não_categorizado:
verificações_de_versão:
cliente: true
padrão: true
emails_de_nova_versão: true
enviar_mensagem_de_boas_vindas: true
suprimir_badge_de_não_categorizado:
cliente: true
padrão: true
contagem_de_categorias_no_dropdown_do_cabeçalho:
cliente: true
padrão: 8
método_de_geração_de_slug:
padrão: "ascii"
enum: "SlugSetting"
cliente: true
padrão_local:
ja: "none"
zh_CN: "none"
zh_TW: "none"
normalizações_de_permalink:
padrão: ""
tipo: lista
resultados_similares_máximos: 5
tópicos_similares_mínimos: 50
horas_de_tempo_limite_de_visita_anterior: 1
peso_de_curtida_de_staff: 3
horas_de_duração_de_visualização_de_tópico: 8
horas_de_duração_de_visualização_de_perfil_de_usuário: 8
# Modo resumo
limite_de_pontuação_de_resumo: 15
posts_necessários_para_resumo: 50
curtidas_necessárias_para_resumo: 1
filtro_de_porcentagem_de_resumo: 20
resultados_máximos_de_resumo: 100
valores_de_calor_de_tópico_automáticos: true
# Limites de calor de visualização
calor_de_visualização_de_tópico_baixo:
cliente: true
padrão: 1000
calor_de_visualização_de_tópico_médio:
cliente: true
padrão: 2000
calor_de_visualização_de_tópico_alto:
cliente: true
padrão: 3500
# Limites de calor de post/curtida
calor_de_curtida_de_post_de_tópico_baixo:
cliente: true
padrão: 0.5
calor_de_curtida_de_post_de_tópico_médio:
cliente: true
padrão: 1.0
calor_de_curtida_de_post_de_tópico_alto:
cliente: true
padrão: 2.0
# Limites de calor de edição de histórico
horas_de_historico_baixo:
cliente: true
padrão: 12
horas_de_historico_médio:
cliente: true
padrão: 24
horas_de_historico_alto:
cliente: true
padrão: 48
# Limites de mapa frio
dias_de_idade_fria_baixo:
padrão: 14
max: 36500
cliente: true
dias_de_idade_fria_médio:
padrão: 90
max: 36500
cliente: true
dias_de_idade_fria_alto:
padrão: 180
max: 36500
cliente: true
# Avisos
educar_até_posts: 2
limite_de_respostas_sequenciais: 2
limite_de_get_a_room: 3
porcentagem_mínima_de_tópico_dominante: 20
desabilitar_mensagem_de_educacao_de_avatar: false
aviso_global:
padrão: ""
cliente: true
tem_dica_de_login:
padrão: false
oculto: true
# Nada além deste limite é considerado novo
# isso é calculado dinamicamente a cada 15 minutos
tempo_mínimo_de_tópicos_novos:
padrão: 0
oculto: true
# IDs de Categoria
id_de_categoria_lounge:
padrão: -1
oculto: true
id_de_categoria_meta:
padrão: -1
oculto: true
id_de_categoria_staff:
padrão: -1
oculto: true
id_de_categoria_não_categorizado:
padrão: -1
oculto: true
notificar_sobre_sinalizações_após: 48
mostrar_aviso_de_criacao_de_tópicos:
cliente: true
padrão: true
habilitar_avatares_de_sistema:
oculto: true
padrão: true
desabilitar_notificações_de_edição_de_sistema: true
limite_de_consolidacao_de_notificações:
padrão: 3
min: 0
janela_de_consolidacao_de_notificações_de_curtidas_mins:
padrão: 120
min: 1
deletar_rascunhos_antes_de_n_dias:
padrão: 180
max: 36500
backup_de_rascunhos_para_pm_comprimento:
padrão: 0
oculto: true
id_de_tópico_de_tos:
padrão: -1
oculto: true
id_de_tópico_de_diretrizes:
padrão: -1
oculto: true
id_de_tópico_de_privacidade:
padrão: -1
oculto: true
id_de_tópico_de_boas_vindas:
padrão: -1
oculto: true
id_de_tópico_de_boas_vindas_lounge:
padrão: -1
oculto: true
id_de_tópico_de_início_rápido_admin:
padrão: -1
oculto: true
usuários_mínimos_no_modo_bootstrap:
padrão: 50
cliente: true
max: 5000
modo_bootstrap_habilitado:
padrão: false
cliente: true
oculto: true
desfixar_tópicos_automaticamente:
padrão: true
cliente: true
contagem_de_palavras_de_tempo_de_leitura:
padrão: 500
cliente: true
padrão_local:
ja: 350
zh_CN: 350
zh_TW: 350
título_da_página_do_tópico_inclui_categoria:
padrão: true
cliente: true
banner_de_instalação_de_app_nativo_ios: false
banner_de_instalação_de_app_nativo_android: false
id_de_app_ios:
padrão: "1173672076"
oculto: true
id_de_app_android:
padrão: "com.discourse"
oculto: true
regex_de_navegador_de_exibição_de_pwa:
padrão: "a^"
oculto: true
associação_de_app_android:
padrão: ""
textarea: true
associação_de_app_ios:
padrão: ""
textarea: true
compartilhar_estatísticas_anonimizadas: true
lidar_automaticamente_com_idade_em_fila:
padrão: 60
min: 0
subconjunto_de_ícones_svg:
padrão: ""
tipo: "lista"
tipo_lista: "compacta"
cliente: true
sempre_incluir_resumos_de_tópicos:
padrão: false
oculto: true
convites_em_lote_máximos:
padrão: 50000
oculto: true
robots_txt_sobrescrito:
padrão: ""
oculto: true
preferências_de_usuário:
frequência_de_digest_de_email_padrão:
enum: "DigestEmailSiteSetting"
padrão: 10080
incluir_tl0_nos_digests_padrão: false
nível_de_email_padrão:
enum: "EmailLevelSiteSetting"
padrão: 1
nível_de_mensagens_de_email_padrão:
enum: "EmailLevelSiteSetting"
padrão: 0
modo_de_mailing_list_de_email_padrão: false
frequência_de_modo_de_mailing_list_de_email_padrão:
enum: "MailingListModeSiteSetting"
padrão: 1
desabilitar_modo_de_mailing_list:
padrão: false
cliente: true
respostas_anteriores_de_email_padrão:
enum: "PreviousRepliesSiteSetting"
padrão: 2
in_reply_to_de_email_padrão:
padrão: true
minutos_de_duração_de_tópico_novo_outros_padrão:
enum: "NewTopicDurationSiteSetting"
padrão: 2880
milissegundos_de_rastreamento_automático_de_tópicos_outros_padrão:
enum: "AutoTrackDurationSiteSetting"
padrão: 240000
nível_de_notificação_ao_responder_outros_padrão:
enum: "NotificationLevelWhenReplyingSiteSetting"
padrão: 2
links_externos_em_nova_aba_outros_padrão: false
habilitar_citação_outros_padrão: true
habilitar_defer_outros_padrão: false
favicon_dinâmico_outros_padrão: false
frequência_de_notificação_de_curtida_outros_padrão:
enum: "LikeNotificationFrequencySiteSetting"
padrão: 1
desfixagem_automática_de_tópicos_padrão:
padrão: true
cliente: true
categorias_de_monitoramento_padrão:
tipo: lista_de_categorias
padrão: ""
categorias_de_rastreamento_padrão:
tipo: lista_de_categorias
padrão: ""
categorias_de_mudo_padrão:
tipo: lista_de_categorias
padrão: ""
categorias_de_monitoramento_do_primeiro_post_padrão:
tipo: lista_de_categorias
padrão: ""
mutar_todas_as_categorias_por_padrão:
padrão: false
cliente: true
tags_de_monitoramento_padrão:
tipo: lista_de_tags
padrão: ""
tags_de_rastreamento_padrão:
tipo: lista_de_tags
padrão: ""
tags_de_mudo_padrão:
tipo: lista_de_tags
padrão: ""
tags_de_monitoramento_do_primeiro_post_padrão:
tipo: lista_de_tags
padrão: ""
tamanho_de_texto_padrão:
tipo: enum
padrão: normal
opções:
- menor
- normal
- maior
- maior
modo_de_contagem_de_título_padrão:
tipo: enum
padrão: notificações
opções:
- notificações
- contextual
api:
período_de_dias_para_reter_eventos_de_web_hook:
padrão: 30
max: 36500
tentar_novamente_eventos_de_web_hook:
padrão: false
epoch_de_último_uso_de_chave_de_api:
padrão: "" # O valor é adicionado em uma migração
oculto: true
dias_para_revogar_chaves_de_api:
padrão: 180
max: 36500
user_api:
permitir_chaves_de_api_de_usuário:
padrão: true
permitir_escopos_de_chave_de_api_de_usuário:
padrão: "read|write|message_bus|push|notifications|session_info|one_time_password"
tipo: lista
chaves_de_api_máximas_por_usuário:
padrão: 10
chave_secreta_de_push_de_api:
padrão: ""
oculto: true
nível_de_confiança_mínimo_para_chave_de_api_de_usuário:
padrão: 0
enum: "TrustLevelSetting"
urls_de_push_de_api_de_usuário_permitidas:
padrão: ""
tipo: lista
redirecionamentos_de_auth_de_api_de_usuário_permitidos:
padrão: "https://api.discourse.org/api/auth_redirect|discourse://auth_redirect"
tipo: lista
dias_para_expirar_chaves_de_api_de_usuário:
padrão: 180
max: 36500
tags:
tagging_habilitado:
cliente: true
padrão: false
atualizar: true
estilo_de_tag:
cliente: true
tipo: enum
padrão: "simples"
opções:
- simples
- bullet
- box
{% raw %}
prévia: '<div class="discourse-tags"><span class="discourse-tag {{value}}">tag1</span><span class="discourse-tag {{value}}">tag2</span></div>'
{% endraw %}
tags_máximas_por_tópico:
padrão: 5
cliente: true
comprimento_máximo_de_tag:
padrão: 20
cliente: true
confiança_mínima_para_criar_tag:
padrão: "3"
enum: "TrustLevelAndStaffSetting"
nível_de_confiança_mínimo_para_taggar_tópicos:
padrão: "0"
enum: "TrustLevelAndStaffSetting"
cliente: true
resultados_máximos_de_busca_de_tag:
cliente: true
padrão: 5
min: 1
mostrar_filtro_por_tag:
cliente: true
padrão: false
atualizar: true
tags_máximas_na_lista_de_filtro:
cliente: true
padrão: 30
min: 1
atualizar: true
tags_classificadas_alfabeticamente:
cliente: true
padrão: false
atualizar: true
tags_listadas_por_grupo:
cliente: true
padrão: false
permitir_staff_para_taggar_pms:
padrão: false
suprimir_tags_sobrepostas_na_lista:
padrão: false
cliente: true
remover_tags_mudas_do_latest:
cliente: true
tipo: enum
padrão: sempre
enum: RemoveMutedTagsFromLatestSiteSetting
forçar_tags_em_minúsculas:
padrão: true
cliente: true
dashboard:
relatórios_ocultos_do_dashboard:
cliente: true
tipo: lista
tipo_lista: compacta
padrão: ""
permitir_qualquer: true
abas_visíveis_do_dashboard:
cliente: true
tipo: lista
tipo_lista: compacta
padrão: "moderation|security|reports"
permitir_qualquer: false
opções:
- moderation
- security
- reports
métricas_de_atividade_da_aba_geral_do_dashboard:
cliente: true
tipo: lista
tipo_lista: compacta
padrão: "page_view_total_reqs|visits|time_to_first_response|likes|flags|user_to_user_private_messages_with_replies"
permitir_qualquer: false
opções:
- page_view_total_reqs
- visits
- time_to_first_response
- likes
- flags
- user_to_user_private_messages_with_replies
- signups
rosscdh
(RossCdH)
Julho 29, 2020, 2:38pm
13
rosscdh:
DISCOURSE_
mas acho que, sinceramente, vou apenas montar o arquivo de configuração com suas configurações..
rosscdh
(RossCdH)
Julho 29, 2020, 2:51pm
14
Sei que vocês amam essa coisa de launcher, mas e o docker-compose? Sei que isso já foi levantado centenas de vezes e tenho certeza de que funciona muito bem para vocês, pelo que posso ver mas existe um mundo inteiro de desenvolvedores Docker que sabem como funciona… seria ótimo ter um exemplo de docker-compose
fzngagan
(Faizaan Gagan)
Julho 29, 2020, 2:54pm
15
Acho que você deve priorizar mais o suporte ao discoursey e menos ao dockery. Há muitas explicações sobre isso para que as pessoas entendam por que as coisas foram feitas dessa maneira.
rosscdh
(RossCdH)
Julho 29, 2020, 2:58pm
16
Hmm, não, porque o Docker é uma maneira padrão de executar aplicativos; e envolvê-lo em um script personalizado é… reinventar a roda.
O docker-compose é um manual de execução que pode ser entregue a qualquer provedor de serviços de nível intermediário, e eles saberão o que fazer com ele. Também se integra perfeitamente a ferramentas como o SaltStack, ao contrário do script.
Claro, entendo o motivo. O script foi criado há muitos anos, quando o Docker era novo… e, como já disse, é claro que ele é uma grande ajuda para a equipe de suporte.
Além disso, quando você migrar para o Kubernetes… bem, isso será interessante.
E, ao olhar ao redor, já existem toneladas de pessoas criando Helm charts para o Discourse e docker-compose… seria bom ter, pelo menos, algum suporte para isso.
Mas tudo bem… estou usando o launcher agora e vou extrair o que preciso dele
fzngagan
(Faizaan Gagan)
Julho 29, 2020, 3:00pm
17
rosscdh
(RossCdH)
Julho 29, 2020, 3:03pm
18
Obrigado por isso, vou ler.
Mas o que é importante saber é que o Docker não é mais algo desconhecido; e não oferecê-lo suporte adequadamente impedirá que organizações maiores o considerem.
Tudo certo… continuem com o bom trabalho e obrigado pela paixão.
Stephen
(Stephen)
Julho 29, 2020, 5:46pm
19
Isso simplesmente não é verdade; o Discourse é usado em algumas das maiores comunidades da internet.
Grandes organizações ou contratam pessoal técnico que não quer pacotes prontos e simplificados, ou estão satisfeitos em terceirizar para empresas como a CDCK.
Não há nada de errado com a instalação padrão para comunidades de porte médio e até mesmo grande. Se você quiser saber como o launcher interage com o Docker, o código-fonte está disponível para investigação.