简介 之前博客用过WordPress,但是动态博客用起来有些太重了,并且很多功能也用不到,所以重新搭建了hexo框架的静态博客。评论系统首先使用的是Giscus,但是需要登录github账号进行评论,对于一些没有技术基础的用户易用性较差,所以选择本地化搭建一套免费的,易用性强的评论静态网站评论系统。本文使用hexo静态博客系统 Butterfly 5.4版本主题下使用Twikoo评论系统。
搭建 本文使用私有部署,如果使用云部署可以参考twikoo官网 文档。私有部署涉及终端操作、申请证书、配置反向代理或负载均衡等操作,如果都不了解,建议使用别的部署方式
安装环境配置 服务端下载安装 Node.js 根据实际的操作系统,使用对应命令下载。具体安装命令可以根据系统使用nodejs的下载页面进行生成。
安装 Twikoo server
根据需要配置环境变量
名称
描述
默认值
MONGODB_URI
MongoDB 数据库连接字符串,不传则使用 lokijs
null
MONGO_URL
MongoDB 数据库连接字符串,不传则使用 lokijs
null
TWIKOO_DATA
lokijs 数据库存储路径
./data
TWIKOO_PORT
端口号
8080
TWIKOO_THROTTLE
IP 请求限流,当同一 IP 短时间内请求次数超过阈值将对该 IP 返回错误
250
TWIKOO_LOCALHOST_ONLY
为true
时只监听本地请求,使得 nginx 等服务器反代之后不暴露原始端口
null
TWIKOO_LOG_LEVEL
日志级别,支持 verbose
/ info
/ warn
/ error
info
TWIKOO_IP_HEADERS
在一些特殊情况下使用,如使用了 CloudFlare CDN
它会将请求 IP 写到请求头的 cf-connecting-ip
字段上,为了能够正确的获取请求 IP 你可以写成 ["headers.cf-connecting-ip"]
[]
启动服务
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 28 29 30 启动服务有多种方式,本文建议使用systemctl统一管理 sudo vim /lib/systemd/system/tkserver.service [Unit] Description=TKServer service After=network.target [Service] Type=simple User=root Restart=always RestartSec=5 LimitNOFILE=655350 ExecStart=/usr/local/bin/tkserver Environment="TWIKOO_PORT=8000 TWIKOO_DATA=/home/ops/service/twikoo-data TWIKOO_LOCALHOST_ONLY=true" StandardOutput=append:/var/log/twikoo/twikoo.log StandardError=append:/var/log/twikoo/twikoo.error.log [Install] WantedBy=multi-user.target 注意将所需要的变量写入Environment。 启动服务并设置为开机启动: sudo systemctl start tkserver.service sudo systemctl status tkserver.service sudo systemctl enable tkserver.service
配置前置代理实现 HTTPS 访问 可以用 Nginx、负载均衡或 Cloudflare 等。本文使用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 server { listen 80; server_name twikoo.yourdomain.com; //域名根据实际需求配置 return 307 https://$host$request_uri; } server { listen 443 ssl http2; server_name twikoo.yourdomain.com; //域名根据实际需求配置 ssl_certificate /etc/nginx/cert/yourdomain.com.crt; //证书根据实际需求配置 ssl_certificate_key /etc/nginx/cert/yourdomain.com.key; //证书根据实际需求配置 client_max_body_size 2m; location / { proxy_pass http://127.0.0.1:8000; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
博客前端配置 文件中配置 envId 为 https://
加域名(例如 https://twikoo.yourdomain.com
)。本文以Butterfly 5.4为例 修改主题的config.yml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 comments: # Up to two comments system, the first will be shown as default # Leave it empty if you don't need comments # Choose: Disqus/Disqusjs/Livere/Gitalk/Valine/Waline/Utterances/Facebook Comments/Twikoo/Giscus/Remark42/Artalk # Format of two comments system : Disqus,Waline use: twikoo //修改为twikoo # Twikoo # https://github.com/imaegoo/twikoo twikoo: envId: https://twikoo.yourdomain.com //修改为nginx的twikoo域名 region: # Use Twikoo visitor count as the page view count visitor: true option:
提示:
数据默认在 data 目录,请注意定期备份数据。
Linux服务器如果不想使用systemctl服务,可以直接使用命令启动,例如: nohup tkserver >> tkserver.log 2>&1 &
命令后台启动。
开启管理面板 点击评论窗口的“小齿轮”图标,设置管理员密码
进行相关的需求配置
推荐开启的插件:
图床
评论区可以使用上传图片
邮件通知
当有评论时,可以邮件通知。