参考文档

根据官方文档,我选择了Docker部署方式

部署指南

安装Docker

这个不会还有人不会吧,请到网上搜一下教程

Docker启动Twikoo

1
docker run -p 8080:8080 -v ${PWD}/data:/app/data -d imaegoo/twikoo

如果镜像下载速度慢,可以将命令中的 imaegoo/twikoo 替换成 registry.cn-hangzhou.aliyuncs.com/imaegoo/twikoo
默认端口 8080,如果遇到端口冲突问题,请修改命令中的 8080:8080自定义端口:8080

测试Twikoo

1
2
[root@qiushaohu qiushaohu.cloud]# curl http://localhost:8080/
{"code":100,"message":"Twikoo 云函数运行正常,请参考 https://twikoo.js.org/frontend.html 完成前端的配置","version":"1.6.31"}

如果您看到类似 “Twikoo 云函数运行正常” 的提示,那么 Twikoo 已经部署成功。

使用nginx作为反代,以通过 HTTPS 访问 Twikoo

这一步我偷了个懒,我的网站qiushaohu.com本身就是通过nginx反代并在nginx上配置的ssl证书,那么我想能不能直接使用一个资源路径来访问twikoo例如:

https://qiushaohu.cloud/twikoo

说干就干,修改nginx配置,添加location /twikoo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
server {
listen 443 ssl; # 监听 443 端口,并启用 SSL
server_name qiushaohu.cloud; # 域名

ssl_certificate /etc/nginx/ssl/qiushaohu.cloud.pem; # SSL 证书文件路径
ssl_certificate_key /etc/nginx/ssl/qiushaohu.cloud.key; # SSL 私钥文件路径

# 其他 SSL 配置选项
ssl_protocols TLSv1.2 TLSv1.3; # 启用的 SSL/TLS 协议版本
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:...'; # 允许的加密套件
ssl_prefer_server_ciphers on; # 服务器优先选择加密套件
ssl_session_cache shared:SSL:10m; # SSL 会话缓存
ssl_session_timeout 5m; # SSL 会话超时时间

# 配置日志文件
access_log /var/log/nginx/qiushaohu.cloud.access.log;
error_log /var/log/nginx/qiushaohu.cloud.error.log;

location / {
proxy_pass http://127.0.0.1:4000;
}

+ location /twikoo {
+ proxy_pass http://127.0.0.1:8080;
+ }
}

ok, 配置完成,reload一下nginx

1
2
3
4
5
6
[root@qiushaohu conf.d]# vim qiushaohu.cloud.conf 
[root@qiushaohu conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@qiushaohu conf.d]# nginx -s reload

语法ok,reload成功,浏览器点一下试试:
测试域名是否可用

完美,至此已私有化部署完成!

配置指南

开启评论功能

修改主题文件_config.butterfly.yml,找到comments,修改use值为twikoo

1
2
3
4
5
6
7
8
9
10
11
12
13
# Comments System
# --------------------------------------

comments:
# Up to two comments system, the first will be shown as default
# Choose: Disqus/Disqusjs/Livere/Gitalk/Valine/Waline/Utterances/Facebook Comments/Twikoo/Giscus/Remark42/Artalk
+ use: twikoo
text: true # Display the comment name next to the button
# lazyload: The comment system will be load when comment element enters the browser's viewport.
# If you set it to true, the comment count will be invalid
lazyload: false
count: false # Display comment count in post's top_img
card_post_count: false # Display comment count in Home Page

配置wtikoo的envId为刚刚配置的域名

1
2
3
4
5
6
7
# Twikoo
# https://github.com/imaegoo/twikoo
twikoo:
+ envId: https://qiushaohu.cloud/twikoo
region:
visitor: false
option:

最后一步,重启hexo,看效果

因为在commonts里面的配置,只在文章页显示评论,首页不显示(可以按需决定是否要打开),所以在hexo s后,随便找一篇文章试试吧
测试写评论
提交后效果