前言
静态博客需要评论功能时,由于没有后端支持,必须借助外部评论引擎。本文推荐四款完全免费开源的评论系统,每款都有详细的部署步骤。
1. Twikoo —— 最省心的自部署方案
Twikoo 是基于 Vercel Serverless + MongoDB 的现代评论系统。
优点
- 部署极其简单,Vercel 一键部署
- 永远免费(Vercel + MongoDB Atlas 免费额度绰绰有余)
- 功能齐全:评论、回复、表情、邮件通知、反垃圾
- 国内访问速度快
- 数据自有,不依赖第三方平台
部署步骤
- 注册 MongoDB Atlas,创建免费集群,获取连接字符串
- Fork Twikoo 仓库
- 在 Vercel 中导入项目,设置环境变量
MONGODB_URI - 部署完成后获得一个 API 地址
- 在博客页面中引入 Twikoo JS 并初始化
1<div id="twikoo-comments"></div>
2<script src="https://cdn.jsdelivr.net/npm/twikoo/dist/twikoo.all.min.js"></script>
3<script>
4twikoo.init({
5 envId: 'https://your-twikoo-api.vercel.app',
6 el: '#twikoo-comments',
7 lang: 'zh-cn'
8});
9</script>
邮件通知配置
在 Vercel 环境变量中添加 SMTP 配置:
1SMTP_HOST=smtp.example.com
2SMTP_PORT=465
3SMTP_USER=your-email@example.com
4SMTP_PASS=your-password
5SENDER_NAME=博客评论通知
6SENDER_EMAIL=your-email@example.com
文章点赞
Twikoo 支持文章点赞功能,在初始化时添加:
1twikoo.init({
2 envId: '...',
3 el: '#twikoo-comments',
4 onCommentLoaded: function () {
5 // 获取点赞数
6 twikoo.getRecentComments({
7 envId: '...',
8 pageSize: 0,
9 includeReply: false
10 }).then(function (data) {
11 // 遍历 data 获取每条评论对应的文章点赞数
12 });
13 }
14});
2. Waline —— 功能最全面的方案
Waline 是 Valine 的进化版,功能更加丰富。
优点
- 支持社交登录(GitHub、Twitter、微博等)
- 文章反应(表情表态)
- 访客 IP 归属地展示
- 完整的文档和社区
部署步骤
- 注册 LeanCloud(国际版),创建应用,获取 AppId 和 AppKey
- 在 Vercel 中部署 Waline
- 设置环境变量:
LEAN_ID- LeanCloud AppIdLEAN_KEY- LeanCloud AppKeyLEAN_MASTER_KEY- LeanCloud MasterKey
- 引入 Waline 并初始化
1<div id="waline-comments"></div>
2<script type="module">
3import { init } from 'https://unpkg.com/@waline/client/dist/waline.mjs';
4init({
5 el: '#waline-comments',
6 serverURL: 'https://your-waline-api.vercel.app',
7 lang: 'zh-cn',
8 login: 'enable',
9 reaction: true,
10 pageview: true
11});
12</script>
3. Artalk —— 最轻量的独立方案
Artalk 是 Go 语言编写的轻量评论系统,使用 SQLite 单文件数据库。
优点
- 极其轻量,二进制文件几 MB
- SQLite 数据库,备份只需复制一个文件
- Docker 一键部署
- 数据完全自控
部署步骤
1# Docker 一键部署
2docker run -d \
3 --name artalk \
4 -p 8080:23366 \
5 -v $(pwd)/data:/data \
6 artalk/artalk-go:latest
前端引入:
1<div id="artalk-comments"></div>
2<link href="https://your-server:8080/dist/Artalk.css" rel="stylesheet">
3<script src="https://your-server:8080/dist/Artalk.js"></script>
4<script>
5Artalk.init({
6 el: '#artalk-comments',
7 server: 'https://your-server:8080',
8 site: '你的站点名',
9 pageKey: location.pathname
10});
11</script>
数据备份
1# 直接复制 SQLite 数据库文件
2cp /data/artalk-go.db ./backup/artalk-go-$(date +%Y%m%d).db
4. Giscus —— 最轻量的 GitHub 方案
Giscus 基于 GitHub Discussions API,无需任何后端服务。
优点
- 零后端,零费用
- 评论存储在 GitHub Discussions 中
- 天然支持 Markdown
- 自带点赞和排序
部署步骤
- GitHub 仓库启用 Discussions
- 安装 Giscus App,授权仓库
- 访问 Giscus 配置页面,填写仓库名,获取配置代码
1<script src="https://giscus.app/client.js"
2 data-repo="username/repo"
3 data-repo-id="R_kgxxxxxxxx"
4 data-category="Announcements"
5 data-category-id="DIC_xxxxxx"
6 data-mapping="pathname"
7 data-strict="0"
8 data-reactions-enabled="1"
9 data-emit-metadata="0"
10 data-input-position="bottom"
11 data-theme="preferred_color_scheme"
12 data-lang="zh-CN"
13 crossorigin="anonymous"
14 async>
15</script>
选型对比表
| 特性 | Twikoo | Waline | Artalk | Giscus |
|---|---|---|---|---|
| 部署难度 | ⭐ 极简 | ⭐⭐ 简单 | ⭐⭐ 简单 | ⭐ 极简 |
| 免费程度 | 免费 | 免费 | 需服务器 | 免费 |
| 社交登录 | 无 | 支持 | 部分 | GitHub 登录 |
| 邮件通知 | ✅ | ✅ | ✅ | GitHub通知 |
| 文章点赞 | ✅ | ✅ | ❌ | ✅ |
| 数据自控 | ✅ | ✅ | ✅ | GitHub |
| 国内速度 | 好 | 好 | 取决于服务器 | 依赖GitHub |
| 管理后台 | 有 | 有 | 有 | GitHub界面 |
最终建议
- 新手首选:Twikoo,Vercel 一键部署,零成本,功能全
- 需要登录:Waline,支持多种社交平台登录
- 有服务器:Artalk,数据完全自控,备份方便
- 开发者博客:Giscus,利用 GitHub 生态,零配置
留言评论
期待你的想法评论加载中