本文最后更新于:2025年5月28日 晚上
                  
                
              
            
            
              
                
                一、waline介绍 在waline之前有一款评论系统叫做valine,valine 是一款样式精美,操作简单,部署高效的评论系统。它不含服务端,前端直接和 LeanCloud 存储服务交互,非常棒!但是valine它存在着一些问题:
源码不开放:在1.4.0版本之后,作者不再推送源代码;
XSS安全问题:评论的数据存在XSS安全问题,因为没有服务端,所以前端搞定XSS问题是治标不治本的;
隐私泄露:评论数据会泄露ip和邮箱;
统计数据篡改:可以通过开放接口修改统计数据;
在此基础上,waline就出现了,它包含完整的前端和服务端,解决了上面valine的问题,同时还有垃圾评论过滤和邮件通知等等新功能。
二、docker部署 安装docker,mysql过程省略;
1、初始化表结构 手动创建一个数据库waline_comment(名称随意),然后下载waline.sql文件 ,运行这个文件;
注意事项:因为 waline 使用了比较老的 mysql 密码认证方式,导致使用 mysql8 的时候,出现无法认证和无法创建用户的错误。mysql8的加密方式需要修改,或者新建个用户使用老的加密方式,大概是这样的:
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  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 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
 
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官方文档 
其他文章