hexo添加twikoo评论系统

记录一下hexo+butterfly+twikoo评论系统的踩坑历程,希望能帮助更多有想法的人

之前一直在用的评论系统是Valine,部署上去是这样的

用国内的valine访问也挺快的,至少不会被墙,但是有次正常访问出现了点问题,我没截图,评论区下面出现了BUG,是valine加载错误导致的,把内部信息暴漏了出来。其实对我这个白嫖用户来说也没啥大问题。

我想着如果哪天valine收费了,岂不是还要折腾,我就在想能不能把评论系统部署在自己的服务器上呢,之前也有过这种想法,但是没能实现。

今天搞了一下发现其实挺简单的,因为twikoo已经支持了私有部署的的功能。总体分为两种,一种是部署本地直接安装twikoo的功能,一种是用docker,这里强烈建议用docker部署,至少它不会被环境干扰导致出现问题,而且本人一开始用的第一种方案,部署上去后就出现了问题:

在本地发送评论可以正常推送,部署到线上后反而无法评论,也无法拉取评论的现象,初步认为是无法正常连通到服务器。

直接用docker来安装吧,这里是twikoo的官网文档云函数部署 | Twikoo 文档,教程不详细且看不懂。

我服务器用的是宝塔面板,操作起来更方便些。这里主讲twikoo评论系统

安装配置

首先安装docker,宝塔面板可以直接安装

安装完成后使用命令创建twikoo的容器

1
docker run --name twikoo -e TWIKOO_THROTTLE=1000 -p 8080:8080 -v ${PWD}/data:/app/data -d imaegoo/twikoo

因为docker镜像在国内被封禁的原因,需要配置代理curl,或配置镜像源,需要的可以在某宝上或者网上查找,想方便的建议用淘宝买,1块钱可以下一次镜像,不得不佩服国人的商业头脑

创建好容器后默认的端口是8080,需要放行8080端口

1
firewall-cmd --zone=public --add-port=8080/tcp --permanent  

查看开放的端口

1
firewall-cmd --list-ports  

也需要在服务器商的配置安全组放行8080端口

完成后访问http://IP:8080出现一下信息说明配置成功

1
2
3
4
5
{
"code": 100,
"message": "Twikoo 云函数运行正常,请参考 https://twikoo.js.org/frontend.html 完成前端的配置",
"version": "1.6.40"
}

本地配置

接下来在config_butterfly.yml配置文件添加twikoo的配置信息

打开主题配置文件config_butterfly.yml

找到comments:use:设置为Twikoo

找到twikooenvId:先设置为http://youIP:8080

1
2
twikoo:
envId: http://Ip:8080

然后保存,hexo三联在本地运行后配置一下twikoo的初始密码

1
hexo cl;hexo g;hexo s

找到评论区,点开设置

配置根据它的指引配置一下就可以了

反向代理

然后就是做反向代理,目的就是做https加密,现在明文传输很不安全。

因为我用的宝塔面板,所以配置起来也很方便

首先添加站点

设置为纯静态

然后去阿里云申请一个免费证书数字证书管理服务控制台

如果域名服务商和申请证书的服务商不一样,可能需要配置一下DNS解析,阿里云会有指引配置。

然后下载给的证书,注意是pem和key格式的

分别粘贴到宝塔的密钥和证书上,并开启强制HTTPS

然后在开启反向代理

然后在主题配置文件butterfly_config.yml修改twikooenvID写为你的域名

最后上线完成

参考

Twikoo腾讯云函数部署转移到私有部署 | 张洪Heo

linux安装Twikoo 评论系统私有部署保姆级(非Docker)-CSDN博客