vuepress-vdoing主题配置自建不蒜子统计
# 前言
近几日,不蒜子官方出现过一波三天宕机的情况,使得自建不蒜子这一早该实施的事项,让我不得不开始折腾起来了。
进入正文之前,先对不蒜子表达一下感谢,一个完全免费的统计服务,影响力如此广大,始终无偿提供服务,向维护者表达致敬!
放一张不蒜子官网图,算是切到自建的一个合影留念。
# 选型
现在社区中,兼容不蒜子统计方式的开源项目也有不少,我了解到的有:
- https://github.com/soxft/busuanzi (opens new window)
- https://github.com/EvanNotFound/vercount (opens new window)
其中第一个项目是基于 go 语言编写,配置部署简单,且完全实现了不蒜子的功能,是我这次自建的项目选择。
# 部署
官方提供了镜像和 compose 文件,可以直接部署,我这里考虑到长久使用的版本固定需求,因此将两个镜像都上传到了自己的制品库中。
services:
redis:
image: "docker.cnb.cool/znb/images/bsz:redis"
container_name: "bsz_redis"
ports:
- "6399:6379" # 这个端口是同步时使用,同步完毕可去掉
volumes:
- ./data/redis:/data
bsz:
image: "docker.cnb.cool/znb/images/bsz:bsz"
container_name: "bsz_bsz"
ports:
- "5080:8080" # 修改映射到宿主机的端口 host:container
links:
- redis
depends_on:
- redis
environment:
WEB_LOG: "true" # 是否开启日志
WEB_DEBUG: "false" # 是否开启debug模式
WEB_CORS: "*" # 跨域访问
BSZ_EXPIRE: 0 # 统计数据过期时间 单位秒, 请输入整数 (无任何访问, 超过这个时间后, 统计数据将被清空, 0为不过期)
BSZ_SECRET: "bsz" # 签名密钥 // 请设置为任意长度的随机值
API_SERVER: https://bsz.eryajf.net # 填写你的 API 地址
REDIS_ADDRESS: redis:6379 # redis 地址
BSZ_PATHSTYLE: "true"
BSZ_ENCRYPT: MD516
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
然后直接拉起服务:
$ docker-compose up -d
部署还是比较简单的,应用会将数据存到 redis,然后 redis 会把数据存到 data 目录下,因此以后如果自己也要迁移,只需要将整个目录挪走再拉起即可。
# 同步旧数据
当我们迁移到自建,原来博客积累的 uv 和 pv 数据这笔宝贵的财富当然也需要进行迁移,上边提到的 busuanzi 项目,官方也提供了一个迁移工具,可以简单配置,就能将不蒜子官方关于自己站点的统计数据,同步到自建的 redis。
工具地址: https://github.com/soxft/busuanzi-sync (opens new window)
第一步,下载迁移工具二进制。
$ wget https://github.com/soxft/busuanzi-sync/releases/download/v0.0.5/busuanzi-sync-linux-amd64-v0.0.5
第二步,编辑配置文件。
# 在此处指定您的博客 sitemap 地址
SITEMAP_URL: https://wiki.eryajf.net/sitemap.xml
# 线程数 避免过高导致 QPS 限制 / 不要超过5
THREADS: 2
# 单 URL 最大重试次数
MAX_RETRY: 10
REDIS_ADDR: 127.0.0.1:6379
REDIS_DB: 0
REDIS_PWD: ""
REDIS_PREFIX: bsz
REDIS_TLS: false
# 路径样式 与加密方案
BSZ_PATH_STYLE: true
BSZ_ENCRYPT: MD516
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
第三步,执行同步。
# 增加执行权限
$ chmod +x busuanzi-sync-linux-amd64-v0.0.5
# 运行工具,执行同步
$ ./busuanzi-sync-linux-amd64-v0.0.5
2
3
4
执行过程中可以清晰看见,如果看到所有任务已完成,则说明数据已成功同步。
# 调整配置
调整配置就比较简单了,有两个需要调整的地方:
- 将原来请求
https://busuanzi.ibruce.info/
的域名,更改为自建不蒜子的域名。 - 需要注意,自建项目与官方不蒜子的标签有差异,需要针对自己的博客进行相应的更改。
- 旧:
busuanzi_container_site_pv
- 新:
busuanzi_site_pv
- 其他几个同理。 具体配置说明,可参考文档:使用方法 (opens new window)
- 旧:
我用的 Vdoing 主题中的网站统计信息,是用的 Teek 大佬提供的方案,将对应请求域名调整之后,更改一下获取的标签就可以了。
回想这几年博客的折腾历史,如下:
- 关于评论:我的折腾过程是
gitalk
-->valine
-->Artalk
。 - 关于搜索:我的折腾过程是
fulltext-sarch
-->meilisearch
。 - 关于图床:折腾过程更是可以单独开一篇文章来记录。
如今,终于把统计也改为了自建,我终于可以说一句:博客已彻底达到自建的完全体。

