前言
评论系统采用的waline,颜值还行,功能都有,不需要个人身份信息和网站备案信息。
我没有使用LeanCloud(数据库)和Vercel (服务端),全部自建。
服务端
准备 MySQL 数据库
创建数据库和表结构
数据库名称为waline
,执行waline.sql脚本完成表结构创建
启动 Waline 容器
创建 docker-compose.yml 文件
cd /root/waline
touch docker-compose.yml
先自行修改以下命令的环境变量参数,然后把命令粘贴到 docker-compose.yml 文件内。
version: '3'
services:
waline:
container_name: waline
image: lizheming/waline:latest
restart: always
volumes:
- /root/waline/data:/app/data
networks:
- nginx-proxy-manager_default
environment:
TZ: 'Asia/Shanghai'
SITE_NAME: '随心随风' #博客名称
SITE_URL: 'https://www.iarthit.com' #博客地址
SECURE_DOMAINS: 'www.iarthit.com' #安全域名配置
MYSQL_HOST: '127.0.0.1' #MySQL服务的地址
MYSQL_PORT: '3306' #MySQL服务的端口
MYSQL_DB: 'waline' #MySQL数据库库名
MYSQL_USER: 'user' #MySQL数据库的用户名
MYSQL_PASSWORD: 'password' #MySQL数据库的密码
# 使用阿里企业邮箱
SMTP_SERVICE: 'qiye.aliyun' #SMTP邮件发送服务提供商
SMTP_USER: 'user' #SMTP邮件发送服务的用户名
SMTP_PASS: 'password' #SMTP邮件发送服务的密码
SMTP_SECURE: 'true' #是否使用 SSL 连接 SMTP。
AUTHOR_EMAIL: 'blog@iarthit.com' #博主邮箱,用来接收新评论通知。
COMMENT_AUDIT: 'true' #启用评论审核,审核通过,网站才显示评论
networks:
nginx-proxy-manager_default:
external: true
-
docker-compose 文件补充说明
networks
:反向代理用的是 nginx-proxy-manager,所以让 waline 加入 nginx-proxy-manager 网络,以方便通信。你不需要可以删掉。SMTP_SERVICE
:使用其他的邮箱提供商请查看官方文档
使用 nginx-proxy-manager 进行反向代理
location / {
proxy_pass http://waline容器ip:8360;
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;
# cache
add_header Cache-Control no-cache;
expires 12h;
}
注册 Waline
访问链接注册。首个注册的人会被设定成管理员。
- 管理员登陆后,即可看到评论管理界面。在这里可以修改、标记或删除评论。
- 用户也可通过评论框注册账号,登陆后会跳转到自己的档案页。
客户端
修改_includes/head.html 页面
{%- if page.comment == true %}
<link rel="stylesheet" href="https://unpkg.com/@waline/client@v2/dist/waline.css" />
{%- endif %}
修改_layouts/mypost.html 页面
{%- if page.comment == true %}
<div id="waline"></div>
<script type="module">
import { init } from 'https://unpkg.com/@waline/client@v2/dist/waline.mjs';
init({
el: '#waline',
serverURL: 'https://waline.iarthit.com',
dark: 'auto',
wordLimit: 500,
comment: true, // 评论数统计
});
</script>
{%- endif %}
最后在你需要评论文章的页面顶部加一个参数变量
comment: true
大功搞成!!!