搭建 busuanzi 后端 (Self-Hosting)
因为 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
|
Web: Address: 0.0.0.0:8080 Cors: "https://xsot.cn,https://google.com" Debug: false Log: false Redis: Address: redis:6379 Password: Database: 0 TLS: false Prefix: bsz MaxIdle: 25 MaxActive: 100 MinIdle: 25 MaxRetries: 3 Bsz: Expire: 0 Secret: "bsz" Encrypt: "MD516" PathStyle: true
|
所以我就直接创建了一个 .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 模板然后手动将值全部改掉,显示才正常。