当你有问题时,你会去哪里寻找答案?自从人类开始在地球上行走以来,我们一直在向身边的人提问——我们的家人、朋友、邻居、同学、同事或其他我们熟知的人。后来出现了图书馆和书店,提供知识和资源,也为任何人提供了进入和搜索答案的途径。当家用电脑普及后,这些知识库扩展到软盘或 CD-ROM 上发布的电子百科全书。然后,当互联网时代到来时,这些知识库迁移到网上,例如维基百科,以及像 Google 这样的搜索引擎诞生,目的是让人们更容易搜索问题的答案。现在,像 StackOverflow 这样的网站可以回答我们的软件问题,而 Quora 可以回答我们的一般疑问。
不过,教训很清楚。我们都有问题,我们都想要答案。我们中的一些人想帮助其他人找到他们问题的答案,这就是自托管问答网站的用武之地。
自托管问答网站
如果你想创建自己的问答平台,始终可以选择从头开始开发一切。但这意味着你需要为前端、后端、数据库、安全等方面编写大量代码。这些都不是简单的任务。
幸运的是,在开源领域中,有许多经过良好测试的问答平台解决方案。其中包括
名称 | 许可证 | 技术栈 | 描述 |
---|---|---|---|
Discourse | GPLv2 | Ruby on Rails, Ember.js, PostgreSQL, Redis | 非常流行的 100% 开源讨论平台,基于 Ruby |
Vanilla | GPLv2 | PHP, MySQL | 基于 PHP 的现代、时尚的问答网站 |
Askbot | GPLv3 | Python, Django, MySQL 或 PostgreSQL | 有趣的问答平台,基于 Django 和 Python,以前称为 OSQA |
Scoold | Apache 2.0 | Java, Spring, 数据库无关 | 极其强大且功能齐全的问答网站,基于 Java |
Question2Answer | GPLv2+ | PHP, MySQL | 基于 PHP 的问答平台,为 40 种语言的 22,000 多个网站提供支持 |
Shapado | GNU AGPL | Ruby, MongoMapper, MongoDB | 基于 Ruby 的简单问答网站 |
LampCMS | GNU LGPLv3 | PHP, MongoDB | 用于创建基于 PHP 的问答网站的开源高性能 Web 程序 |
如果你更喜欢视频而不是文本,请观看我在 YouTube 上关于这七个开源问答平台的视频。
Discourse
Discourse 是开源项目问答网站越来越受欢迎的选择。Mozilla 最近采用了 Discourse,Python 和 Go 等编程语言也使用它。这些站点可以是公开的或私有的,Opensource.com 通讯员的 Discourse 平台就是这种情况。截至撰写本文时,Discourse 有 713 位贡献者和 35,933 次提交。

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

以下是其中一些功能:
- 它的通知操作方式类似于 Twitter。当有人使用 @ 符号提及你的名字时,你将收到通知。
- 你可以在阅读时继续写作和创作。
- 你可以将图像拖放到你的帖子中。
- 搜索功能非常有效。
Discourse 基于 Ruby 编程语言,其开源版本在 GNU GPLv2 协议下可用。一个缺点是 Docker 镜像是在生产环境中安装 Discourse 的唯一受支持方式。虽然它功能强大,但配置和安装可能需要具备技术技能的人员。
Vanilla
开源问答软件 Vanilla 绝非平淡无奇。我喜欢 Vanilla 的一点是它的外观和感觉。在我看来,在所有问答软件中,Vanilla 的网站是最现代、最直观和最简洁的。

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

Vanilla 构建在经过考验的技术之上:它用 PHP 编写,其后端数据库是 MySQL。有些人可能会问:“为什么要用 PHP?” 虽然有很多更新的网络语言,但 PHP 仍然是互联网上占主导地位的语言,Vanilla 与同样基于 PHP 的 Drupal 和 WordPress 同行。它在 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,因为我已经练习了很长时间。当我听说 Scoold,一个基于 Java 的开源平台时,我想尝试一下。
Scoold 将许多高级功能集成到其平台中。我特别喜欢它与许多数据库协同工作的能力以及开箱即用的 OAuth 支持。
用户界面简洁直观。

Scoold 的开源项目在 Apache License 2.0 许可下获得许可,但它具有浓厚的商业气息,其 Pro 版本是闭源的。开源项目似乎有很多限制,其 FAQ 页面 上详细介绍了这些限制

但是,查看其 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 General Public License (AGPL)。
LampCMS
LampCMS 是一个具有 GNU LGPLv3 许可证的开源 PHP 平台。它只有一位贡献者,但我认为它非常有趣,值得一看。

由于其占用空间小,我不建议将 LampCMS 用于你的生产服务器问答平台。但由于其简单性,它可能是一个很好的实验平台,可以学习问答平台的工作原理。
明智地选择
有了所有这些选项,你如何选择使用哪一个?毕竟,每个问答平台都有优点和缺点。有些平台更易于安装,有些平台文档更好,还有一些平台提供更大的灵活性。但从长远来看,你希望选择一个具有活跃开源社区参与的平台。此外,考虑通过为这些平台做出自己的贡献来参与其中。毕竟,这就是开源项目的目的。
我错过了有趣的开源问答平台吗?请在评论中分享你的想法。
评论已关闭。