Discourse、Vanilla、Askbot 等。了解如何选择开源问答平台。

当你有问题时,你会去哪里?自从人类开始在地球上行走以来,我们就问过我们周围的人——我们的家人、朋友、邻居、同学、同事或其他我们熟悉的人。很久以后出现了提供知识和资源的图书馆和书店,并且任何人都可以进入并寻找答案。当家用计算机变得普遍时,这些知识库扩展到软盘或 CD-ROM 上的电子百科全书。然后,当互联网时代到来时,这些知识库在线迁移到维基百科之类的网站,谷歌等搜索引擎诞生,目的是让人们可以轻松搜索问题的答案。现在,像 StackOverflow 这样的网站可以回答我们的软件问题,Quora 可以回答我们的一般问题。
不过,教训很清楚。我们都有问题,我们都想得到答案。我们中的一些人希望帮助其他人找到他们问题的答案,这就是自托管问答网站的用武之地。
自托管问答网站
如果您想创建自己的问答平台,始终可以选择从头开始开发所有内容。但这意味着你需要为前端、后端、数据库、安全等编写大量代码,这些都不是简单的任务。
幸运的是,开源领域有许多经过充分测试的问答平台解决方案。这些包括:
姓名 | 执照 | 技术栈 | 描述 |
---|---|---|---|
Discourse | GPLv2 | Ruby on Rails、Ember.js、PostgreSQL、Redis | 非常流行的基于 Ruby 的 100% 开源讨论平台 |
Vanilla | GPLv2 | PHP、MySQL | 基于 PHP 的现代时尚问答网站 |
Askbot | GPLv3 | Python、Django、MySQL 或 PostgreSQL | 基于 Django 和 Python 的有趣问答平台,以前称为 OSQA |
Scoold | 阿帕奇2.0 | Java、Spring、数据库不可知 | 基于Java的极其强大且功能齐全的问答网站 |
Question2Answer | GPLv2+ | PHP、MySQL | 基于 PHP 的问答平台,支持 40 种语言的 22,000 多个站点 |
Shapado | GNU AGPL | 红宝石、MongoMapper、MongoDB | 基于Ruby的简单问答网站 |
LampCMS | GNU LGPLv3 | PHP、MongoDB | 基于PHP创建问答网站的开源高性能Web程序 |
Discourse
Discourse是开源项目问答网站越来越受欢迎的选择。Mozilla 最近采用了 Discourse,Python 和 Go 等编程语言也在使用它。这些站点可以是公共站点,也可以是私有站点,就像 Opensource.com Correspondents' Discourse 平台一样。在撰写本文时,Discourse 有 713 名贡献者和 35,933 次提交。

有趣的是,Discourse 的三位创始人之一是 Jeff Atwood,他是 Stack Overflow 的创建者,毫无疑问,这是开发人员中最受欢迎的问答网站。Discourse 具有许多高级功能,使其变得非常强大。

其中一些功能是:
- 它的通知操作类似于 Twitter。当有人用@符号提及您的名字时,您会收到通知。
- 您可以在阅读的同时继续写作和作曲。
- 您可以将图像拖放到您的帖子中。
- 搜索功能确实有效。
Discourse 基于 Ruby 编程语言,其开源版本在 GNU GPLv2 下可用。一个缺点是 Docker 镜像是在生产中安装 Discourse 的唯一支持方式。虽然它功能强大,但配置和安装可能需要具有技术技能的人员。
Vanilla
开源问答软件Vanilla一点也不简单。我喜欢香草的一件事是它的外观和感觉。在所有问答软件中,在我看来,Vanilla 的网站是最现代、最直观和最干净的。

Vanilla 的开源贡献者非常活跃——它的 GitHub 页面有 118 位贡献者和 29,491 次提交(截至撰写本文时)。

Vanilla 建立在久经考验的技术之上:它是用 PHP 编写的,其后端数据库是 MySQL。有些人可能想知道,“为什么是 PHP?” 虽然有许多较新的 Web 语言,但 PHP 仍然是互联网上的主导语言,Vanilla 与 Drupal 和 WordPress 很好地合作,它们也是基于 PHP 的。它在 GNU GPLv2 下可用。
测试环境需要在本地安装多项技术,包括Docker、Brew、Yarn、Node和Composer,您可以按照其设置说明启动并运行。
Askbot
曾几何时,有一个名为 OSQA 的开源平台。这个很酷的开源问答平台是由 AnswerHub 的制造商创建的,AnswerHub 是一个深受企业欢迎的平台。尽管该平台不再维护,但您可以在 GitHub 上找到OSQA的遗迹。
幸运的是,一个名为Askbot的新开源平台是基于 OSQA 创建的。

Askbot 平台基于 Python 和 Django 框架,并在 GNU GPLv3 下获得许可。在撰写本文时,其 GitHub 社区有 101 名贡献者和 6,612 次提交。不错!

Scoold
尽管我尝试了几乎所有的编程语言,但我更喜欢 Java,因为我已经练习了很长时间。当我听说基于 Java 的开源平台Scoold 时,我想尝试一下。
Scoold 在其平台中集成了许多高级功能。我特别喜欢它处理许多数据库的能力和开箱即用的 OAuth 支持。
用户界面干净直观。

Scoold 的开源项目是在 Apache License 2.0 下授权的,但是它的商业感觉很重,它的 Pro 版本是闭源的。开源项目似乎有很多限制,在其常见问题页面中有详细说明:

但是,查看其GitHub页面,该开源项目似乎仅由 18 名贡献者维护,并且只有 852 次提交。

如果您尝试 Scoold,请注意这些事情,因为该项目可能有一些限制,您会觉得很麻烦。
Question2Answer
Question2Answer是另一个基于 PHP 的开源问答平台。乍一看,这个平台有点卡通的感觉,虽然我认为主题可以定制。

在撰写本文时,Question2Answer 在其GitHub页面上只有 20 名贡献者和 1,291 次提交,因此请谨慎行事。但该项目基于 GNU GPLv2 或更高版本,因此您可以轻松做出贡献。

Shapado
Shapado是一个基于 Ruby 和 MongoDB 数据库的开源问答平台。它的 GitHub 只有 14 名贡献者和 5,149 次提交。它似乎没有大量的追随者,最新的更新是在 2018 年,所以在采用它之前要谨慎。

它也是在一个不太常见的许可证下开源的,该许可证值得了解,即 GNU Affero 通用公共许可证 (AGPL)。
LampCMS
LampCMS是一个开源 PHP 平台,具有 GNU LGPLv3 许可证。它只有一个贡献者,但我认为看一看还是很有趣的。

由于其占用空间小,我不建议将 LampCMS 用于您的生产服务器问答平台。但由于它的简单性,它可能是一个很好的实验平台,可以了解问答平台的工作原理。
做出明智的选择
有了所有这些选项,您如何选择使用哪一个?毕竟,每个问答平台都有利有弊。有些平台更容易安装,有些平台记录得更好,还有一些提供了更多的灵活性。但是,从长远来看,您希望选择一个积极参与开源社区的平台。此外,请考虑通过对这些平台做出自己的贡献来参与其中。毕竟,这就是开源项目的目的。
我错过了一个有趣的开源问答平台吗?请在评论中分享您的想法。
原文地址:https://opensource.com/article/20/2/open-source-qa