最近,我例行登入Leancloud后发现——Leancloud要停服了!

关于 LeanCloud 停止对外提供服务的通知
https://docs.leancloud.app/sdk/announcements/sunset-announcement
其中,最重要的一点是:自本公告发布之日起满一年,即 2027 年 1 月 12 日 。
也就是说,基于Leancloud搭建的Valine评论系统最后的deadline是明年1月,除非Valine转向其它平台。

已经有人在Github上询问解决办法了,但目前为止还未收到作者的回答
在考虑到Valine实际的安全性和后期的服务,我决定还是将网站的评论系统由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和Waline可以说很是类似,也就代表着我不需要花费很大的精力去修改它的外观或者某些功能。
至于Twikoo,说实在话并不是特别的好修改,要动的东西比较多(无论是js或者css文件),我追求的是和Valine差不多类似的外观。还有一点就是它的js文件是真的大太多了,部署上还比Waline要麻烦。
(只支持MongoDB数据库,你得单独的去注册MongoDB Atlas,然后创建数据库,再去选择vercel进行部署,多了一大堆步骤)
整体的部署过程可以参考Waline的说明文档,在Vercel上部署Waline,它是一个完美的说明文档。
快速上手 | Waline (就参考此文档,不要看下方部署里的Vercel部署,那个是基于Leancloud的!)
https://waline.js.org/guide/get-started/
我个人推荐是在Vercel上进行部署,最不推荐的是Railway!
先不说Railway费用的问题,Waline的部署说明文档已经不适用于现在的Railway了。
新手小白直接选择Vercel部署就行!(一定要按照上方的链接!)
部署Waline,按照上面的文档走是铁定没有任何问题的!但是在迁移上,我可是遇到了很多问题。
数据迁移助手 | Waline
https://waline.js.org/migration/tool.html
上面是Waline的数据迁移助手,各位可以自行尝试一下。反正我这里是没法正常使用的。
我是通过Deepseek帮忙改了改将数据放到数据库中的。(没办法,除了做毕设那会,现在早就不碰数据库相关的东西了,我懒得再去看资料写东西转换导入了)
解决办法:在数据库中运行 SELECT setval('wl_comment_seq', (SELECT MAX(id) FROM wl_comment)+1)
如果你使用的是Vercel,则在你的项目中选择 Storage点击 Open in Neon 。
在新打开的页面中选择 SQL Editor,在其中运行此命令。
具体可以参考快速上手-创建数据库 | Waline。在执行SQL语句时替换命令即可。