Waline 评论系统完整配置指南
2026/2/2大约 9 分钟...
本文档提供 Waline 评论系统的完整配置指南,包括评论功能、浏览量统计、通知配置等所有功能。
📚 目录
1. Waline 简介
Waline 是一个简洁、安全的评论系统,基于 Valine 衍生而来,提供了以下核心功能:
- ✅ 评论系统 - 支持 Markdown、表情、图片上传
- ✅ 页面浏览量统计 - 自动统计文章阅读量
- ✅ 评论管理 - 后台管理评论、审核、邮件通知
- ✅ 多语言支持 - 支持中文、英文等多种语言
- ✅ 无需登录 - 访客可直接评论(可配置)
官方资源:
2. 部署 Waline 服务
Waline 需要独立部署服务端,推荐使用 Vercel + Neon PostgreSQL 的免费方案。
2.1 准备工作
- GitHub 账号 - 用于登录 Vercel
- Vercel 账号 - 免费托管 Waline 服务
- 数据库 - 选择以下之一:
- Neon PostgreSQL(推荐)- 免费 512MB,无 API 限制
- LeanCloud - 免费每天 30,000 次 API 请求
2.2 使用 Neon PostgreSQL(推荐)
步骤 1:创建 Neon 数据库
- 访问 Neon Console
- 使用 GitHub 账号登录
- 点击 Create a project
- 填写项目信息:
- Project name:
waline-db - Region: 选择离你最近的区域(如
Asia Pacific (Singapore)) - PostgreSQL version: 保持默认
- Project name:
- 点击 Create project
- 创建成功后,复制 Connection string(格式:
postgresql://user:password@host/database)
步骤 2:部署 Waline 到 Vercel
- 访问 Waline 快速开始
- 点击 Deploy to Vercel 按钮
- 登录 Vercel(使用 GitHub 账号)
- 在部署页面配置环境变量:
PG_DB: 数据库连接字符串(从 Neon 复制的 Connection string)
- 点击 Deploy 开始部署
- 等待部署完成,记录 Vercel 分配的域名(如
https://waline-xxx.vercel.app)
2.3 使用 LeanCloud(备选方案)
步骤 1:创建 LeanCloud 应用
- 访问 LeanCloud 国际版 或 国内版
- 注册并登录
- 创建新应用,选择 开发版(免费)
- 进入应用 → 设置 → 应用凭证
- 记录以下信息:
- AppID
- AppKey
- MasterKey
- REST API 服务器地址
步骤 2:配置安全域名
- 进入 设置 → 安全中心
- 在 Web 安全域名 中添加你的博客域名(如
https://your-blog.com) - 保存设置
步骤 3:部署 Waline 到 Vercel
- 访问 Waline 快速开始
- 点击 Deploy to Vercel 按钮
- 配置环境变量:
LEAN_ID: LeanCloud AppIDLEAN_KEY: LeanCloud AppKeyLEAN_MASTER_KEY: LeanCloud MasterKeyLEAN_SERVER: REST API 服务器地址
- 点击 Deploy 开始部署
3. VuePress 插件配置
在 docs/.vuepress/config.js 中配置 Waline 插件。
3.1 方案 A:启用评论 + 浏览量(推荐)
import { hopeTheme } from 'vuepress-theme-hope'
export default {
theme: hopeTheme({
plugins: {
// Waline 评论系统 (评论 + 阅读量统计)
comment: {
provider: 'Waline',
serverURL: 'https://your-waline-server.vercel.app', // 替换为你的 Waline 服务器地址
// 启用评论功能和页面浏览量统计
comment: true, // 启用评论
pageview: true, // 启用页面浏览量
},
},
}),
}3.2 方案 B:仅启用浏览量统计
如果只需要阅读量统计,不需要评论功能:
comment: {
provider: 'Waline',
serverURL: 'https://your-waline-server.vercel.app',
comment: false, // 禁用评论
pageview: true, // 仅启用页面浏览量
},3.3 配置选项说明
| 选项 | 说明 | 默认值 |
|---|---|---|
provider | 评论服务提供商,使用 Waline | - |
serverURL | Waline 服务器地址(必填) | - |
comment | 是否启用评论功能 | true |
pageview | 是否启用页面浏览量统计 | false |
emoji | 表情包配置 | 默认表情 |
meta | 评论者信息字段 | ['nick', 'mail', 'link'] |
requiredMeta | 必填字段 | [] |
login | 登录模式:'enable' | 'disable' | 'force' | 'enable' |
wordLimit | 评论字数限制 | [0, 1000] |
pageSize | 每页评论数 | 10 |
3.4 更多配置选项
comment: {
provider: 'Waline',
serverURL: 'https://your-waline-server.vercel.app',
comment: true,
pageview: true,
// 可选配置
emoji: ['//unpkg.com/@waline/emojis@1.2.0/weibo'], // 表情包
meta: ['nick', 'mail', 'link'], // 评论者信息字段
requiredMeta: ['nick'], // 必填字段
login: 'enable', // 登录模式: 'enable' | 'disable' | 'force'
wordLimit: [0, 1000], // 评论字数限制
pageSize: 10, // 每页评论数
},3.5 启用页面浏览量显示
需要在主题配置中启用 pageInfo:
export default {
theme: hopeTheme({
// 页面信息配置 - 启用页面浏览量显示
pageInfo: ['Author', 'Original', 'Date', 'Category', 'Tag', 'ReadingTime', 'PageView'],
// 多语言配置(可选,用于自定义浏览量提示文字)
locales: {
'/': {
metaLocales: {
pageview: '访问量', // 移除默认的 emoji 🔢
},
},
},
plugins: {
comment: {
// ... Waline 配置
},
},
}),
}4. 测试功能
4.1 启动开发服务器
npm run dev4.2 测试页面浏览量
- 访问
http://localhost:8080,进入任意文章页面 - 在页面信息区域(作者、日期旁边)查看阅读量显示
- 刷新页面,阅读量应该增加(有防刷机制)
本地开发提示
本地开发环境可能因为 CORS 限制导致浏览量显示为 ...,这是正常的。部署到生产环境后会正常显示。
4.3 测试评论功能(如果已启用)
- 滚动到文章底部,应该看到 Waline 评论框
- 填写昵称、邮箱(可选)
- 输入评论内容(支持 Markdown 语法)
- 点击「提交」发布评论
- 评论应该立即显示在评论列表中
5. 数据管理
5.1 数据库控制台
Neon PostgreSQL:
- 登录 Neon Console
- 选择你的项目
- 查看数据表和统计信息
LeanCloud:
- 登录 LeanCloud Console
- 进入应用 → 数据存储 → 结构化数据
- 查看
Counter表(浏览量)和Comment表(评论)
5.2 Waline 管理后台
访问 https://your-waline-server.vercel.app/ui 进入管理后台。
首次访问:
- 需要注册管理员账号
- 填写邮箱和密码
- 登录后即可管理
功能包括:
- 📝 评论管理 - 审核、删除、回复评论
- 📊 统计数据 - 查看页面浏览量、评论数
- ✉️ 邮件通知 - 配置评论通知邮件
- 👥 用户管理 - 管理评论用户
6. 评论通知配置
Waline 支持多种通知渠道,当有新评论时自动发送通知给博主。
6.1 支持的通知渠道
- ✅ 企业微信应用通知 - 适合企业用户,无消息数量限制
- ✅ Discord 通知 - 通过 Webhook 发送到 Discord 频道
- ✅ Telegram 通知 - 通过 Bot 发送到 Telegram
- ✅ 邮件通知 - 通过 SMTP 发送邮件
- ✅ QQ 通知 - 通过 Qmsg 酱发送
- ✅ 微信通知 - 通过 Server 酱发送
6.2 配置方式
通知功能通过环境变量配置,需要在 Waline 服务器(Vercel)部署时设置:
- 登录 Vercel Dashboard
- 选择你的 Waline 项目
- 进入 Settings → Environment Variables
- 添加对应通知渠道的环境变量
- 重新部署项目使配置生效
6.3 企业微信应用通知
环境变量配置:
# 企业微信应用通知 - 必填
QYWX_AM=企业ID,应用Secret,@all,AgentID,图片MediaID
# 示例(请替换为你的真实值):
# QYWX_AM=ww479cadfqfe8c151f,MPKN9gX97w4e4b4h4u7u4i4i4i4iO6mN_dDedBFzqC5c,@all,1000002,2S8H-JWEdsadFDSFSDDijbrtkldfhjslafhs5zEU1GyUkU
# 通用配置
AUTHOR_EMAIL=your-email@example.com
SITE_NAME=OmniStack
SITE_URL=https://your-site.com获取配置参数:
- 登录 企业微信管理后台
- 创建自建应用,获取 AgentId 和 Secret
- 在"我的企业"获取 企业 ID
- 接收者可以使用
@all(所有成员)或具体成员 ID
6.4 Discord 通知
环境变量配置:
# Discord Webhook - 必填
DISCORD_WEBHOOK=https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN
# 示例(请替换为你的真实 Webhook URL):
# DISCORD_WEBHOOK=https://discord.com/api/webhooks/1234567890/AbCdEfGhIjKlMnOpQrStUvWxYz
# 通用配置
AUTHOR_EMAIL=your-email@example.com
SITE_NAME=OmniStack
SITE_URL=https://your-site.com获取 Webhook URL:
- 打开 Discord,进入目标频道
- 点击频道设置 → 整合(Integrations) → Webhook
- 点击 新建 Webhook
- 复制 Webhook URL
6.5 Telegram 通知
环境变量配置:
# Telegram Bot Token - 必填
TG_BOT_TOKEN=1234567890:ABCdefGHIjklMNOpqrsTUVwxyz
# Telegram Chat ID - 必填
TG_CHAT_ID=123456789
# 通用配置
AUTHOR_EMAIL=your-email@example.com
SITE_NAME=OmniStack
SITE_URL=https://your-site.com获取配置参数:
- 在 Telegram 搜索 @BotFather,发送
/newbot创建 Bot,获取 Token - 在 Telegram 搜索 @userinfobot,发送消息获取 Chat ID
6.6 同时启用多个通知渠道
可以同时配置多个通知渠道,Waline 会向所有配置的渠道发送通知:
# 企业微信
QYWX_AM=ww479cadfqfe8c151f,MPKN9gX97w4e4b4h4u7u4i4i4i4iO6mN_dDedBFzqC5c,@all,1000002,2S8H-JWEdsadFDSFSDDijbrtkldfhjslafhs5zEU1GyUkU
# Discord
DISCORD_WEBHOOK=https://discord.com/api/webhooks/1234567890/AbCdEfGhIjKlMnOpQrStUvWxYz
# Telegram
TG_BOT_TOKEN=1234567890:ABCdefGHIjklMNOpqrsTUVwxyz
TG_CHAT_ID=123456789
# 通用配置
AUTHOR_EMAIL=your-email@example.com
SITE_NAME=OmniStack
SITE_URL=https://your-site.com6.7 测试通知功能
- 在 Vercel 重新部署 Waline 服务
- 使用不同于
AUTHOR_EMAIL的邮箱发布测试评论 - 检查对应通知渠道是否收到消息
更多通知配置
完整的通知配置指南(包括自定义模板、故障排查等)请参考 Waline 官方文档
7. 注意事项
7.1 免费版限制
- Neon 免费版:512MB PostgreSQL 存储,无 API 请求限制(推荐)
- LeanCloud 免费版:每天 30,000 次 API 请求,1GB 文件存储
- Vercel 免费版:每月 100GB 带宽,无限部署次数
7.2 安全建议
- ⚠️ 不要将数据库凭证(Neon 连接字符串或 LeanCloud 密钥)提交到公开仓库
- ✅ 使用环境变量存储敏感信息
- ✅ 定期检查数据库访问日志
- ✅ (LeanCloud 用户)配置正确的安全域名,防止恶意调用
7.3 性能优化
- 启用 CDN 加速 Waline 客户端脚本
- 合理设置评论分页数量(
pageSize) - 定期清理垃圾评论和过期数据
8. 常见问题
8.1 阅读量不显示
可能原因:
serverURL配置错误- 未启用
pageInfo中的PageView - CORS 限制(本地开发环境)
解决方法:
- 检查
serverURL是否正确 - 确认
pageInfo包含'PageView' - 查看浏览器控制台是否有错误
- 本地开发环境的 CORS 错误可以忽略,部署后会正常
8.2 阅读量不增加
可能原因:
- Waline 有防刷机制,同一会话短时间内不会重复计数
- 数据库连接问题
解决方法:
- 等待一段时间或清除浏览器缓存后重试
- 检查 Waline 服务器日志
- 验证数据库连接是否正常
8.3 评论无法提交
可能原因:
- 必填字段未填写
- 字数超出限制
- 服务器配置问题
解决方法:
- 检查是否填写了
requiredMeta中的必填字段 - 确认评论字数在
wordLimit范围内 - 查看浏览器控制台和 Waline 服务器日志
8.4 通知未收到
可能原因:
- 环境变量配置错误
- Webhook URL 或 Token 无效
AUTHOR_EMAIL与评论邮箱相同
解决方法:
- 检查环境变量是否正确设置
- 验证 Webhook URL 或 Bot Token 是否有效
- 使用不同于
AUTHOR_EMAIL的邮箱测试 - 查看 Vercel 部署日志
8.5 LeanCloud 安全域名问题
错误信息:The request is from an untrusted domain
解决方法:
- 登录 LeanCloud 控制台
- 进入 设置 → 安全中心
- 在 Web 安全域名 中添加你的博客域名
- 保存并等待几分钟生效
