设置暂存服务器时,有几种技巧可以提供帮助。
什么是暂存服务器?
暂存服务器本质上是生产站点的克隆。它也驻留在服务器上,并且功能相同。它在 Docker 容器内运行,就像普通的 Discourse 站点一样。
它提供了一个可以尝试风险操作或试用那些不容易向用户隐藏的功能的地方。它对于试用广告(使用 https://meta.discourse.org/t/official-advertising-ad-plugin-for-discourse/33734)或进行论坛导入或合并等有趣的操作非常有用。
这与开发服务器形成对比,开发服务器通常运行在一个易于访问(且已沙盒化)的位置,以便开发人员可以安全地修改代码。
我需要什么?
-
标准自托管安装所需的一切
-
如果您设置了 S3 备份,您的生活将变得轻松得多
- 否则,您需要一种通过 SSH 在服务器之间移动大文件的方法
步骤
按需设置您的服务器
通常在 Digital Ocean 上托管的 Ubuntu 虚拟服务器中,但您可以使用任何您熟悉的工具。
安装 Discourse
通过本指南(或可能通过 dashboard.literatecomputing.com)。我建议使用“垃圾邮件”电子邮件凭据(您不需要也不希望电子邮件正常工作)。
discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub
确认您的安装正常工作:
建立管理员帐户(如果需要)
从命令行设置一个管理员帐户。这样可以跳过通过电子邮件进行身份验证的需要。
./launcher enter app
rake admin:create
这并非严格必需,除非是为了测试安装,因为您可以从命令行恢复备份。
编辑 app.yml 并进行一些调整
-
您可能想复制原始的 app.yml 文件(我称之为
app.vanilla.yml),以便在搞砸时可以恢复到该文件。 -
在
env部分的底部添加以下行:## Staging server specific settings DISCOURSE_AUTOMATIC_BACKUPS_ENABLED: false DISCOURSE_LOGIN_REQUIRED: true DISCOURSE_DISABLE_EMAILS: 'yes' DISCOURSE_S3_DISABLE_CLEANUP: true DISCOURSE_ALLOW_RESTORE: true -
如果您配置了 S3(或类似)备份,请也添加这些(使用主站点的设置)
## S3 Configuration DISCOURSE_S3_ACCESS_KEY_ID: 'your_key' DISCOURSE_S3_SECRET_ACCESS_KEY: 'your_secret' DISCOURSE_BACKUP_LOCATION: 's3' DISCOURSE_S3_BACKUP_BUCKET: 'your_backups_location' DISCOURSE_S3_REGION: 'your_s3_region' DISCOURSE_S3_DISABLE_CLEANUP: true如果您还进行 S3 上传:
DISCOURSE_ENABLE_S3_UPLOADS: true DISCOURSE_S3_UPLOAD_BUCKET: 'your_uploads_location' -
您可能还想在暂存服务器上添加与生产服务器相同的插件。
-
进行重建
./launcher rebuild app
管理暂存服务器
现在您有了一个连接到 S3 备份(但不会覆盖它们)、易于恢复且在任何情况下都无法向任何人发送电子邮件的暂存服务器。完美!
您可以将新的备份恢复到暂存服务器上,然后随意操作。如果您不喜欢当前的状态,只需再次恢复即可。
关闭或开启
如果您长时间将暂存服务器保持“开启”状态,则有被 Google 索引的风险,并且您的用户可能会意外登录到它。由于他们的凭据是生产站点的克隆,因此这是非常可能的。
缓解这两个问题的简单方法是关闭 Discourse:
./launcher stop app
要重新开启以便使用它:
./launcher restart app
更新
如果您想确保插件和代码保持一致,则必须同时更新/重建暂存服务器和生产服务器。app.yml 更改也是如此。
如果您不使用 S3,则必须在服务器之间手动移动备份。而且它们很大!
填充测试服务器
如果您想要一个暂存服务器,那么您应该通过“恢复”将其填充您实际论坛的实际数据。有时是您特定的数据导致了问题,用其他数据集测试您的论坛可能会给您一种虚假的希望感。
但是,如果您想要一个测试服务器来了解 Discourse 的工作原理,那么您可能想用一些虚假数据进行检查,如果是这样,您可以这样做:
./launcher enter app
ALLOW_DEV_POPULATE=1 bundle install
ALLOW_DEV_POPULATE=1 rake dev:populate
这将用一些虚假数据填充您的论坛,以便您可以查看带有您想要的任何主题和插件的外观。如果您还没有开始您的论坛,这将让您大致了解可能的外观。
管理双因素身份验证
虽然您主站点的帐户用户名/密码在暂存站点上也能正常工作,但对于 2FA 来说就没那么方便了。如果您遇到问题,请关闭 2FA:
./launcher enter app
rake users:disable_2fa[<USERNAME>]


