使用Docker部署Waline评论服务端

前言

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

博客的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

参考文章

Waline独立部署

Nginx配置Https(详细、完整)