本文最后更新于:2026年3月30日 下午
一、waline介绍 在waline之前有一款评论系统叫做valine,valine 是一款样式精美,操作简单,部署高效的评论系统。它不含服务端,前端直接和 LeanCloud 存储服务交互,非常棒!但是valine它存在着一些问题:
源码不开放:在1.4.0版本之后,作者不再推送源代码;
XSS安全问题:评论的数据存在XSS安全问题,因为没有服务端,所以前端搞定XSS问题是治标不治本的;
隐私泄露:评论数据会泄露ip和邮箱;
统计数据篡改:可以通过开放接口修改统计数据;
在此基础上,waline就出现了,它包含完整的前端和服务端,解决了上面valine的问题,同时还有垃圾评论过滤和邮件通知等等新功能。
二、docker部署 安装docker,mysql过程省略;
1、初始化表结构 手动创建一个数据库waline_comment(名称随意),然后下载waline.sql文件 ,运行这个文件;
这里补一句:我当时走的是 MySQL + Docker + 手动初始化表结构 这条线。现在 Waline 官方文档主要是围绕服务端环境变量和多数据库支持来写的,如果你是全新部署,建议同时参考官方文档。
注意事项:如果你在 MySQL 8 上遇到认证报错,可以尝试为 Waline 单独创建一个使用 mysql_native_password 的用户,或者检查当前镜像里的 MySQL 驱动兼容情况。也就是说,这里是一个部署时可能遇到的兼容性问题,而不是 Waline 要求你把 MySQL 8 改成旧模式。常见处理方式大概是这样:
1 2 3 4 5 6 CREATE USER 'waline' @'%' IDENTIFIED WITH mysql_native_password BY 'your_password' ; ALTER USER 'root' @'%' IDENTIFIED WITH mysql_native_password BY 'your_password' ; flush privileges;
2、部署waline 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 docker pull lizheming/waline:latest docker run -d --name waline -p 8360:8360 \ -v /mydocker/waline/data:/app/data \ -e TZ="Asia/Shanghai" \ -e MYSQL_HOST="公网IP" \ -e MYSQL_DB="waline_comment" \ -e MYSQL_USER="waline" \ -e MYSQL_PASSWORD="数据库密码" \ -e AUTHOR_EMAIL="作者邮箱" \ -e SITE_NAME="kele blog" \ -e SITE_URL="https://你的博客地址" \ -e SERVER_URL="https://你的Waline服务地址" \ -e SECURE_DOMAINS="你的博客域名,你的Waline服务域名" \ -e SENDER_NAME="博客留言" \ -e SMTP_SERVICE="QQ" \ -e SMTP_USER="您的邮箱" \ -e SMTP_PASS="授权码" \ -e DISABLE_USERAGENT="false" \ -e AVATAR_PROXY="https://avatar.75cdn.workers.dev" \ -e IPQPS="30" \ --restart always \ lizheming/waline:latest
这里额外解释几个比较重要的变量:
SITE_URL:你的博客前台地址
SERVER_URL:Waline 服务端自己的访问地址
SECURE_DOMAINS:安全域名,多个值用英文逗号分隔,按官方文档要求这里不要带 http:// 或 https://
SMTP_*:评论邮件通知相关配置
IPQPS:基于 IP 的发言频率限制,单位是秒
mysql 的参数参考这里: 部署完成之后,访问http://ip地址:8360/ui/register 地址,便能看到注册界面
这里还有一个很重要的点:第一个注册成功的账号会成为管理员 ,所以正式开放评论前,建议先自己完成第一次注册。
3、hexo博客fluid主题接入waline评论系统 修改配置文件 _config.fluid.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 post: banner_img_height: 60 updated: enable : true meta: views: enable : true source : "busuanzi" format: "{} 次" comments: enable : true type : waline waline: serverURL: '你的评论系统网址' path: window.location.pathname meta: ['nick' , 'mail' , 'link' ] requiredMeta: [] lang: 'zh-CN' emoji: ['https://cdn.jsdelivr.net/gh/walinejs/emojis/weibo' ] wordLimit: 0 pageSize: 10 reaction: true locale: {placeholder: 留下只言片语}
效果图:
参考链接: waline官方文档-客户端快速开始
waline官方文档-独立部署
waline官方文档-服务端环境变量
其他文章