| 摘要 | 一个自托管的开源 Discord 替代品:将 Discourse 转变为基于频道的社区,包含文本、语音和论坛频道。 | |
| 代码仓库 | github.com/awesomerobot/concord | |
| 安装指南 | 如何安装主题或主题组件 | |
| Discourse 主题新手? | 使用 Discourse 主题的入门指南 |
安装此主题
当您使用 Discourse 运营自己的独立站点时,您可以选择您的政策,允许您的站点公开查看,并发布内容以便搜索引擎和爬虫索引。此外,您还可以根据自己的喜好对其进行扩展和重新设计!
Concord 将一切都变为频道,并在自定义侧边栏中显示所有频道:
- 分类 (Categories) 是论坛频道
- 聊天频道 (Chat channels) 是文本频道
- 语音房间 (Voice rooms)(来自语音插件)是语音频道
- 标签 (Tags) 可选地也可以作为标签频道
页眉变为频道页眉,显示当前频道的名称、描述和操作,私信 (DM) 拥有独立的视图,右侧有一个成员列表侧边栏显示谁在线,而全站页面(关于、群组、徽章、管理后台等)则移入单独的菜单。
这极大地改变了 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
请注意,您需要从即将推出的更改中启用语音功能才能看到相关设置,/admin/config/upcoming-changes
| 站点设置 | 应设置为 |
|---|---|
navigation menu |
sidebar(必需,频道列表就是侧边栏) |
chat enabled |
如果您想要文本频道和私信,则设为 enabled |
chat allowed groups |
应该能够聊天的群组,包括 anonymous_users 以允许未登录用户查看 |
enable public channels |
enabled,以便工作人员可以创建文本频道 |
voice enabled |
如果您想要语音频道,则设为 enabled |
voice allowed groups |
应该能够加入语音频道的群组 |
voice create room allowed groups |
应该能够创建语音频道的群组 |
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 托管上使用!),这是一个坚实的基础。
一如既往,欢迎反馈和建议!






