Concord:Discourse 的 Discord 替代主题

:information_source: 摘要 一款自托管的开源 Discord 替代品:将 Discourse 转变为基于频道的社区,支持文本、语音和论坛频道。
:hammer_and_wrench: 仓库 github.com/awesomerobot/concord
:question: 安装指南 如何安装主题或主题组件
:open_book: Discourse 主题新手? 使用 Discourse 主题的入门指南

安装此主题

当您使用 Discourse 运营自己的独立站点时,您可以选择您的政策,允许您的站点公开可见,并发布内容以供搜索引擎和爬虫索引。此外,您还可以随意扩展和重新样式化它!

Concord 将一切都变为频道,并在自定义侧边栏中显示所有频道:

  • 类别 (Categories) 是论坛频道
  • 聊天频道 (Chat channels) 是文本频道
  • 语音房间 (Voice rooms)(来自 voice plugin)是语音频道
  • 标签 (Tags) 也可以可选地作为标签频道

自定义标题包含一个下拉菜单,其中包含全站页面(关于、群组、徽章、管理后台等),它位于当前频道的名称、描述和操作旁边。私信拥有独立的视图,右侧有一个成员列表,显示谁在线。

:warning: 这极大地改变了 Discourse 的布局,因此可能与某些插件或主题组件不兼容。它还依赖于核心的一些非常近期的更改,因此在安装之前请确保已更新 Discourse(您需要 2026 年 10 月 15 日或之后的构建版本)。

设置

Concord 需要一些站点设置更改,因此安装后请在您的 Discourse 站点设置中检查以下内容。

作为管理员,您可以通过将此粘贴到您的 Discourse URL 末尾来同时查看所有这些设置:

/admin/site_settings/category/all_results?filter=any:navigation_menu|default_homepage|chat_enabled|chat_allowed_groups|enable_public_channels|voice_allowed_groups|voice_create_room_allowed_groups|enable_user_status|tagging_enabled

:information_source: 请注意,您需要从即将推出的更改中启用语音才能看到相关设置,/admin/config/upcoming-changes

站点设置 应设置为什么值
navigation menu sidebar(必需,频道列表就是侧边栏)
chat enabled 如果您想要文本频道和私信,请设为 enabled
chat allowed groups 谁应该能够聊天,包括 anonymous_users 以允许未登录用户查看
enable public channels 设为 enabled 以便工作人员创建文本频道
live enabled 如果您想要 Live 频道(音频/视频),请设为 enabled
live allowed groups 谁应该能够加入 Live 频道
live create room allowed groups 谁应该能够创建 Live 频道
enable user status 可选,状态会显示在用户面板和标题中的头像上
tagging enabled 可选,仅当启用主题的 include tags 设置时需要
default homepage 可选,但您可以将其设置为您选择的任意聊天频道

创建频道

站点名称旁边的 + 会打开“创建频道”模态框。它只提供您有权创建的频道类型:

  • Forum (论坛) 创建一个类别(任何可以创建类别的人)
  • Text (文本) 创建一个聊天频道(工作人员)
  • Voice (语音) 创建一个语音房间(voice create room allowed groups 设置)

每种类型都可以对一组群组设为私有。您可以稍后通过侧边栏中频道的 … 菜单中的 Privacy (隐私) 更改此设置。

在 Discourse 中,聊天频道从其类别获取权限,因此在此主题中创建的每个文本频道都会获得一个空的“后备”类别,嵌套在 chat-channels 父类别内部。这些类别隐藏在频道列表中,因此您不需要考虑它们……但请不要在其中发布主题(普通用户不允许这样做)!当您从频道的 … 侧边栏菜单中删除文本频道时,其后备类别也会被删除。

组织侧边栏频道

频道可以分组到可折叠的部分中。管理员可以从部分标题的 … 菜单中创建、重命名、重新排序和删除部分,并从每个频道的 … 菜单中将频道在部分之间移动。任何不在部分中的内容都会按字母顺序列在顶部。

部分是全站范围的,因此每个人看到的布局都相同。更改会在其他人下次加载页面时显示。

主题设置

名称 描述
include tags 将用户的侧边栏标签列为频道(默认关闭)
include chat channels 将聊天频道列为文本频道(默认开启)
ai conversations link 在站点名称旁边显示 AI 机器人对话按钮,供可以使用它们的人使用(需要启用 Chatbot 的 Discourse AI)
remember last channel 当某人返回您的站点时,重新打开他们最后所在的频道
chat container category 容纳文本频道后备类别的类别 Slug,默认为 chat-channels
sidebar sections 各个部分及其中的频道,您可以从侧边栏管理这些,这只是数据存储的位置
member list roles 在成员列表顶部显示为角色的群组,按顺序排列(默认是管理员和版主)

其他注意事项

  • 每个人都能看到他们有权限访问的所有频道,目前还没有办法让人们从自己的列表中隐藏单个频道。静音频道对于通知仍然照常工作。
  • 打开文本频道即加入该频道,就像 Discord 一样。如果某人离开频道,它仍会列在列表中,因此静音是安静下来更好的选择。
  • 子类别不会在频道列表中占据自己的位置,而是作为框显示在其父级论坛频道的顶部。该主题通常建议扁平结构,但您可以在创建后编辑论坛频道来选择父类别。
  • 从聊天自己的设置页面删除具有后备类别的频道是被隐藏的,因此它们总是从频道的 … 菜单中删除(这也清理了类别)。如果频道通过其他方式(如通过 API)被删除,后备类别会被遗留下来,您需要自行删除它。
  • 聊天始终以全页打开,从不打开在抽屉中。
  • 成员列表中的“在线”意味着在过去几分钟内在该站点的任何地方活跃,而不仅仅是在聊天中。隐藏其存在状态的人保持隐藏状态。
  • 在拥有大量频道的站点上,只有前 500 个文本频道被加载到列表中。同样,私有聊天频道的成员列表预先加载其前 250 名成员,其余部分在您滚动时加载。
  • 使语音频道私有会添加您选择的群组的当前成员(最多 200 人)。后来加入这些群组的人不会自动获得访问权限,因为语音房间没有群组权限。您将不得不手动邀请额外成员。
  • 如果您稍后切换离开 Concord,您的文本频道的后备类别仍将在那里(并且在 /categories 上可见),因此您可能希望删除它们。

我们在这里还有很多事情可以做,但如果您正在寻找可以自托管的 Discord 替代品(或在我们的付费 discourse.org 托管上使用!),这是一个坚实的基础。

一如既往,欢迎反馈和建议!

30 个赞

干得漂亮,这是一个很棒的主意 @awesomerobot 。这能让我们接触到更多的用户。但我觉得聊天功能缺少不少选项,比如投票或装饰性的小挂件。既然我不喜欢 Discord,这一点完全无所谓 :rofl: 不过我很喜欢 Discourse :smiling_face_with_three_hearts:

3 个赞

是的,这本质上仍然是 Discourse 聊天,只是换了一个用于导航的外壳……如果大家对更多类似 Discord 的聊天功能感兴趣,那总是适合在 Contribute > Feature 中提出的(哦,我刚刚注意到你已经在投票功能上这么做了!Sondage pour le chat)

5 个赞

真的很有意思,非常适合那些用户想用 Discord,但管理员却想使用 Discourse 的团队。我很好奇!

4 个赞