谢晋杰
发布于 2025-08-13 / 6 阅读
0
0

Halo使用Waline评论系统

发现一个不错的评论系统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;
}


评论