Waline搭建记录

HUGO Waline评论服务搭建

使用 Docker 搭建 Waline 评论系统指南

本文将指导使用 Docker 和 Docker Compose 部署 Waline 评论系统,搭配 SQLite 数据库。Waline 是一个轻量、优雅的评论系统,适合集成到个人博客中。以下是完整步骤。

前言

  • 官方文档:https://waline.js.org/guide/get-started/
  • 本教程使用 Docker Compose 部署。
  • 建议为你的域名配置 SSL 证书(例如通过 Nginx 或 Certbot),以确保安全性,尤其是在某些需要 HTTPS 的场景下。

准备

  1. 服务器环境:一台运行 Linux 的服务器(例如 Ubuntu)。

  2. Docker 和 Docker Compose:确保已安装。

    检查 Docker:

    1docker --version
    

    检查 Docker Compose:

    1docker-compose --version
    

    如果未安装或者遇到docker-compose urllib3问题请更新docker-compose至最新版,可参考本站docker搭建手册安装;

准备项目目录

在服务器上创建一个目录用于存放 Waline 的配置文件和数据:

1mkdir -p ~/waline/data
2cd ~/waline

编写 docker-compose.yml

~/waline 目录下创建 docker-compose.yml 文件:

1nano docker-compose.yml

将以下内容粘贴进去,并根据需要修改配置项:

以下内容参考steven博客,感谢steven

 1version: '3'
 2services:
 3  waline:
 4    container_name: waline
 5    image: lizheming/waline:latest
 6    restart: always
 7    ports:
 8      - 8360:8360    #默认映射 `8360:8360`,可根据需要调整主机端口(例如 `3000:8360`)。
 9    volumes:
10      - ${PWD}/data:/app/data  # `${PWD}/data` 表示当前目录下的 `data` 文件夹,映射到容器内的 `/app/data`
11    environment:
12      TZ: 'Asia/Shanghai'  # 时区
13      # SQLite 数据库配置
14      SQLITE_PATH: '/app/data'  # 指定 SQLite 数据库文件路径。
15      JWT_TOKEN: '12345'  # 用于 API 认证,务必设置为复杂值
16      # 站点基础配置
17      SITE_NAME: '你的博客名称'  # 替换为你的博客名称
18      SITE_URL: 'https://your-domain.com'  # 替换为你的博客 URL
19      SECURE_DOMAINS: 'your-domain.com'  # 替换为你的域名
20      # 站长邮箱 
21      AUTHOR_EMAIL: 'your-email@example.com'  # 替换为你的邮箱
22      # SMTP 服务配置(可选,配置邮件通知,需根据你的邮箱服务商调整(例如 163、Gmail))博主未使用
23      #SMTP_SERVICE: '163'  # SMTP 服务商,可选其他(如 Gmail)
24      #SMTP_USER: 'your-email@163.com'  # 发件邮箱
25      #SMTP_PASS: 'your-smtp-password'  # SMTP 密码或授权码
26      # 安全配置(可选)博主未使用
27      #IPQPS: '80'  # 单 IP 评论频率限制
28      #COMMENT_AUDIT: 'true'  # 是否需要审核评论
29      #AKISMET_KEY: 'your-akismet-key'  # 反垃圾评论 Key(可选,需在 akismet.com 申请)

保存并退出(Ctrl+O,回车,Ctrl+X)。


下载初始 SQLite 文件

Waline 的 SQLite 数据库需要一个预初始化的文件,而不是自动创建。你可以从官方下载:

  • 官方说明链接:https://waline.js.org/guide/database.html#sqlite
  • sqlite下载连接 下载 waline.sqlite 文件。
  • 将文件放入数据目录:
    1mv ~/Downloads/waline.sqlite data/waline.sqlite
    

注意:不使用官方提供的 waline.sqlite,Waline 无法自动创建表,会报错(如 no such table: wl_Comment)。


启动 Waline

~/waline 目录下运行:

1docker-compose up -d
  • 检查容器状态:

    1docker ps
    

    可以看到一个名为 waline 的容器在运行。

  • 查看日志:

    1docker logs waline
    

    如果看到类似 Server running at http://0.0.0.0:8360 的消息,说明启动成功。


验证服务

  • 在浏览器访问 http://你的服务器IP:8360,检查 Waline 是否正常响应。
  • 注册管理员账号:访问 http://你的服务器IP:8360/ui/register,按提示注册第一个用户(将成为管理员)。

集成到博客

hugo.yaml 中添加如下代码:

 1params:
 2    comments: # 评论系统配置
 3        enabled: true  # 启用评论功能
 4        provider: waline  # 使用 Waline 作为评论提供者
 5
 6        waline:  # Waline 配置
 7            serverURL: https://你的服务区ip或url/  # Waline 服务器地址
 8            lang: zh-cn  # 评论语言,中文
 9            pageview: true  # 启用页面浏览量统计
10            emoji:  # 表情包配置 
11                - https://cdn.jsdelivr.net/gh/walinejs/emojis/weibo  # 表情包路径
12            requiredMeta:  # 必填字段
13                - name  # 姓名
14                - email  # 邮箱
15            locale:  # 本地化设置
16                admin: 博主  # 管理员名称
17                placeholder: 🎉 留下你的脚印.  # 输入框占位符

重新生成并部署博客:

1cd /path/to/hugo-site
2hugo
3# 将 public/ 部署到 Web 服务器

博主使用的stack主题,默认支持,如果主题不支持 Waline,手动添加客户端代码到 layouts/partials/footer.html

1<script src="//unpkg.com/@waline/client/dist/waline.js"></script>
2<div id="waline"></div>
3<script>
4  Waline.init({
5    el: '#waline',
6    serverURL: 'http://你的服务器stackIP:8360或url'
7  });
8</script>

注意事项

  1. SSL 证书
  • 为安全起见,建议配置 HTTPS。可使用 Nginx 反向代理并通过 Certbot 获取证书。
  • 示例 Nginx 配置:
    1server {
    2  listen 80;
    3  server_name your-domain.com;
    4  location / {
    5    proxy_pass http://localhost:8360;
    6    proxy_set_header Host $host;
    7    proxy_set_header X-Real-IP $remote_addr;
    8  }
    9}
    
  1. 数据备份

    定期备份 data/waline.db 文件。

故障排查

  • 错误:no such table: wl_Commentno such table: wl_User:确保使用了官方的 waline.sqlite 文件。

  • 无法访问:检查防火墙是否开放端口:

    1sudo ufw allow 8360
    
Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计
发表了 8 篇文章 · 总计 11.52k 字
本站已稳定运行 0 天 00 小时 00 分 00 秒