01 介绍

Twikoo 是一个简洁、安全、免费的静态网站评论系统。其特点是搭建简单,可以使用云开发 / Vercel / 私有部署作为评论后台。

本文主要

  • 介绍如何通过 docker-compose 私有化部署 Twikoo;
  • 同时,介绍如何与 Hexo 博客框架结合可以搭建自己的博客评论区。

02 docker-compose 配置

1
2
3
4
# 创建文件夹,并进入twikoo目录
mkdir -p ~/docker_data/twikoo
cd ~/docker_data/twikoo
nano docker-compose.yml

docker-compose.yml 中配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
version: '3'
services:
twikoo:
image: imaegoo/twikoo
container_name: twikoo
restart: unless-stopped
ports:
- [YOUR_PORT]:8080
environment:
TWIKOO_THROTTLE: 250
volumes:
- ./data:/app/data

通过 docker-compose 启动 Twikoo

1
docker-compose up -d

03 Nginx 反向代理

通过 nginx 配置方向代理,例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
upstream twikoo {
server 172.17.0.1:8080;
}

server{
server_name twikoo.domain.example.com;

location / {
proxy_pass http://twikoo;
rewrite ^/(.*)$ /$1 break;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade-Insecure-Requests 1;
proxy_set_header X-Forwarded-Proto https;

client_max_body_size 20000m;
}

listen [::]:80;
listen 80;
}

根据自己需求,修改端口号和反向代理的逻辑。

04 如何使用 Twikoo

完成服务部署后,确认服务是否正常。

然后,我们可以将 Twikoo 与 Hexo 结合,成为博客评论区。注意的是,Twikoo 的各种配置可以在 Hexo-Butterfly 主题的使用过程中进行设置,而不是通过某个配置文件进行设置。

4.1 激活 admin

通过 certbot --nginx 配置完证书后,我们就可以开始使用 Twikoo。

首先,在 Hexo-Butterfly 的主题配置文件中启用 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
#######################
## `comments` 配置如下 ##
#######################

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 # Valine,Disqus
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: true
count: true # Display comment count in post's top_img
card_post_count: true # Display comment count in Home Page

#######################
## `twikoo` 配置如下 ##
#######################

twikoo:
envId: [环境ID,私有部署填写域名]
region: [环境地域,默认ap-shanghai;用腾讯云才要填,私有部署则空置]
visitor: false [开启visitor后,文章页访问人数将由 Twikoo 提供,而不是 卜算子]
option: [可选配置]

(Hexo-Butterfly官方参考连接: Butterfly 安裝文檔(四) 主題配置-2

然后,点击设置选项按钮。第一次登陆admin(从未创建admin)时,可以设置密码,至此创建admin来管理Twikoo的各种设置。

如果忘记了admin密码,那么:

  • 腾讯云请前往云开发控制台
  • Vercel 请前往 MongoDB;
  • 私有部署请直接编辑 data/db.json.1,编辑配置,删除 config.ADMIN_PASS 配置项,然后前往 Twikoo 管理面板重新设置密码。

(Twikoo官方参考链接: Twikoo常见问题)

4.2 隐藏设置选项

Admin 可以设置一个口令,以此隐藏 admin 设置选项。

当昵称为我们设置的口令时,才会展现设置选项按钮。虽然进入admin管理界面同样需要验证admin密码,但是对普通用户隐藏设置选项按钮可以使页面更简洁,避免用户瞎点产生不必要的疑问。

4.3 细节配置