轻量但不简单:Cusdis评论系统部署

2023 年 10 月 25 日 星期三(已编辑)
20
1
这篇文章上次修改于 2023 年 12 月 26 日 星期二,可能部分内容已经不适用,如有疑问可询问作者。

轻量但不简单:Cusdis评论系统部署

在建设自己的博客的时候,大多数时候我们需要一个评论系统;当然,如果你用的是WordPress,Typecho的话,你不需要去鼓捣这些,一般现在动态博客都自带评论系统,但如果我们是部署的静态博客,这时候就需要我们选择一个评论系统了,因为静态一般是没有后端的。

选择

现在其实有很多解决方案:

  • Twikoo与Waline这类国内十分流行的评论系统解决方案
  • 基于Git的评论系统,比如Gitalk,Giscus等等
  • 由第三方服务提供的评论解决方案,比如Disqus,来必力等等

事实上,我自己的博客用的也是Twikoo,他确实是一个优秀的自托管评论系统。 但以上这些,都不能满足我们今天想要的:轻量。

开端

这时候,我在网上翻阅文章的时候偶然看到了Cusdis,它的出现可以说是为了替代万恶的Disqus评论系统。 Disqus作为一个商业化的评论系统,其免费版本具有以下问题:

  • 会收集用户隐私
  • 国内无法使用(虽然有解决方案,但很慢)
  • 免费版本经常会附带一些广告
  • 数据不在我们自己的手中
  • 我们并不能享受到作为个人站点评论系统该有的权益

这时候Cusdis就作为取代Disqus的“救星”出现了。Cusdis 是一个注重数据隐私的开源的评论系统,十分轻量,经过 Gzipped 后大约只有5kb,我们从它的名字来看也知道开发者也是难以忍受 Disqus,自己做了一个替代版,因此它也是支持 Disqus 历史数据导入的,很贴心。

虽然这是一个仍处于开发早期的项目,但它已经提供了电子邮件通知以及通过 Webhook 联动 Telegram 等方式进行评论提醒,对使用者来说很方便进行管理。Cusdis 提供了免费托管服务与自行部署两种方式,自行部署需要服务器与一个 Postgre SQL 实例,我们在这里也是主要示范一下自行部署方式。

选择

官方提到的部署方案里有Railway,诚然,它的确提供一定的免费额度,而且将数据库与项目整合在一起也是一个不错的设计,但其最近已经做了一次改动:针对未绑定信用卡的用户,Railway仅提供一次性的5美元免费额度。这就阻挡了很多没有信用卡的用户,比如我这个学生(弱),不过好在这是个Next.js应用,我们可以通过Next.js的亲爹Vercel来部署Cusdis评论服务。

部署

在部署以前我们需要准备的:

  • 一个Vercel账号
  • 一个域名(Vercel二级域名在国内无法访问)
  • 一个Postgres数据库 ### 数据库 我们可以选择使用Vercel提供的免费数据库,其免费额度足以撑起个人站点的评论服务。 Vercel数据库的计费政策:
  • 免费用户,每月的计算时间 60 hours,存储 256 MB。
  • Pro 用户, 每月的计算时间 100 hours 存储 512 MB, 超出 1GB/$0.30 当达到此限制时,对数据库的请求将受到速率限制。

总体来说还行,足够我们一个小站点的使用了。 数据库新建方法:打开Vercel仪表板,找到上方的Storage,进入后单击Create Database,然后选择Postgres,在点击Continue并选择地区后完成新建,在数据库设置里我们可以找到数据库的链接地址,其格式应类似于postgresql://johndoe:randompassword@localhost:5432/mydb 准备好以上东西以后,我们就可以开始部署了,你可以通过下方按钮一键将其部署到Vercel

Vercel一键部署

我们需要设置环境变量Environment Variable,参考下表

变量名称变量解释
USERNAME后台系统登录用户名
PASSWORD后台系统登录密码
DB_URL数据库连接地址
JWT_SECRETJWT令牌密钥,设置任何内容都可以
NEXTAUTH_URL设置你为其绑定的域名

完成以上变量设置后,我们就可以单击Deploy进行部署。

仪表盘

部署完成后,单击我们为其绑定的链接进入后台

我们在此时输入部署前配置的用户名与密码,点击登录。登录完成后,点击 Dashboard,进入项目配置页面。

初次登录会弹窗提示需要配置第一个网站,输入网站名称即可完成添加。后续当我们需要添加网站时,点击侧边栏 New Website,填写网站名称即可完成添加。

前端集成,则需要参考Cusdis官方文档中的SDK集成部分将其集成到我们需要放置评论系统的站点中。

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...