自建不蒜子
侧边栏壁纸
  • 累计撰写 79 篇文章
  • 累计收到 5 条评论

自建不蒜子

wszx01
2025-01-28 / 0 评论 / 0 阅读

自建不蒜子
一个基于 Golang + Redis 简单、轻量的网页计数器, 项目

统计站点的 UV, PV
统计子页面的 UV, PV
使用 Docker 一键部署
隐私保障 仅存储 HASH
兼容 Pjax 技术的网页
支持从原版不蒜子迁移数据

一、安装
持多种运行方式: 源码编译运行, Docker 运行

  1. 源码编译运行
    git clone https://gitee.com/soxft/busuanzi.git && cd busuanzi
    go build -o busuanzi main.go
    根据提示修改 config.yml
    编辑dist/busuanzi.js或编译dist/busuanzi.ts, 替换链接为自己部署的。
    通过命令 ./busuanzi 启动程序
    2. 使用 Docker 运行 (Recommend)【推荐此法安装】
    在一个空文件夹中创建名为 docker-compose.yaml 的文件, 内容如下或见 docker-compose.yaml

    version: "3.8"
    
    services:
      redis:
     image: "redis:alpine"
     volumes:
       - ./data/redis:/data
      
      bsz:
     image: "xcsoft/busuanzi:latest"
     ports:
       - "8080: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: http://127.0.0.1:8080                 # 填写你的 API 地址
       REDIS_ADDRESS: redis:6379                         # redis 地址
       BSZ_PATHSTYLE: true
       BSZ_ENCRYPT: MD516

    环境变量设置
    环境变量 参数说明

    环境变量参数说明
    API_SERVER busuanzi.jsAPI地址
    WEB_LOG 是否开启日志默认 true
    REDIS_ADDRESS Redis 地址默认为 redis:6379
    REDIS_PASSWORD Redis默认空
    BSZ_SECRET 签名密钥使用任意长度的字符串填充

执行 docker compose up -d 服务将会运行在 8080 端口, 也可以自行修改 docker-compose.yml 指定端口

您也可以修改 ~/data/bsz/config.yaml 自定义配置, 后重启容器。
通用环境变量
Tips: 所有 config 内的设置, 均可使用 环境变量 覆盖

Ex. BSZ_SECRET = 123 将覆盖 config.yaml 中的 Bsz.Secret

  1. 二进制文件运行

    # 部分静态资源并未打包在 二进制文件内, 因此需要 clone 整个项目到本地
    
    $ git clone https://gitee.com/soxft/busuanzi && cd busuanzi
    
    # 在 Release 中选择适合自己系统版本的二进制文件 (在 v2.8.0 后, 所有二进制文件由 Github Action 自动构建) 此处以常见服务器 (Linux & amd64) 作为演示 
    
    $ wget https://github.com/soxft/busuanzi/releases/download/v2.8.8/busuanzi-linux-amd64-v2.8.8 -o busuanzi
    
    $ chmod +x busuanzi
    
    # 运行 busuanzi
    $ ./busuanzi

二、快捷使用
1、本站不蒜子

<script defer src="https://bsz.211119.xyz/js"></script>

本文总阅读量 <span id="busuanzi_page_pv"></span> 次
本文总访客量 <span id="busuanzi_page_uv"></span> 人
本站总访问量 <span id="busuanzi_site_pv"></span> 次
本站总访客数 <span id="busuanzi_site_uv"></span> 人

2、杜老师不蒜子

<script defer src="https://busuanzi.9420.ltd/js"></script>

本文总阅读量 <span id="busuanzi_page_pv"></span> 次
本文总访客量 <span id="busuanzi_page_uv"></span> 人
本站总访问量 <span id="busuanzi_site_pv"></span> 次
本站总访客数 <span id="busuanzi_site_uv"></span> 人

相对于原版的不蒜子, 您可能需要修改标签 ID.
当然您也可以参阅下方 可选参数 -> Ex -> 3, 通过直接修改 data-prefix 实现兼容.

可选参数

属性默认值释义
data-apihttp://127.0.0.1:8080/api不蒜子的API地址
pjax表格是否监听 pjax 变化
data-prefixbusuanzi标签前缀

Ex
在一些启用了 pjax 技术的网站中, 可以在 js 标签中加入 pjax 属性, 来实现当网站切换页面时自动更新页面计数的效果:

可以使用 data-api 属性, 指定后端API的接口:

可以使用 data-style 属性, 指定数据的显示样式

short
显示为短形式, 如 1024 将显示为 1k

comma
以逗号分隔数据, 如 1024 将显示为 1,024

default
默认模式, 显示完整的数据

不同于原版, 为了更加精简, 我们去除了 HTML ID 中的 value 字符, 但您仍然可以通过指定 data-prefix 属性来进行兼容:

0

评论 (0)

取消
您是第 39707 位访客