发现一个不错的评论系统Waline,Halo中也有对应的插件plugin-waline,尝试用一下。
1️⃣ 部署Waline系统
Waline评论系统 需要一套Waline环境,这边使用Docker Compose本地部署,数据库使用默认的sqlite就可以,下面是操作步骤。
创建compose.yaml文件
执行以下命令,创建Waline目录,添加compose.yaml文件
mkdir -p /opt/docker/waline
cd /opt/docker/waline
vim compose.yaml
compose.yaml 内容如下:
version: '3'
services:
waline:
container_name: waline
image: lizheming/waline:latest
restart: always
ports:
- 8360:8360
volumes:
- ${PWD}/data:/app/data
environment:
TZ: 'Asia/Shanghai'
SQLITE_PATH: '/app/data'
JWT_TOKEN: 'Your token'
SITE_NAME: 'Your site name'
SITE_URL: 'https://example.com'
SECURE_DOMAINS: 'example.com'
AUTHOR_EMAIL: 'mail@example.com'
其中,有几个配置参数解释一下:
SQLITE_PATH:SQLite 数据库文件的路径,该路径不包含文件名本身
JWT_TOKEN:用户登录密钥,配置随机字符串即可
SECURE_DOMAINS:安全域名配置,支持逗号分隔配置多个域名
详细的部署文档可以在Waline官网查阅:独立部署 | Waline
下载sqlite数据库文件
下载waline.sqlite文件到data目录中,命令如下:
mkdir -p /opt/docker/waline/data
cd /opt/docker/waline/data
wget https://github.com/walinejs/waline/blob/main/assets/waline.sqlite
启动Waline容器
执行下面命令,启动容器:
cd /opt/docker/waline
docker compose up -d
启动成功后,服务器配置允许8360端口访问。
然后通过ip和端口访问Waline,可以正常显示表示部署成功。
2️⃣ Waline配置域名和Https
Halo需要Waline支持https才可以正常使用,步骤如下。
配置子域名和SSL证书
我这边使用Certbot申请Let's Encrypt证书,在原有证书下面添加一个子域名,下面操作步骤供参考:
## 先停止nginx,certonly认证过程需要使用80端口
docker stop nginx
certbot certonly --standalone --cert-name xiejinjie.com --expand -d xiejinjie.com,www.xiejinjie.com,waline.xiejinjie.com
docker start nginx
配置Nginx代理
nginx.conf文件中添加一个server配置如下。
server {
listen 443 ssl;
server_name waline.xiejinjie.com;
ssl_certificate /etc/letsencrypt/live/xiejinjie.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xiejinjie.com/privkey.pem;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://host.docker.internal:8360;
proxy_set_header Host $host;
}
}
配置好后重启nginx,使用子域名可以正常访问Waline就可以。
3️⃣ Halo安装Waline插件
安装插件
在Halo应用市场搜索waline,安装插件。
禁用原有评论组件,启用Waline评论系统插件。
插件配置
在Waline评论系统插件中添加前面配置好的子域名。
这里需要开启页面内容反应后,插件才能正常显示。
保存配置后,至此Waline插件就可以正常使用了。
4️⃣其它
我觉得邮箱和网址字段有点多余,自定义了一下Waline插件的CSS。
在原有css添加了下面内容:
.wl-header-item:nth-child(2),.wl-header-item:nth-child(3){
display: none;
}
.wl-btn:first-of-type {
display: none !important;
}
comment h2{
display: none !important;
}