Waline 本可以部署在 Vercel 等平台上,但有一天突然就不能用了,本文记录自己部署基于 MongoDB 数据库的 Waline 服务。
背景 {#背景}
- Vercel 不香了之后,自己建 Waline 服务器
- 数据库之所以选择 MongoDB,主要在于安装使用方便,对于网站存取性能更优
自己动手,丰衣足食,数据安全,速度还快,无人可挡!
配置环境 {#配置环境}
安装 MongoDB {#安装-MongoDB}
- 参考 MongoDB 安装
创建 MongoDB 用户 {#创建-MongoDB-用户}
- 进入 mongosh
- 切换到新数据库 waline
-
创建用户
在数据库
admin
(官方建议使用admin
数据库) 中创建用户vvd
密码xxxxxx
,赋予他在admin
数据库上的root
权限
成功运行命令返回结果:
- 运行
show users
命令查看结果
创建环境变量 {#创建环境变量}
-
根据官方文档
-
如果和我一样是本地 MongoDB 的话,我们最主要需要配置:
MONGO_DB
,MONGO_USER
,MONGO_PASSWORD
三个变量 -
修改
~/.bashrc
,按照之前的配置加入上述变量此处三个是最基本的变量,如果需要配置其他内容依法炮制即可
至此环境配置完毕
本地安装 Waline {#本地安装-Waline}
安装、运行 {#安装、运行}
- 按照官方文档(真的很方便啊)
- 在服务器找一个没人的空地方,运行命令:
- 正常运行返回信息
测试 {#测试}
- 此时可以访问
http://IP:8360
访问 waline 页面:
测试评论
- 此时后台信息输出
- 说明我们 Waline 配置成功
创建 systemd 服务后台运行 {#创建-systemd-服务后台运行}
直接运行 node 命令是可以顺利启动 waline 服务的,但是用了后台启动的方式就会报错
Not Initialized
,原因未知,做错误记录
- 将刚刚成功运行 waline 的文件夹移到
/usr/local/waline
- 在此处创建运行脚本
setup.sh
之所以要创建脚本,是因为要将数据库的环境变量添加进去,否则可能链接不上数据库,报错
Not Initialized
- 在
/lib/systemd/system
文件夹创建waline.service
文件
- 设置 waline 开机自启动
- 开启 waline 服务
- waline 就可以随开机自动启动后台服务了
脚本后台运行 {#脚本后台运行}
-
使用 tmux \ screen 等工具在服务器后台运行也是可以的
-
只不过坏处是服务器重启了还得进去运行一下 waline
使用大佬的仓库 {#使用大佬的仓库}
也可以使用大佬的仓库一键部署,确实很方便,只要环境变量配置成其他数据库的也可以支持非 MySQL 的数据库
-
介绍链接:https://www.tj520.top/views/articles/back-end/waline-service.html
-
系统环境变量可以加入通知等信息:
Nginx 反向代理 {#Nginx-反向代理}
- 我用的 Docker 部署的 Nginx
- 目标是将 Docker 的 4443 端口映射到服务器的端口,以 6666 为例
- 配置好 ssl 证书
- 在 Nginx 配置文件目录
/etc/nginx/conf.d
中加入文件 waline.conf
-
your_ip
填入服务器的公网 IP 地址即可 -
之后可以 ssl 访问 waline
部署到 Fluid 主题 Hexo 博客 {#部署到-Fluid-主题-Hexo-博客}
- 记住自己的 waline url
https://IP:port
- 修改主题配置文件
_config.fluid.yml
- 部署博客,测试评论
-
新版 Waline
placeholder
需要加在local
下面,感谢 Gary "Noob" Z. 同学的分享。加了新 placeholder 后
参考资料 {#参考资料}
- https://waline.js.org/guide/server/databases.html
- https://www.cnblogs.com/yanzi2020/p/14701428.html
- https://blog.csdn.net/hbtj_1216/article/details/120875957
- https://www.tj520.top/views/articles/back-end/waline-service.html
文章链接:
https://www.zywvvd.com/notes/hexo/theme/fluid/fluid-my-waline/my-waline/