Hexo NexT8 主题配置 Waline 评论系统
Waline 是基于 Valine 的一个前后端分离的评论系统,后端可以部署在 Leancloud、Vercel 或者自己服务器的数据库上,前端也可以很方便的利用 Hexo 插件来完成配置。本次的后端:Ubuntu 20 服务器,docker 环境。
环境:Ubuntu 20,NexT v8,宝塔面板,MySQL,docker-compose。
配置数据库
Waline 支持多种数据库,对于每种数据库,都有不同的配置,详细请参考多数据库服务支持。我使用的是 MySQL 10.1.47-MariaDB,直接参考 MySQL 的配置即可。
使用宝塔面板创建一个空的数据库,数据库名、用户名、密码按照需要设置,编码选择 utf8mb4。图中密码在截完图后已修改。
创建完毕后,需要先导入 waline.sql 对数据库进行初始化,这个也可以在宝塔面板的数据库管理页面直接选择本地文件导入。
导入成功后,数据库配置就完成了。在后续步骤中,需要配置的环境变量如下所示:
环境变量名称 | 必填 | 默认值 | 备注 |
---|---|---|---|
MYSQL_HOST |
127.0.0.1 | MySQL 服务的地址 | |
MYSQL_PORT |
3306 | MySQL 服务的端口 | |
MYSQL_DB |
✅ | MySQL 数据库库名 | |
MYSQL_USER |
✅ | MySQL 数据库的用户名 | |
MYSQL_PASSWORD |
✅ | MySQL 数据库的密码 | |
MYSQL_PREFIX |
wl_ |
MySQL 数据表的表前缀 | |
MYSQL_CHARSET |
utf8mb4 |
MySQL 数据表的字符集 |
评论通知配置
Waline 支持邮件通知、QQ 通知、微信通知、企业微信通知、Telegram 通知等多种方式,我只开启了邮件通知,如果有其他需求,请参考评论通知 | Waline。
Waline 默认支持的邮件发送服务提供商在这里可以看到,我打算用的是 Outlook,也在此列表中。
SMTP_SERVICE
: SMTP 邮件发送服务提供商,如Outlook365
。如果在上面的列表中找不到自己要用的 SMTP 服务提供商,那就需要配置以下两个选项;找到了就不用配置。SMTP_HOST
: SMTP 服务器地址,一般可以在邮箱的设置中找到。SMTP_PORT
: SMTP 服务器端口,一般可以在邮箱的设置中找到。
SMTP_USER
: SMTP 邮件发送服务的用户名,一般为登录邮箱。如little.cu@outlook.com
。SMTP_PASS
: SMTP 邮件发送服务的密码,一般为邮箱登录密码,部分邮箱 (例如 163) 是单独的 SMTP 密码。SITE_NAME
: 网站名称,用于在消息中显示。如Cu Blog
。SITE_URL
: 网站地址,用于在消息中显示。如www.litcu.cn
。AUTHOR_EMAIL
: 博主邮箱,用来接收新评论通知。如果是博主发布的评论则不进行提醒通知。
以下是选填的环境变量:
SENDER_NAME
: 自定义发送邮件的发件人名称,如litcu
。SENDER_EMAIL
: 自定义发送邮件的发件地址,如comment@litcu.cn
。MAIL_SUBJECT
: 自定义评论回复邮件标题,如您在Cu Blog上收到了新的回复
。MAIL_TEMPLATE
: 自定义评论回复邮件内容MAIL_SUBJECT_ADMIN
: 自定义新评论通知邮件标题,如博客收到新评论啦!
。MAIL_TEMPLATE_ADMIN
: 自定义新评论通知邮件内容
Docker 部署
首先 docker pull lizheming/waline
下载 waline 镜像到本地。然后因为个人习惯,我使用 adduser comment
命令新建了一个叫做 comment
的用户,然后 cd /home/comment
,mkdir data
,新建了一个 data 文件夹,用来映射 docker 镜像中的 data 目录。
本来打算直接 docker run
命令来启动容器,结果遇到了一点问题,怎么也解决不掉,于是用了 docker-compose。先创建了一个 docker-compose.yml 文件,写入以下内容:
# docker-compose.yml |
然后使用 docker-compose up -d
在后台启动容器。
nginx 反代
首先使用宝塔面板新建一个网站,域名配置与 SSL 证书不再详谈,然后利用宝塔面板可以很方便地完成反代。
注册管理员
访问 https://comment.litcu.cn,就可以看到 waline 的评论框了,注意下面的 “来发评论吧~”,出现这个大概率说明没有问题,如果一直在刷新,可能是数据库配置有错误。可以通过 docker logs waline
来查看日志,确定是否出现了问题。
然后访问 https://comment.litcu.cn/ui/register 注册一个用户,第一个注册的用户会默认设置为管理员用户。注册完毕,就可以正常登陆了。
客户端配置
我是用的是 Hexo 的 NexT 主题 v8,虽然没有内置 waline 配置,但参考这里,可以通过 npm install @waline/hexo-next -S
,然后在_config.yml
或_config.next.yml
文件中添加如下配置:
# Waline |
完成后 hexo cl && hexo g && hexo s
,在本地可以验证是否部署成功。
其他
如何修改头像?
在 Gravatar - Globally Recognized Avatars 可以根据邮箱来设置头像(该网站需要特殊方式才能访问)。
为什么收不到邮件?
docker logs waline
后,我确定了问题所在:outlook 的邮箱不允许设置发送的别名,也就是不允许有 SENDER_EMAIL
参数,将其去掉即可。
-
2021-06-30
最近尝试了各种笔记软件,最终决定了使用国内刚诞生不到一年的思源笔记,它有一个功能就是可以用 Docker 伺服,也就是在服务器下载思源的 docker,运行后就可以通过公网 IP 访问自己的笔记了。由于我需要多端使用,而它目前还不支持 IOS 和 iPad,所以我就萌生了买一个云服务器的想法。
-
2022-03-31
RSS 是一种看起来似乎 “过时” 了的信息聚合技术,通过订阅 RSS 链接,我们能够及时得到自己关注的网站、论坛的最新动态。尽管目前 RSS 已经逐渐淡出了历史舞台,但面对其他各种网站、论坛推送的大量无营养内容,使用 RSS 订阅自己喜欢网站的内容似乎也是很有必要的,更何况,很多优质的个人博客都开启了 RSS 订阅。因此,小醋就打算利用自己购买的服务器,来搭建一个 RSS 聚合器。