由Valine转向Waline评论系统以及所遇到的问题
由于LeanCloud要停止服务的消息,再加上Valine系统的各种缺陷,我开始考虑要转向其它的静态网站评论系统。

关于 LeanCloud 停止对外提供服务的通知
https://docs.leancloud.app/sdk/announcements/sunset-announcement
评论系统的选择
说到用于静态网站的评论系统,选择其实有很多很多的,Valine、Waline、rtalik、Twikoo等等一大堆可用的。
而我的要求则是:简洁、免费和安全。
简洁
其实各家开源的评论系统已经很不错了,基本都不是什么花里胡哨的外观。除非你去选择那些专门的评论系统服务商,免费的各种限制,有广告亦或者是必须登陆后才能评论啥的。
免费
倒是免费这东西嘛……说到免费还得看你部署的方式,主流的开源评论系统都是有免费的部署方案,例如Waline,又或者是Twikoo。在部署前还是需要提前查看好其中的说明文档,最后根据文档的部署方式到各家服务商查询一下,是否更改了定价。很多东西都是需要不断更新的,但是文档这东西,可能在系统写出来后就没怎么进行更新了。
安全
安全嘛,得要看你是怎么判断的了。
其实很早之前就了解到Valine的安全问题了,Valine因为设计架构上的缺陷,可能会造成数据可篡改和用户信息泄露等等的问题。只是我一直都没有动力去换,在出了LeanCloud停止服务这件事情后,我便开始着手评论系统的更换。
现在很多的评论系统都不想Valine一样无后端,前端直接连接数据库,而是通过服务端中间层,这大大的提升了它人获取用户信息的难度。
选择
在熬夜挑选之下,我还是选择了几个我比较看好的系统,分别是Waline和Twikoo,并且实际的在本地进行了实装和测试。
一个是为了代替不安全的Valine而生的,另外一个也算是较为成熟的系统。
实际部署完成以后,我个人还是觉得有必要说一下。
- Waline针对Valine的迁移工具是有问题的,不知道是否是服务出错了还是啥毛病,它的工具无法使用。而Twikoo则是很方便,直接导入,完美适配。这点是需要注意的。
这里我还是选择了Waline,毕竟在外观上Valine和Waline可以说很是类似,也就代表着我不需要花费很大的精力去修改它的外观或者某些功能。
至于Twikoo,说实在话并不是特别的好修改,要动的东西比较多(无论是js或者css文件),我追求的是和Valine差不多类似的外观。还有一点就是它的js文件是真的大太多了,部署上还比Waline要麻烦。
(只支持MongoDB数据库,你得单独的去注册MongoDB Atlas,然后创建数据库,再去选择vercel进行部署,多了一大堆步骤)
部署Waline
整体的部署过程可以参考Waline的说明文档,在Vercel上部署Waline,它是一个完美的说明文档。
快速上手 | Waline (就参考此文档,不要看下方部署里的Vercel部署,那个是基于Leancloud的!)
https://waline.js.org/guide/get-started/
我个人推荐是在Vercel上进行部署,最不推荐的是Railway!
先不说Railway费用的问题,Waline的部署说明文档已经不适用于现在的Railway了。
- 数据库需要你自行连接却执行命令(反正我在控制面板里没有找到直接执行数据库命令的地方)
- 变量也要你手动设置(参考Waline文档设置变量名,再参考Railway那边配置变量)整体操作下来麻烦的要死
- 并且它不是免费的,只是给你5美元的额度进行试用,5美元花完了就需要你充钱了!
新手小白直接选择Vercel部署就行!(一定要按照上方的链接!)
迁移遇到的问题
部署Waline,按照上面的文档走是铁定没有任何问题的!但是在迁移上,我可是遇到了很多问题。
Leancloud导出的数据无法通过数据迁移助手进行转换
数据迁移助手 | Waline
https://waline.js.org/migration/tool.html
上面是Waline的数据迁移助手,各位可以自行尝试一下。反正我这里是没法正常使用的。
我是通过Deepseek帮忙改了改将数据放到数据库中的。(没办法,除了做毕设那会,现在早就不碰数据库相关的东西了,我懒得再去看资料写东西转换导入了)
迁移完成后,评论会报错“duplicate key value violates unique constraint “wl_comment_pkey””
解决办法:在数据库中运行 SELECT setval('wl_comment_seq', (SELECT MAX(id) FROM wl_comment)+1)
如果你使用的是Vercel,则在你的项目中选择 Storage点击 Open in Neon 。
在新打开的页面中选择 SQL Editor,在其中运行此命令。
具体可以参考快速上手-创建数据库 | Waline。在执行SQL语句时替换命令即可。