【Docker系列】自建busuanzi访客统计系统

灵感

由于busuanzi的统计越来越慢,在网上冲浪了一下,发现杜老师说有busuanzi自建的访客统计公益项目,使用的源码是星辰大佬

开源项目作者星辰:https://www.xsot.cn/

部署

部署系统:项目部署使用docker-compose安装,Ubuntu系统

博客主题:安知鱼主题版本1.6.14

创建busuanzi目录

1
sudo mkdir /home/docker/busuanzi

创建docker-compose.yml

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
28
version: "3.1"

services:
redis:
image: "redis:alpine"
volumes:
- ./data/redis:/data

bsz:
image: "xcsoft/busuanzi:latest"
ports:
- "6880:8080" # 修改映射到宿主机的端口 host:container
volumes:
- ./data/bsz:/app/expose
links:
- redis
depends_on:
- redis
environment:
WEB_LOG: 'true' # 是否开启日志
WEB_DEBUG: 'false' # 是否开启debug模式
WEB_CORS: "htttp://blog.hikki.site/*" # 跨域访问
BSZ_EXPIRE: 0 # 统计数据过期时间 单位秒, 请输入整数 (无任何访问, 超过这个时间后, 统计数据将被清空, 0为不过期)
BSZ_SECRET: "bsz" # 签名密钥 // 请设置为任意长度的随机值
API_SERVER: https:\/\/busuanzi.hikki.site # 填写你的 API 地址 需要转译 (即 用 `\/` 替代 `/`)
REDIS_ADDRESS: redis:6379 # redis 地址
BSZ_PATHSTYLE: 'true'
BSZ_ENCRYPT: MD516

以上配置可以根据自己需要配置,开启日志模式或者跨域之类的,看自己需要。刚部署可以开始跨域,后面部署成功可以改成禁止跨域,这样别人就用不了你的了。

跨域我设置仅允许我自己的博客访问,其他博客使用无效,你可以使用你的博客域名,这样仅自己使用。

运行docker-compose

1
sudo docker-compose up -d

运行docker-compose

看到以上内容就是运行成功了

修改busuanzi请求URL

我使用的安知鱼博客主题,如果你使用Butterfly主题,做法应该也是一样的

打开_config.anzhiyu.yml主题配置文件,在最后面有个CDN.option.busuanzi: https://busuanzi.hikki.site/js

这个URL,你可以改自己的域名或IP地址,/js需要加上去

修改主题的id选择器

打开\themes\anzhiyu\layout\includes\widget\card_webinfo.pug文件

在31行中,将#busuanzi_value_site_uv改为#busuanzi_site_uv

在38行中,将#busuanzi_value_site_pv改为#busuanzi_site_pv

运行博客测试

1
hexo s

更新就能看到了

busuanzi测试成功

可能遇到的问题

busuanzi迁移访客数据教程:https://blog.zhheo.com/p/a39a.html

docker可能无法下载镜像,切换国内的镜像站也无法下载,原因可能是该镜像才更新没多久,国内的镜像站还没有及时更新,导致无法下载镜像,我的做法是,给服务器挂个梯子就好了,如果不会挂梯子,可参考我另一篇Docker-compose安装V2ray科学上网文章

本文章来源于我的博客:https://blog.hikki.site