VWD(Vercel Workers Discuss) 是一款基于 Vercel Serverless 平台的自托管评论系统,使用 Vercel Postgres 和 Vercel KV 作为数据存储。深度适配 Vercel 生态,开箱即用,部署成本为零。
本项目参考了 CWD(Cloudflare Workers Discuss)和 Waline 评论系统的设计与实现,适合个人博客或中小型站点使用。
提示:本文涵盖从部署到进阶配置的所有内容,建议先通读一遍,再按需查阅。
功能特性
VWD 评论系统提供了一套完整的评论解决方案,涵盖评论、说说、通知、安全、备份等功能。
核心能力
- 评论系统:支持嵌套回复、Markdown 渲染、XSS 过滤、图片灯箱
- 说说功能:博主可发布动态/短博文,支持 Markdown、表情、标签、点赞
- 管理后台:Vue 3 + macOS 风格 UI,暗黑模式、中英文双语、自定义主题色
- 邮件通知:SMTP 邮件通知,支持自定义模板,兼容 QQ/163 邮箱
- Telegram 通知:新评论实时推送到 Telegram,支持一键 Webhook 配置
- S3 备份:兼容 AWS S3 / Cloudflare R2 / MinIO,支持自动备份与恢复
- 点赞功能:文章点赞、评论点赞和说说点赞
- 表情系统:Waline 风格表情包,内置阿鲁表情包和颜文字
- 数据迁移:支持从 Twikoo、Artalk、Valine 导入评论数据
- 多站点:支持多站点管理,通过
siteId隔离数据 - 安全:IP/邮箱黑名单、域名白名单、评论审核机制
技术栈
| 层级 | 技术 |
|---|---|
| 运行时 | Vercel Serverless (Node.js 20+) |
| Web 框架 | Hono + hono/vercel adapter |
| 数据库 | Vercel Postgres (Neon PostgreSQL) |
| 键值存储 | Vercel KV (Upstash Redis) |
| 邮件 | nodemailer |
| S3 存储 | aws4fetch |
| Admin 前端 | Vue 3 + Vite + TypeScript |
| 图表 | ECharts |
| 国际化 | vue-i18n(Admin 支持中英文,Widget 仅中文) |
| 样式 | LESS + CSS Variables(暗黑模式) |
免费额度分析
根据对 Vercel 免费计划的分析,VWD 评论系统的部署成本为零,不需要任何成本。
| 指标 | 免费每月额度 | 单次消耗 | 理论极限 |
|---|---|---|---|
| Serverless 函数调用 | 100 万次 | ~3 次/次访问 | 33 万次页面访问 |
| 带宽 | 100 GB | ~50 KB/次访问 | 200 万次页面访问 |
| Postgres 计算 | 60 小时 | ~20ms/次请求 | 1000 万次请求 |
| KV 命令 | 300 万次 | ~2 次/次访问 | 150 万次页面访问 |
放心使用
对于个人博客或中小型站点来说,Vercel 免费计划完全够用。
快速部署
前置要求
拥有 GitHub 账号
拥有 Vercel 账号(可使用 GitHub 登录)
Node.js >= 20(本地开发需要)