Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

因为 GitHub Pages 用 busuanzi 一直都有点小问题,这些年总有点毛病,所以总是想着能不能自己部署一个后端。

最近找到了 busuanzi 的后端:soxft/busuanzi,很开心啊终于有人做了,也找到了,决定部署一个。

原来的数据我也不打算保留了,主要觉得麻烦。

基于 docker compose 的部署很简单,写好 compose 文件就好了。

1
2
3
4
5
6
7
8
services:
busuanzi:
image: "xcsoft/busuanzi:latest"
container_name: busuanzi
network_mode: host
env_file: .env
volumes:
- './data/busuanzi_config.yaml:/app/config.yaml'

我个人喜欢仅将 docker 作为应用运行容器,不喜欢隔离网络。这个 busuanzi 后端默认监听 0.0.0.0:8080,需要修改一下。

通过观察代码仓库里的配置文件,发现了它的配置可以全部通过环境变量覆盖,很方便。

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
# 来自 https://github.com/soxft/busuanzi/blob/main/config.yaml

Web:
Address: 0.0.0.0:8080 # 监听地址
Cors: "https://xsot.cn,https://google.com" # 跨域访问
Debug: false # 是否开启debug模式
Log: false # 是否开启日志
Redis:
Address: redis:6379 # redis地址
Password:
Database: 0
TLS: false # 是否使用TLS连接redis
Prefix: bsz # redis前缀
MaxIdle: 25 # 最大空闲连接数
MaxActive: 100 # 最大连接数
MinIdle: 25 # 最小空闲连接数
MaxRetries: 3 # 最大重试次数
Bsz:
Expire: 0 # 统计数据过期时间 单位秒, 请输入整数 (无任何访问, 超过这个时间后, 统计数据将被清空, 0为不过期)
Secret: "bsz" # JWT签名密钥 // 请设置为任意长度的随机值
Encrypt: "MD516" # 加密算法 (MD516 / MD532) 老版本请使用 MD532
PathStyle: true # 路径样式 (false: url&path, true: path) 老版本请使用 false, true 更便于数据迁移


# TIPS, 所有 config 内的设置, 均可使用 环境变量 覆盖
# Ex BSZ_SECRET=123 将覆盖 config.yaml 中的 Bsz.Secret

所以我就直接创建了一个 .env 文件,将环境变量都塞进去了。比起作者给出的默认配置,我还多出了一个 WEB_ADDRESS 来修改监听地址

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
# 是否开启日志
WEB_LOG=true

# 是否开启debug模式
WEB_DEBUG=false

# 跨域访问
WEB_CORS="https://cattenlinger.github.io"

# 统计数据过期时间 单位秒, 请输入整数 (无任何访问, 超过这个时间后, 统计数据将被清空, 0为不过期)
BSZ_EXPIRE=0

# 签名密钥 // 请设置为任意长度的随机值
BSZ_SECRET=""

# 填写你的 API 地址
API_SERVER=""

# redis 地址
REDIS_ADDRESS=127.0.0.1:6379

# Web 监听
WEB_ADDRESS: 127.0.0.1:8082

BSZ_PATHSTYLE=true
BSZ_ENCRYPT=MD516

最后在 _config.volantis.yml 改一下 busuanzi 的地址

1
2
analytics:
busuanzi: https://busuanzi.infra.shinonometn.com/js

但是,Volantis 5.8 的 busianzi,统计显示的 HTML 元素的 ID 前缀是 busuanzi_value,我搜索了一下对应的 ejs 模板然后手动将值全部改掉,显示才正常。

评论