
自建 Hitokoto 服务 Hexo 添加 RSS 订阅功能 Hexo 自定义加载动画
简介
同样是因为默认的 https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js 已无法打开, 所以参考 self-hosted busuanzi 在本地服务器自建一个.
部署
根据 官方文档 使用 docker-compose 直接部署:
services:
busuanzi:
image: xcsoft/busuanzi:latest
ports:
- 8888:8080
volumes:
- ./data/config.yaml:/app/config.yaml
# 如果不需要修改首页, 可以不需要挂载
- ./data/dist/index.html:/app/dist/index.html
environment:
WEB_LOG: true
WEB_DEBUG: false
WEB_CORS: "*"
BSZ_EXPIRE: 0
BSZ_SECRET: 给一个 uuid 即可
API_SERVER: 需要修改成最后绑定你的域名
REDIS_ADDRESS: redis-ip:redis-port
REDIS_PASSWORD: password
REDIS_DATABASE: 0
BSZ_PATHSTYLE: true
BSZ_ENCRYPT: MD516
配置文件:
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
上述的配置文件是官方提供的, 我未做任何修改, 因为在 docker-compose.yml 中都可以直接覆盖.
部署后访问 http://ip:8888 检查是否部署成功:

我在上面挂载了 index.html 是因为需要修改 <script async src="https://域名/js"></script> 不然就是官方默认的.
Hexo 配置
修改主题配置
CDN:
...
option:
busuanzi: https://你的域名/js # http://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js 默认的意无法打开
修改主题代码
修改文件 themes/anzhiyu/layout/includes/additional-js.pug
将一下代码:
script(async data-pjax src= theme.asset.busuanzi || '//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js')'
修改为:
script(async data-pjax data-prefix="busuanzi_value" src= theme.asset.busuanzi || '//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js')
记得一定要加上 data-prefix="busuanzi_value", 新老版本兼容问题的处理.
最后 Hexo 三连击即可显示效果.