在 Discourse 发布渠道/版本之间切换

:bookmark: 本指南介绍如何配置 Discourse 实例的发布频道。

:person_raising_hand: 所需用户权限:系统管理员

:warning: 需要访问控制台。

管理 Discourse 实例的频道决定了您接收更新的频率和类型。本指南介绍了可用的频道,并提供了更改设置中分支的分步方法。

概述

Discourse 提供多个频道来跟踪软件更新:latestreleaseesr。本文档解释了每个频道的用途、主要功能以及在 Discourse 实例中配置它们的方法。有关频道的图示,请参阅 releases.discourse.org

支持的频道

latest

:information_source: 推荐默认设置
该频道提供最新的错误修复和插件兼容性更新。main 分支的每个提交都会经过构建服务器的测试,并在验证成功后添加到 latest 分支。

  • 适合希望保持最新状态的站点。
  • 站点可以随时手动更新。

release

:information_source: 适用于偏好每月发布的站点

release 频道跟踪 Discourse 最新的每月发布版本。每个月,会从 latest 分支切出一个发布分支(例如 release/2026.2),提供一个稳定的快照。

  • 大约每月发布一次。
  • 每个版本在两个完整的发布周期内接收关键修复。

esr

:information_source: 扩展支持发布

esr 标签跟踪最新的扩展支持发布版本,旨在为优先考虑长期稳定性和安全性而非频繁更新的站点提供服务。

  • 大约每 6 个月从月度版本中确定一次。
  • 在较长时间内接收安全修复和关键回溯补丁。
  • 可能与社区插件和主题组件的兼容性有限。

:warning: 注意: 不接收常规维护更新可能导致某些功能过时或视觉不一致。

已弃用的别名

为了向后兼容,以下旧分支/标签名称仍然有效,但被视为已弃用:

  • tests-passedlatest
  • betarelease
  • stableesr

其他分支或引用

:warning: 跟踪其他分支(例如特定的 release/YYYY.M 分支或提交 SHA)是可能的,但需要专业知识。这些分支仅在有限时间内接收关键修复。

配置频道的说明

请按照以下步骤在 Discourse 实例中配置所需的分支:

  1. 访问配置文件
    通过在控制台中运行以下命令打开 app.yml 配置文件:
cd /var/discourse
nano containers/app.yml

nano 编辑器将打开配置文件。
2. 编辑跟踪分支
在文件中搜索“version”一词以定位版本参数:

params:  
## Which Git revision should this container use? (default: latest)  
#version: latest
  • 取消注释 version 行。
  • latest 替换为您所需的分支或标签名称(例如 esr)。示例:
params:  
## Which Git revision should this container use? (default: latest)  
version: esr  
  1. 保存并退出
  • Ctrl+O 保存更改。
  • Enter 确认。
  • 使用 Ctrl+X 退出编辑器。
  1. 重建容器
    完成更改并保存后,重建容器以应用新配置:
./launcher rebuild app

:warning: 重建将导致短暂停机

27 个赞
Is it possible to upgrade Discourse up to a number of commits in the version?
How to avoid Discourse BETA version and keep only stable?
Upgrade Button - Possible Window to Exploits
Need a better way to explain what branch to be on, why, and what happens
Restoring Discourse 1.9 backup onto v2.3.0.beta9 +184
Cannot reorder categories
Download My Posts failed
Quote-feature occasionally missing on Android
What’s the best/safest branch not break production site?
How to change the target channel from DEV to BETA?
I need help to edit the sidebar
Help us test the rewritten Composer
Upcoming changes to the beta branch of Discourse
502 Bad Gateway after trying to rebuild test-passed branch
Stuck at v2.9.0.beta1 – Now Running 3.4.0.beta4-dev after Disabling Hooks: How Can I Lock to Stable Releases?
Have I Installed the wrong version? - 3.5.0.beta2-dev
Need a better way to explain what branch to be on, why, and what happens
Error 500 after Update
Landing Pages Plugin :small_airplane:
Self-hosted discourse instance appending "7d" to the FQDN
Update “3.4.0.beta4” failed
Issues with Discourse 3.5.0.beta2-dev - SMTP and Background Jobs
Install production ready stable on vps
Help deploying older versions of Discourse
[solved] How to avoid getting -dev versions when updating?
Production upgrades - correct procedure to follow
Production upgrades - correct procedure to follow
Problem with Upgrade [error 137]
ESR Usage Help
Is it possible to disable Discourse updates?
Is it possible to disable Discourse updates?

4 篇帖子已合并到现有主题:帮助部署旧版本的 Discourse

git pull 是必要的步骤,还是像更新 Discourse 的情况一样(手动将 Discourse 和 Docker 镜像更新到最新版本),属于遗留文档中的冗余步骤?

以我的经验,git pull 偶尔 会有用——例如,当我们从 yarn 切换到 pnpm 时,它是必不可少的……

通常情况下,常规重建无需为此费心。

2 个赞

太好了!谢谢你的信息。

我通常会这样做 :sweat_smile: 先尝试重新构建,如果因为某些不太明显的原因失败了,就先执行一下 git pull——这只需要花一点时间。

理论上来说,这应该永远不需要。启动器会自动检测过时的副本,并自行执行 git pull

1 个赞

谢谢提供的详细信息。确实,这很有道理。我会尝试不使用 git pul,并告诉你结果如何。

1 个赞

这很奇怪。有问题的代码来自2015年,我的论坛来自2018年,但我确信这里讨论过几次需要执行git pull的情况。

就我而言,只要我记得,我总是会执行git pull——这对我来说没什么成本。

这确实被经常提及,我想是因为这些非常具有历史意义的文件。我不认为我见过它真正有帮助的证据。

不过,手动运行它也没什么坏处 :person_shrugging:

1 个赞

由于 yml 文件使用的是 version 而非 supported tracking branch,是否建议在主题标题中添加 (version)

起初,我对这个日期也感到有些震惊。但查看版本历史后,发现最新更新是在5月18日。

我尝试对原帖进行了一些修改,以使用我们现代的“频道”术语,并删除了一些不必要的 git pull 引用。

1 个赞

肯定存在至少一种边缘情况,因为在极少数情况下它确实“帮了我大忙”。

会不会是在特定有限条件下主脚本发生变化时?

1 个赞