前言

最近在浏览自己博客的时候发现一些问题。

博客的Waline评论系统服务端是托管在vercel平台的,因为是国外网站,所以访问会比较慢。

但是最近发现有时候还会出现访问不了的情况,这让我很头痛,所以打算自己本地部署Waline服务端。

如需使用Docker部署Waline评论服务端,请提前做好以下准备:

启动容器

使用以下命令启动容器,记得开放8360端口

1
2
3
4
5
6
7
8
9
sudo docker run -d \
-e LEAN_ID=xxx \
-e LEAN_KEY=xxx \
-e LEAN_MASTER_KEY=xxx \
-e LEAN_SERVER=xxx \
-p 8360:8360 \
--restart=always \
--name waline-server \
lizheming/waline

参数解释

参数解释
-e LEAN_ID=xxxLeanCloud的APP ID
-e LEAN_KEY=xxxLeanCloud的APP KEY
-e LEAN_MASTER_KEY=xxxLeanCloud的Master Key
-e LEAN_SERVER=xxx如果LeanCloud为国内版,需要加上绑定LeanCloud的域名
-p 8360:8360映射8360端口
–restart=always系统重启时容器也启动
–name waline-server容器名

配置SSL

如需使用HTTPS访问,则需配置SSL,使用Nginx配置SSL。

首先需要下载证书,得到.pem.key文件,在Nginx配置文件中添加如下配置:

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
28
29
30
31
32
33
server {
listen 80;
listen 443 ssl http2;
# 域名
server_name waline-server.insectmk.cn;
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}


# ssl证书的pem文件路径
ssl_certificate /root/Token/SSL/waline-server.insectmk.cn_nginx/waline-server.insectmk.cn_bundle.pem;
# ssl证书的key文件路径
ssl_certificate_key /root/Token/SSL/waline-server.insectmk.cn_nginx/waline-server.insectmk.cn.key;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";

location / {
proxy_pass http://127.0.0.1:8360/;
index index.html index.htm;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header REMOTE-HOST $remote_addr;
add_header X-Cache $upstream_cache_status;
}
access_log /www/wwwlogs/nginx/product/ssl-waline-server.log;
}

重载配置后就能使用HTTPS访问了。

更新

想要更新Docker版本的Waline服务端,只需要重新拉取镜像即可更新。

参考Waline官方文档

环境变量

参考服务端环境变量

评论者等级

通过增加LEVELS环境变量增加评论者等级标签,变量值为一串给定的数的逗号拼接,可设置为0,10,20,50,100,200,即:

1
LEVELS=0,10,20,50,100,200

0,10,20,50,100,200 的含义如下:

等级条件默认等级标签
00 <= count < 10潜水
110 <= count < 20冒泡
220 <= count < 50吐槽
350 <= count < 100活跃
4100 <= count < 200话痨
5200 <= count传说

游客头像

通过配置GRAVATAR_STR环境变量,默认参数https://seccdn.libravatar.org/avatar/{{mail|md5}},即:

1
GRAVATAR_STR=https://seccdn.libravatar.org/avatar/{{mail|md5}}

游客需要到Gravatar注册并修改自己的头像,否则默认头像会很丑。

参考头像配置|Waline

当然你也可以填写为你自定义的头像链接。

我的容器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
sudo docker run -d \
-e LEAN_ID=xxxxxxxxxxxxxxxxxxxxx \
-e LEAN_KEY=xxxxxxxxxxxxxxxxxxxxx \
-e LEAN_MASTER_KEY=xxxxxxxxxxxxxxxxxxxxx \
-e LEAN_SERVER=waline-data.insectmk.cn \
-e SMTP_SERVICE=QQ \
-e SMTP_USER=3067836615@qq.com \
-e SMTP_PASS=xxxxxxxxxxxxxxxxxxxxx \
-e SMTP_SECURE=true \
-e SITE_NAME="InsectMk's Blog" \
-e SITE_URL=https://insectmk.cn \
-e AUTHOR_EMAIL=2514378105@qq.com \
-e SENDER_NAME=InsectMk \
-e SENDER_EMAIL=3067836615@qq.com \
-e MAIL_SUBJECT="您在InsectMk's Blog上的评论有回复啦!" \
-e MAIL_SUBJECT_ADMIN="InsectMk's Blog有新评论啦!" \
-e LEVELS="0,10,20,50,100,200" \
-e GRAVATAR_STR="https://insectmk.cn/static/img/head/default-avatar.jpg" \
-p 8360:8360 \
--restart=always \
--name waline-server \
lizheming/waline

参考文章

Waline独立部署

Nginx配置Https(详细、完整)