【hexo博客】在Azure上搭建Waline评论服务
在 Azure 上搭建 Waline 评论服务
出于折腾的理由,我准备把评论系统从 valine 换成 waline。waline 有更吸引我的理由,例如支持了更多种类的数据库(valine 只支持 learn cloud),完全开源(虽然我也不会看源代码吧)。参考官方网站 https://waline.js.org 的信息进行一个配置。
最近白嫖了微软 Azure 的学生优惠 ,功能还挺多,所以研究了一下 Azure 的服务器和 devops。现在已经把博客迁移到 Azure 的静态 Web 服务了。所以我就想在 Azure 上搭建 Waline 的服务端。
数据库端
在 Azure 创建 MySQL 数据库
我选择将数据库搭建在 Azure 上。点击 Azure Database for MySQL,选择灵活服务器(预览):
可以申请免费的 32 GB 的存储空间,具体方式见 https://docs.microsoft.com/zh-cn/azure/mysql/flexible-server/how-to-deploy-on-azure-free-account,后面的设置参考这个即可。
初始化数据库
按照 waline 的指示,需要导入 waline.sql 文件进行初始化。在此之前,先配置防火墙,允许连接到数据库:
在设置->网络中,勾选允许从 Azure 内的任何 Azure 服务公开访问此服务器,这是为了能够让 waline-server 访问到数据库。如果你需要从其他位置连接数据库,那么在下面填写你的 ip 地址即可。
然后连接到 mysql,导入 waline.sql : (在导入之前,确定 ${DB_NAME}
对应的数据库存在。)
1 | mysql –u ${USER_NAME} -D ${DB_NAME} -p < ./waline.sql |
服务端
在 Azure 应用程序服务中搭建 Waline
注册好 Azure 账户后,在 Azure Portal 中创建一个应用程序服务:
- 如果之前没有资源组,可以新建一个资源组。我这里把我的静态博客和这个 Web 应用放在同一个资源组里了。
- 输入 Web 应用的名称。
- 选择 Docker 容器发布。Waline 提供了 Docker 的部署方式,这里用 docker 容器比较省事。
- 选择 East Asia(东亚),这样服务器会建立在香港,访问速度会快一些。
- 选择 F1 免费计划。
点击下一步,设置 docker:
- 我选择单个容器,镜像源选 dockerhub。docker hub 上有 waline 容器,我一开始还担心没有的话是不是要自己制作镜像传到某个镜像源。
- 选择使用公开镜像,lizheming/waline,启动命令空出即可。
剩下的内容一直下一步即可,然后点击创建生成应用程序服务。理论上等待一会,就可以通过给出的网址来访问 waline 了。如果配置出错,可以到部署->部署中心修改所使用的镜像,也可以到监视->日志流来查看部署日志,判断哪里出错了。
设置环境变量
按照 waline 的官方文档,需要配置好环境变量。在设置->配置处添加对应的字段即可。
然后容器就会重新部署,理论上 waline 的页面就可以正常访问了。
客户端
按照官网的描述,我在放置评论的位置添加了下列代码:
1 | <script src="//cdn.jsdelivr.net/npm/@waline/client"></script> |
最初遇到的问题是,waline 的评论显示不会随着主题切换而切换。研究了一下发现要添加 dark 字段。为此我又修改了我的亮暗切换,在 <body>
标签添加 “dark” 样式,来让 waline 检测到。