hexo-Butterfly主题添加Twikoo评论系统
¶Twikoo
Twikoo 是一个简洁、安全、免费的静态网站评论系统。
¶特色
¶简单
- 免费搭建(使用云开发 / Vercel / 私有部署评论后台)
- 简单部署(支持云开发 / Vercel 一键部署)
¶易用
- 支持回复、点赞
- 无需额外适配,支持搭配浅色主题与深色主题使用
- 支持 API 调用,批量获取文章评论数、最新评论
- 访客在昵称栏输入 QQ 号,会自动补全 QQ 昵称和 QQ 邮箱
- 访客填写数字 QQ 邮箱,会使用 QQ 头像作为评论头像
- 支持评论框粘贴图片(可禁用)
- 支持插入图片(可禁用)
- 支持去不图床、云开发图床
- 支持插入表情(可禁用)
- 支持 Ctrl + Enter 快捷回复
- 评论框内容实时保存草稿,刷新不会丢失
- 支持 Katex 公式
- 支持按语言的代码高亮
¶安全
- 隐私信息安全(通过云函数控制敏感字段(邮箱、IP、环境配置等)不会泄露)
- 支持 Akismet 垃圾评论检测(需自行注册 akismet.com)
- 支持腾讯云内容安全垃圾评论检测(需自行注册 腾讯云内容安全)
- 支持人工审核模式
- 防 XSS 注入
- 支持限制每个 IP 每 10 分钟最多发表多少条评论
¶即时
¶个性
- 支持自定义评论框背景图片
- 支持自定义“博主”标识文字
- 支持自定义通知邮件模板
- 支持自定义评论框提示信息(placeholder)
- 支持自定义表情列表(兼容 OwO 的数据格式)
- 支持自定义【昵称】【邮箱】【网址】必填 / 选填
- 支持自定义代码高亮主题
¶便捷管理
- 内嵌式管理面板,通过密码登录,可方便地查看评论、隐藏评论、删除评论、修改配置
- 支持隐藏管理入口,通过输入暗号显示
- 支持从 Valine、Artalk、Disqus 导入评论
¶缺点
- 不支持 IE
¶部署
以下是使用 Docker Compose
部署 Twikoo
评论系统的完整步骤,包含 MongoDB
数据库 和 Twikoo
服务 的集成
¶创建Docker-compose.yml
version: '3' |
¶配置说明
¶MongoDB 服务
- 持久化数据:
./mongo_data
目录用于保存数据库文件。 - 安全认证:通过
MONGO_INITDB_ROOT_*
设置 root 账户(生产环境建议创建非 root 用户)。 - 网络:与 Twikoo 共享
twikoo-net
网络,通过服务名mongodb
内部通信。
¶Twikoo 服务
- MongoDB 连接:
MONGODB_URI
格式为mongodb://用户名:密码@服务名:端口/数据库名?authSource=admin
。 - SMTP 邮件服务:按需取消注释并配置,用于发送评论通知。
¶启动服务
# 创建目录并启动容器 |
¶验证部署
检查容器状态:
docker-compose ps |
输出应显示两个容器均为 running
状态。
测试评论功能
在 Hexo 博客中提交评论,观察 MongoDB 数据库是否生成记录:
docker exec -it twikoo-mongodb mongosh -u root -p your_mongodb_root_password --authenticationDatabase admin |
¶对接Hexo-Butterfly主题
在 Hexo 的 _config.butterfly.yml
中配置 Twikoo:
comments: |
¶安全加固
通过反向代理启用HTTPS
使用 Nginx 配置 SSL 并代理到 8080
端口:
server { |
创建 MongoDB 非 root 用户
进入MongoDB容器:
docker exec -it twikoo-mongodb mongosh -u root -p your_mongodb_root_password --authenticationDatabase admin |
创建专用用户:
use twikoo |
更新 docker-compose.yml
中的 MONGODB_URI
:
MONGODB_URI: mongodb://twikoo:twikoo_password@mongodb:27017/twikoo?authSource=twikoo |
¶维护命令
操作 | 命令 |
---|---|
停止服务 | docker-compose down |
更新镜像 | docker-compose pull && docker-compose up -d |
查看日志 | docker-compose logs -f |
备份数据 | 打包 mongo_data 目录 |
¶常见问题
无法连接 MongoDB
- 检查网络:确保
twikoo
和mongodb
容器在同一网络。 - 验证 URI:使用
docker exec -it twikoo sh
进入容器,执行curl http://mongodb:27017
测试连通性。
¶效果
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 人间客的Blog!
评论