记一次评论系统更换
1.前言
本站的评论系统最开始是Typecho自带的评论模块,因为无人评论所以开始并未在意。
后来,我将评论系统改为Giscus,它依托Github Discussions,轻量便捷,但在我迁移网站至GitHub后,发现butterfly主题的Giscus评论框只有英文界面,便放弃了继续使用Giscus的想法,只是因为我想统一全站界面语言。
2.评论系统的变化
2.1.最开始的构想
开始,我将目光放在了Gitalk上,它依托GitHub issues作为存储,只需要GitHub账号登录即可发言,可以说相当便捷,故成为了评论框架。
那么,为什么要换呢? 这是因为issue的特性导致,用户发布评论就会自动订阅这个issue,而issue一旦有新的留言就会给所有评论者自动发送一封spam邮件,对部分评论者造成困扰。
于是,我选择了Twikoo作为新的评论系统,因为它安装简单,评论方便,界面也简洁。
3.搭建过程
我的方案是在Netlify上部署Twikoo后端,因为Netlify有充足的免费额度供我使用,100GB/月的流量供应评论后端绰绰有余,当然你也可以使用其他服务商的计算服务来部署,下面是各云函数服务商的优缺点表(取自Twikoo官方文档部分):
部署方式 | 推荐度 | 描述 |
---|---|---|
腾讯云一键部署 | ★☆☆☆☆ | 虽然方便,但是仅支持按量计费环境——也就是说,一键部署的环境,当免费资源用尽后,将会产生费用。且按量计费环境无法切换为包年包月环境。免费额度数据库读操作数只有 500 次 / 天,无法支撑 Twikoo 的运行需求。 |
腾讯云手动部署 | ★★☆☆☆ | 手动部署到腾讯云云开发环境,在中国大陆访问速度较快。需要付费购买环境才能部署。 |
腾讯云命令行部署 | ★☆☆☆☆ | 仅针对有 Node.js 经验的开发者。 |
Vercel 部署 | ★★★☆☆ | 适用于想要免费部署的用户,在中国大陆访问速度较慢甚至无法访问,绑定自己的域名可以提高访问速度。 |
Railway 部署 | ★★☆☆☆ | 有免费额度但不足以支持一个月连续运行,部署简单,适合全球访问。 |
Zeabur 部署 | ★☆☆☆☆ | 需要绑定支付宝或信用卡,部署简单,适合中国大陆访问,免费计划环境随时可能会被删除。 |
Netlify 部署 | ★★★★☆ | 有充足的免费额度,中国大陆访问速度不错。 |
Hugging Face 部署 | ★★★★☆ | 免费,中国大陆访问速度不错。允许通过 Cloudflare Tunnels 自定义域名。 |
AWS Lambda 部署 | ★★★☆☆ | 全球最大的云平台,适合已经使用 AWS 全家桶的用户。 |
Cloudflare workers 部署 | ★★☆☆☆ | 部署需使用命令行,冷启动时间较短,功能有部分限制。 |
私有部署 | ★★☆☆☆ | 适用于有服务器的用户,需要自行申请 HTTPS 证书。 |
私有部署 (Docker) | ★★★☆☆ | 适用于有服务器的用户,需要自行申请 HTTPS 证书。 |
以下均为官方文档中复制,详细请见官方教程。
注意
Netlify 部署的环境需配合 1.4.0 以上版本的 twikoo.js 使用
Netlify 免费等级(Functions Level 0)支持每月 125,000 请求次数和 100 小时函数计算时长
- 申请 MongoDB Atlas 账号,获取 MongoDB 连接字符串
- 申请并登录 Netlify 账号,创建一个 Team
- 打开 twikoojs/twikoo-netlify 点击 fork 将仓库 fork 到自己的账号下
- 回到 Netlify,点击 Add new site - Import an existing project
- 点击 Deploy with GitHub,如果未授权 GitHub 账号,先授权,然后选择前面 fork 的 twikoo-netlify 项目
- 点击 Add environment variables - New variable,Key 输入
MONGODB_URI
,Value 输入前面记录的数据库连接字符串,点击 Deploy twikoo-netlify
- 部署完成后,点击 Domain settings - 右侧 Options - Edit site name,可以设置属于自己的三级域名(
https://example.netlify.app
)
- 进入 Site overview,点击上方的链接,如果环境配置正确,可以看到 “Twikoo 云函数运行正常” 的提示
- 云函数地址(包含
https://
前缀和/.netlify/functions/twikoo
后缀,例如https://example.netlify.app/.netlify/functions/twikoo
)即为您的环境 id
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 zi4dbek的小站!
评论
TwikooGitalk