Discourse:老牌开源社区论坛官方一键部署与使用指南
一、项目官方信息
| 项目 | 信息 |
|---|---|
| GitHub 仓库 | https://github.com/discourse/discourse |
| 官方网站 | https://www.discourse.org/ |
| 开源协议 | GPL-2.0 |
| 主要语言 | Ruby(约 60.7%,Rails 后端) |
| Star 数 | 约 48k |
| 安装仓库 | https://github.com/discourse/discourse_docker |
Discourse 是一个 100% 开源的社区讨论平台,官方定位是“你的社区在线家园”(The online home for your community)。它经过十余年线上实战检验,至今仍在持续演进。主要能力包括:
- 💬 创建讨论主题,促成有意义的对话;
- ⚡️ 内建实时聊天(real-time chat);
- 🎨 用越来越多的官方与社区主题自定义外观;
- 🤖 通过插件增强社区,从由 Discourse AI 驱动的聊天机器人,到用 Data Explorer 做 SQL 分析等高级工具。
技术栈上,后端是 Ruby on Rails(以 JSON 提供 REST API),前端是 Ember.js,主数据存储用 PostgreSQL,缓存与临时数据用 Redis。

二、官方图片
上图为 Discourse 官方 README Logo。官方推荐用其官方 Docker 镜像在自己的基础设施上自托管;当然也可以直接使用官方托管服务(discourse.org/pricing,含免费档)。
三、环境要求
- 一台干净的 Linux 服务器(推荐 Ubuntu 22.04/24.04),内存建议 2GB 以上(越低配越吃紧,官方建议 1GB 起步、2GB 更稳)。
- 已安装 Docker(官方安装脚本会自动处理)。
- 一个已解析到服务器的域名(如
bbs.example.com),用于站点访问与邮件。 - 开发环境要求:Ruby 3.4+、PostgreSQL 15、Redis 7(仅源码开发时需要;用官方一键脚本无需自行装这些)。
四、完整部署步骤
1. 运行官方一键安装命令
README 给出的自托管安装只需一条命令:
wget -qO- https://raw.githubusercontent.com/discourse/discourse_docker/main/install-discourse | sudo bash
该脚本会自动安装 Docker 与依赖,克隆 discourse_docker 仓库到 /var/discourse。
2. 进入安装目录并启动向导
cd /var/discourse
sudo ./discourse-setup
向导会依次询问:
- 邮件发送地址(SMTP 邮件服务器信息,用于发注册/通知邮件);
- 站点域名(如
bbs.example.com); - 邮箱相关配置。
它会据此生成 containers/app.yml 配置文件。
3. 启动容器
sudo ./launcher bootstrap app
sudo ./launcher start app
bootstrap 首次初始化需要几分钟(拉镜像、建库、迁移)。完成后访问 http://你的域名 即可看到 Discourse 安装页面。
4. 完成 Web 初始化
浏览器打开站点,第一个注册的账号会自动成为管理员。按向导设置站点名称、欢迎邮件等。
5. 验证
- 前台可正常打开,能看到分类(categories)列表。
- 管理员后台
/admin可进入,能看到仪表盘、设置、用户、主题等。 - 邮件可正常发出(注册测试邮件能收到),说明 SMTP 配置正确。
五、使用方法
- 分类与话题:在后台设置分类(Category),用户在分类下发起主题(Topic)并回复,形成讨论串。
- 用户与权限:后台「Users」管理账号;通过信任级别(Trust Levels)与分组(Groups)控制用户能做什么,新用户有成长式的信任升级机制。
- 管理员后台:
/admin里包含 Settings(数百项站点设置)、Customize(主题/颜色/首页)、Emails、Logs、Backups 等。 - 主题与自定义:在「Customize → Themes」安装官方/社区主题,或创建子主题调整样式。
- 插件管理:在
containers/app.yml的hooks:段加入插件 git 仓库地址,重新./launcher rebuild app即可安装插件,例如 Data Explorer、Discourse AI 等。 - 实时聊天:新版内建聊天功能,可在侧边栏开启。
- 备份:后台可一键备份(含数据库与上传文件),并可配置定期备份。
六、常见问题 FAQ
-
安装脚本跑完了,但访问不了站点? 多为域名未解析到本机、80/443 端口未放行,或 bootstrap 尚未完成。确认 DNS、防火墙,并用
sudo ./launcher logs app查看容器日志。 -
注册邮件收不到? 90% 是 SMTP 配置不对。在
containers/app.yml里核对 SMTP 地址、端口、账号密码,改完sudo ./launcher rebuild app。Discourse 对发信要求较严,建议用专业 SMTP 服务。 -
改了 app.yml 怎么生效? 修改后必须执行
sudo ./launcher rebuild app,而不是直接 start。rebuild 会重新生成容器并保留数据。 -
内存只有 1GB 能跑吗? 官方建议至少 1GB 但会比较紧张,生产建议 2GB 以上;内存过小会导致 bootstrap 或邮件任务失败。
-
怎么装第三方插件? 编辑
containers/app.yml,在discourse模板的 hooks 下添加插件 git 地址,再 rebuild。插件清单可在 meta.discourse.org 查找。 -
第一个账号有什么特殊? 安装完成后第一个注册的用户自动获得管理员权限,用于后续站点配置。