基于docker和mysql配置waline评论系统

本文最后更新于:2024年11月18日 凌晨

一、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
# 新建一个waline用户,修改加密方式,当然你也可以直接使用root
CREATE USER 'waline'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password';
# 只授权这一个数据库
GRANT ALL PRIVILEGES ON waline_comment.* TO 'waline';
# 刷新权限
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" \ #ip发言频率
--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" # 统计数据来源,可选:leancloud | busuanzi 注意不蒜子会间歇抽风
format: "{} 次"
# 开启评论
comments:
enable: true
type: waline
# 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官方文档

其他文章


基于docker和mysql配置waline评论系统
http://bestkele.com/2022/10/07/other/waline/
作者
kele
发布于
2022年10月7日
许可协议