本站用的评论系统是TwikooTwikoo 是一个简洁、安全、免费的静态网站评论系统。

本站是自己搭建的私服Twikoo,Twikoo私有部署官方文档
没有服务器的可以参考Twikoo官方文档Vercel + MongoDB 方案搭建 Twikoo 评论系统

Twikoo 前期准备工作

首先得有个云服务器,其次服务器上安装了DockerNginx
博主自己的服务器是Linux Centos 7系统,下面的步骤也是根据Linux命令操作

安装

方案一:Docker安装Twikoo及运行Twikoo

  1. Docker拉取Twikoo镜像
    1
    2
    3
    docker search twikoo

    sudo docker pull imaegoo/twikoo
  2. 创建并启动Docker容器

    自定义Twikoo端口:6060,端口改成自己的访问端口
    注意:记得设置自定义的端口的时候,切记需要把该端口开放

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

    遇到问题

    启动Docker容器报错

    1
    Error response from daemon: driver failed programming external connectivity XXXXXX

    解决方案:重启Docker
    1
    systemctl restart docker

  3. 浏览器访问
    http://服务器的ip:6060

    1
    2
    3
    4
    5
    {
    "code": 100,
    "message": "Twikoo 云函数运行正常,请参考 https://twikoo.js.org/quick-start.html#%E5%89%8D%E7%AB%AF%E9%83%A8%E7%BD%B2 完成前端的配置",
    "version": "1.6.10"
    }
  4. 解析域名

    域名平台解析一下域名到服务器,这里用的都是博主自己的域名和服务器ip,需要改成你们自己的域名和ip
    配置nginx,配置服务器上的nginx.conf配置

    1
    2
    3
    4
    5
    6
    7
    8
    # Twikoo博客评论转发
    server{
    listen 80;
    server_name twikoo.renyuxin.cn;
    location / {
    proxy_pass http://127.0.0.1:6060;
    }
    }

前期准备工作准备完成,就可以在_config.butterfly.yml中配置Twikoo

方案二:Linux安装Twikoo及运行Twikoo

  1. 创建 systemd 服务文件
    1
    sudo nano /etc/systemd/system/tkserver.service
  2. 编辑服务文件内容

    自定义Twikoo端口:6060,端口改成自己的访问端口
    注意:记得设置自定义的端口的时候,切记需要把该端口开放

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    [Unit]
    Description=Twikoo Comment Server
    After=network.target

    [Service]
    Type=simple
    User=smart
    Group=smart
    WorkingDirectory=/home/smart/smart-twikoo
    Environment=TWIKOO_PORT=6060
    ExecStart=/usr/local/node/node-v20.11.1-linux-x64/bin/tkserver
    Restart=always
    RestartSec=3
    StandardOutput=append:/home/smart/smart-twikoo/tkserver.log
    StandardError=append:/home/smart/smart-twikoo/tkserver.log

    [Install]
    WantedBy=multi-user.target
  3. 重新加载并测试
    1
    2
    3
    4
    5
    6
    7
    8
    # 重新加载 systemd 配置
    sudo systemctl daemon-reload
    # 启动服务
    sudo systemctl start tkserver
    # 查看状态
    sudo systemctl status tkserver
    # 查看详细日志
    sudo journalctl -u tkserver -n 30 -f
  4. 手动测试确认
    1
    2
    3
    4
    # 切换到正确目录
    cd /home/smart/smart-twikoo
    # 手动启动测试
    TWIKOO_PORT=6060 /usr/local/node/node-v20.11.1-linux-x64/bin/tkserver
  5. 浏览器浏览
    1
    2
    3
    4
    5
    {
    "code":100,
    "message":"Twikoo 云函数运行正常,请参考 https://twikoo.js.org/frontend.html 完成前端的配置",
    "version":"1.6.44"
    }

Twikoo

从3.0.0开始,开启评论需要在comments-use中填写你需要的评论,这里参照你主题版本的格式写。
支持双评论显示,只需要配置两个评论(第一个为默认显示)

修改主题配置文件_config.butterfly.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
comments:
# 系统最多有两个注释,第一个将显示为默认
# Choose: Disqus/Disqusjs/Livere/Gitalk/Valine/Waline/Utterances/Facebook Comments/Twikoo
use:
# - Disqus
# - Valine
- Twikoo # 这里按照你主题版本的格式写
text: true # 在按钮旁边显示注释名称
# 当注释元素进入浏览器的视口时,注释系统将被加载。
lazyload: true # 如果将其设置为true,则评论计数将无效
count: true # 在帖子的顶部img显示评论计数
card_post_count: true # 在首页显示评论计数
# Twikoo
# https://github.com/imaegoo/twikoo
twikoo:
# envId: https://smart-twikoo.vercel.app/
envId: http://twikoo.renyuxin.cn/
region:
visitor: true
option:

参数 解释
use 使用的评论(请注意,最多支持两个,如果不需要请留空)
注意:双评论不能是 Disqus 和 Disqusjs 一起,由于其共用同一个 ID,会出错
text 是否显示评论服务商的名字
lazyload 是否为评论开启lazyload,开启后,只有滚动到评论位置时才会加载评论所需要的资源(开启 lazyload 后,评论数将不显示)
count 是否在文章顶部显示评论数
livere、Giscus 和 utterances 不支持评论数显示
card_post_count 是否在首页文章卡片显示评论数
gitalk、livere 、Giscus 和 utterances 不支持评论数显示

替换表情包

Twikoo的管理面板中,点击插件找到EMOTION_CDN,修改表情CDN的链接(默认:https://owo.imaegoo.com/owo.json)
可以根据个人的喜好,按照下面的JSON结构体自己做一个JSON文件,再上传到云上(博主用的是阿里云OSS),直接把链接丢进去。
另外提供一个【常用表情包合集
owo.json的JSON结构体如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"表情包名称2": {
"type": "emoticon",
"container": [
{ "icon": "😊", "text": "微笑" },
{ "icon": "<img src=\"https://owo.imaegoo.com/bilibili/a8111ad55953ef5e3be3327ef94eb4a39d535d06.png\">", "text": "tv_亲亲" }
]
},
"表情包名称2": {
"type": "emoticon",
"container": [ ]
}
}

例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
"颜文字": {
"type": "emoticon",
"container": [
{ "icon": "OωO", "text": "Author: DIYgod" },
{ "icon": "|´・ω・)ノ", "text": "Hi" }
]
},
"Emoji": {
"type": "emoji",
"container": [
{ "icon": "😂", "text": "" },
{ "icon": "😀", "text": "" }
]
},
"Bilibili": {
"type": "image",
"container": [
{ "icon": "<img src=\"https://owo.imaegoo.com/bilibili/6ea59c827c414b4a2955fe79e0f6fd3dcd515e24.png\">", "text": "tv_doge" },
{ "icon": "<img src=\"https://owo.imaegoo.com/bilibili/a8111ad55953ef5e3be3327ef94eb4a39d535d06.png\">", "text": "tv_亲亲" }
]
}
}


评论
文章分类文章标签
随便逛逛阅读模式
全屏模式