二丫讲梵 二丫讲梵
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

二丫讲梵

行者常至,为者常成
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • 随写编年

  • 家人物语

  • 追忆青春

  • 父亲的朋友圈

  • 电影音乐

  • 效率工具

  • 博客相关

    • 原生文档

    • 个人折腾

      • 旧版博客上配置的一些小功能汇总
      • 解决wordpress新建页面没有模板的问题
      • wordpress整站迁移操作
      • 关于wordpress后台admin密码防爆破的一些操作
      • vuepress编译时报错TypeError _normalized undefined的解决
      • GitHub配置自动部署pages与服务器
      • Vuepress添加评论插件valine
      • Vuepress配置全文搜索插件fulltext-sarch
      • Vuepress添加侧边栏访问地图
      • vuepress文章内有模板语法时编译报错的解决
      • Vuepress配置评论插件为Artalk
      • 博客接入CDN的折腾-对阿里云七牛云蓝易云多吉云几家CDN使用评测
      • Vuepress添加首页轮播图与打赏按钮的配置
      • Vuepress配置rss订阅功能
      • Vuepress全文搜索插件vuepress-plugin-flexsearch-pro
      • Vuepress全文搜索终极版-algolia的开源实现meilisearch全接入指南
      • 基于多吉云存储+uPic构建个人图床的实践分享
      • vuepress配置谷歌访问统计google-analytics
      • vuepress-vdoing主题配置LxgwWenKai字体
      • vuepress-vdoing主题配置自建不蒜子统计
        • 前言
        • 选型
        • 部署
        • 同步旧数据
        • 调整配置
    • 转载推广

  • 闲言碎语
  • 博客相关
  • 个人折腾
二丫讲梵
2025-07-20
目录

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
1
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
1

部署还是比较简单的,应用会将数据存到 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
1

第二步,编辑配置文件。

# 在此处指定您的博客 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
1
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
1
2
3
4

执行过程中可以清晰看见,如果看到所有任务已完成,则说明数据已成功同步。

# 调整配置

调整配置就比较简单了,有两个需要调整的地方:

  1. 将原来请求 https://busuanzi.ibruce.info/ 的域名,更改为自建不蒜子的域名。
  2. 需要注意,自建项目与官方不蒜子的标签有差异,需要针对自己的博客进行相应的更改。
    1. 旧:busuanzi_container_site_pv
    2. 新:busuanzi_site_pv
    3. 其他几个同理。 具体配置说明,可参考文档:使用方法 (opens new window)

我用的 Vdoing 主题中的网站统计信息,是用的 Teek 大佬提供的方案,将对应请求域名调整之后,更改一下获取的标签就可以了。

回想这几年博客的折腾历史,如下:

  • 关于评论:我的折腾过程是 gitalk--> valine -->Artalk。
  • 关于搜索:我的折腾过程是 fulltext-sarch --> meilisearch。
  • 关于图床:折腾过程更是可以单独开一篇文章来记录。

如今,终于把统计也改为了自建,我终于可以说一句:博客已彻底达到自建的完全体。

微信 支付宝
上次更新: 2025/07/20, 23:23:31
vuepress-vdoing主题配置LxgwWenKai字体
【转载】提问的智慧

← vuepress-vdoing主题配置LxgwWenKai字体 【转载】提问的智慧→

最近更新
01
学习周刊-总第220期-2025年第29周
07-17
02
写在博客发表文章1000篇的节点
07-17
03
从claude cli的体验聊聊最大的敌人是我们自己的成见
07-13
更多文章>
Theme by Vdoing | Copyright © 2017-2025 | 点击查看十年之约 | 浙ICP备18057030号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式