在 AMH 面板中部署博客评论系统 Twikoo
Twikoo 是什么
Twikoo 是一个挺好用的博客评论系统,有如下特点
- 基于 Nodejs,支持静态博客
- 样式简洁通用,支持嵌套,基本无需修改
- 私有部署的时候无需数据库
- 支持插入图片、代码、表情,支持代码高亮
- 支持配置 Akismet 反垃圾,支持频次控制
- 支持邮件通知
更多特性可以看这里:Twikoo 文档 - 快速上手
为什么要私有部署
其实最开始是白嫖的 Vercel 和 MongoDB,但是因为备份数据不方便,决定换成私有部署
过程
部署的环境是
- Debain VPS
- AMH 面板(LNMP)
安装 Twikoo
- 安装 Node.js,参见:《在 AMH 面板中使用 Node.js 的一些记录》
- 安装 Twikoo,详情参见:私有部署
# 安装 Twikoo
npm i -g tkserver
# 查看 Twikoo 的安装目录
npm root -g
- 编辑环境变量
vi ~/.bashrc
- 增加 Twikoo 相关的环境变量
export TWIKOO_DATA="数据存放的目录,例如 home/wwwroot/domain.com/data"
export TWIKOO_PORT="端口号,例如 8080"
- 保存后,执行
source ~/.bashrc
配置 Nginx 反代
我直接用博客的一个子目录地址而不是子域名,这样省得再配置一遍 SSL,也不会有跨域等乱七八糟的问题
假设这个子目录是 twikoo,假设上面配置的端口号是 8080
在 AMH 面板的 “网站-规则管理” 中编辑 AMRewrite 规则(注意 nginx 中 location 的顺序优先级)
location ^~ /comment/ {
# 设置一些代理的header信息,这些信息将被透传到 Node.js 服务的header信息里
proxy_set_header Connection "";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
# 代理服务
proxy_pass http://127.0.0.1:8999$request_uri;
# 忽略其他重写
proxy_redirect off;
}
启动 Twikoo 并设置保活
# 安装 pm2
npm install -g pm2
# 启动服务
pm2 start tkserver
# 保存服务
pm2 save
# 保活
pm2 startup
好了,剩下的可以参照 Twikoo 文档配置使用了