大家好,
我昨天偶然发现了 Discourse,被它的功能、开源特性、插件、主题组件以及出色的用户界面深深折服。我正在 WordPress 上构建一个技能评估平台,而产品愿景中最后一块拼图就是一个充满活力的社区,Discourse 完美契合。感谢你们打造出如此优秀的产品!
为了搭建并启动这个项目,我有几个问题,希望能得到大家的帮助。
背景:
- 我的网站托管在 Siteground 上,由于他们使用 Google 的服务,无法提供 root 权限,因此我无法在那里安装 Discourse。

- 我使用 PHP 编写了自定义代码来构建一个动态网站,用户通过在平台上展示技能来赚取技能积分和奖励。例如,当用户分享项目并打上特定的技能标签时,他们就能获得积分。技能标签是我预先定义的,每项技能都分配了相应的积分,数据存储在自定义表中。这有助于我按时间维度展示每位用户在每项技能上的数据。
- 我使用 Gsuite 进行邮件设置。
- 我希望拥有完全控制权,因此打算自行托管 Discourse。
- 我在 WordPress 上未启用聊天功能(未安装相关插件),但希望在 Discourse 中启用聊天功能。
- 我想为 Discourse 中的活动构建类似的技能认可和积分系统。例如,如果用户 1 提问(并用技能标签标记问题),用户 2 回答且用户 1 将其标记为已解决,那么用户 2 将根据所关联的技能标签获得技能积分。或者,如果用户 1 发布了高质量帖子并受到众多用户喜爱,用户 1 也将因此获得积分。最接近的类比是 Stack Overflow 的微型版本,但面向一个非常小众的社区。
我的问题:
- 我看到有人使用 Mailgun 处理 Discourse 的邮件。使用 Gsuite 会有什么问题吗?我对此还不太熟悉,希望能获得一些长期视角的建议。
- 我还没有为 Discourse 选择托管服务商,但似乎大家都对 DigitalOcean (DO) 评价很高。根据我所分享的情况,您认为使用 DO 会有什么问题吗?
- 有没有推荐的聊天工具,能够与 WordPress 和 Discourse 良好协作?我不需要花哨的聊天功能,轻量级且能解决问题的工具即可。
- 您建议如何同步 WordPress 中的标签与 Discourse 中的标签?这是否可行?这主要关乎技能,因为我想将论坛和项目活动的所有数据合并,为用户创建技能作品集。
- 如何确保 Discourse 与 WordPress 之间的实时数据传输?即:1) 如果用户在网站上提交项目,Discourse 中的技能积分应更新。2) 如果用户在 Discourse 中做出优质贡献,WordPress 中的技能积分应更新。
数据存储在两个不同的数据库(Postgres 和 MySQL/MariaDB)、两个不同的托管服务商(Siteground 和 DO(可能))以及两个不同的后端(PHP 和 Ruby on Rails)中,这如何实现?是否有可用的 API 或钩子(hooks)用于在两个应用程序之间传输数据?或者这一切都由 WP-Discourse 插件自动处理?也许我需要运行定期任务来“同步”两个应用程序之间的数据?
鉴于 Discourse 和 WordPress 的灵活性,我不确定这会有多复杂。如果需要的话,我很乐意将事实来源数据保留在 WordPress 数据库中。我会编写 PHP 代码,并且如果为了构建一个动态无缝的激励和技能评级系统而需要学习 Ruby on Rails,我也愿意。
归根结底,用户并不关心网站和论坛分别托管在哪里,我希望通过为两个应用程序提供统一的体验来保持这种状态。
谢谢!
编辑:我做了更多研究,以更深入地了解 Discourse 的真正理念,并观看了 Jeff 的两场精彩演讲。强烈推荐给任何刚接触 Discourse 的人:
现在,我更好地理解 Stack Overflow 与 Discourse 之间的区别,似乎我想构建一个更接近论坛的社区,但同时具备 Stack Overflow 的部分控制性和特异性。目前还很难具体说明细节,但看来 WordPress 与 Discourse 之间的数据传输对于构建我理想中的产品至关重要。