这是一篇关于隐藏站点设置的操作指南,介绍如何启用它们以及您可能希望调整它们的原因。
所需用户级别:管理员
重要提示:某些步骤需要控制台访问权限。
在 Discourse 中,隐藏站点设置指的是标准管理员仪表板界面中不易查看或访问的配置选项。这些设置是后端配置的一部分,可以控制站点的各种高级或可能有影响的功能。
这些隐藏设置带有预先配置的默认值,这些默认值旨在确保基于常见用例和最佳实践的最佳性能和安全性。
隐藏设置从默认设置界面中隐藏起来,以防止那些可能没有完全理解其影响的管理员意外地错误配置。它们面向以下用户:
- 对 Discourse 内部工作原理有深入了解的管理员。
- 需要非常特殊或不寻常的站点配置的特定情况。
- 尚未准备好投入一般使用的测试或实验性功能。
希望修改隐藏设置的管理员通常是由于默认配置不能完全满足他们的需求。
关于隐藏设置的重要说明:
仔细操作,否则调整 Discourse 中的隐藏站点设置可能会导致各种问题,例如安全漏洞、负面性能影响、用户体验下降或数据丢失!
隐藏站点设置应仅由知识渊博的 Discourse 管理员修改。在更改设置之前,请务必了解其作用和更改的含义。在可能的情况下,在暂存环境或开发环境中实施重大的配置更改。在进行广泛或关键的更改之前,请确保备份是最新的,以便在出现问题时恢复论坛状态。
如何编辑隐藏站点设置
选项 1:Rails 控制台
要修改隐藏站点设置,通常需要使用 Rails 控制台,这是一个命令行工具,允许您直接与 Discourse 安装的后端进行交互。要通过 rails 控制台调整设置,您可以遵循以下步骤:
- 访问 Rails 控制台:
cd /var/discourse
./launcher enter app
rails c
- 更改设置:
SiteSetting.your_setting_name = new_value
将 your_setting_name 替换为您想要修改的设置的名称,将 new_value 替换为您想要设置的值。
- 退出控制台:
exit
选项 2:在 app.yml 中设置环境变量
您也可以使用环境变量来调整隐藏站点设置。app.yml 文件是 Discourse 基于 Docker 的部署中使用的配置文件。它通常位于您的 Discourse 安装的 /containers 目录中。以下是如何添加或修改环境变量的方法:
- 访问
app.yml文件:
使用您喜欢的文本编辑器打开app.yml文件:
nano /var/discourse/containers/app.yml
- 添加环境变量:
环境变量可以在app.yml文件的env部分中配置。它们的格式遵循DISCOURSE_SETTING_NAME: value的模式。例如,要通过环境变量将max_category_nesting设置为3,您将使用:
env:
DISCOURSE_MAX_CATEGORY_NESTING: 3
- 重建容器:
保存对app.yml文件的更改后,重建 Discourse Docker 容器以应用更改:
cd /var/discourse
./launcher rebuild app
为什么要启用隐藏设置
启用或调整 Discourse 中的隐藏站点设置允许管理员深度定制他们的论坛设置,以满足特定的技术要求、增强性能或确保安全性和合规性,从而支持精心定制的用户体验和运营效率。
隐藏站点设置的示例包括:
- 徽章 SQL (Badge SQL):启用
enable_badge_sql允许站点管理员为徽章标准创建自定义 SQL 查询,从而在基于复杂条件的徽章分配方面提供灵活性。 - 永久删除帖子 (Permanent Post Deletion):启用
can_permanently_delete允许出于合规性或隐私考虑永久删除帖子。 - S3 备份设置 (S3 Backup Settings):使用
include_s3_uploads_in_backups将 S3 上传包含在备份中可用于增强的备份策略。 - 搜索速率限制 (Search Rate Limits):通过诸如
rate_limit_search_user等设置调整搜索速率限制,以防止在高使用场景中被限速。
常见问题解答 (FAQs)
问:隐藏设置可以在 UI 中显示吗?
答:出于安全和复杂性原因,Discourse 中的隐藏设置不能直接在 UI 中配置。
问:我在哪里可以找到有关每个隐藏设置的信息?
答:每个设置的详细信息可以在隐藏站点设置参考指南和 Discourse 源代码(特别是在 GitHub 仓库 的 site_settings.yml 文件中)中找到。Discourse Meta 论坛上也提供了关于某些设置的附加信息。
问:通过环境变量所做的更改在更新时会保留吗?
答:是的,如果设置在 app.yml 或系统的永久配置文件中设置,这些设置将在更新中保留,除非被其他配置覆盖。
问:我如何知道哪些设置可以通过环境变量控制?
答:通常,任何 Discourse 站点设置都可以加上 DISCOURSE_ 前缀并设置为环境变量。
问:通过环境变量配置敏感信息安全吗?
答:环境变量通常被认为是安全地用于配置管理的。但是,请确保它们不会在共享或不安全的环境中暴露。
问:我需要重建才能切换站点设置吗?
答:在大多数情况下,通过 rails 控制台切换站点设置不需要重建您的 Discourse 设置。这些更改通常会立即生效或在您的实例刷新后生效。然而,一些特定的设置,特别是那些影响系统基础方面的设置,可能需要重启或重建才能使更改生效。对于在 app.yml 文件中进行的更改,需要重建您的 Discourse 容器才能使这些更改生效。
问:我能轻松撤销设置更改吗?
答:是的,大多数设置都可以撤销,除非它们涉及数据删除。