【原创】基于Workers的极轻量GitHub(Shields.io)风格多彩计数器,一分钟搭建Uptime100%

前言

由于知名计数器hit-counter关闭服务,影响到了脚本的正常运行量统计,因此随手复刻了一个一模一样的,供大家使用。

:star: GitHub地址:GitHub - xykt/Hits: General purpose hits counter (GitHub / Shields.io style) based on Cloudflare Workers & D1 :star:

(省流自吹)这个复刻版的好处是基于Cloudflare Workers,完全轻量化,无需服务器,稳定不怕跑路,无脑一分钟搭建完成

Hits! - 基于Cloudflare Workers的综合访问计数器

Hits Version Uptime Deploy Cost License

Hits! 一款完全免费、无需服务器、基于 Cloudflare WorkersD1 SQL Database 的轻量级访问计数器系统,支持JSON及GitHub(Shields.io)风格SVG图片,一分钟快速部署

:sparkles: 功能特性

  • :rocket: 快速部署 - 一分钟即可完成部署
  • :cloud: 云端托管 - 无需维护服务器
  • :money_bag: 完全免费 - 使用Cloudflare免费套餐
  • :bar_chart: 多站点支持 - 通过不同keyword支持多个计数器
  • :locked: 安全可靠 - 基于Cloudflare全球网络
  • :artist_palette: 多彩展示 - 支持自定义色彩的SVG及JSON输出

:hammer_and_wrench: 快速部署指南

1. 创建D1数据库

进入Cloudflare Dashboard,导航至 Storage & Databases > D1 SQL Database - Create,命名为hits,在 Console 中执行以下SQL创建表:

CREATE TABLE counters ( name TEXT PRIMARY KEY, count INTEGER DEFAULT 0 );

2. 创建Workers

导航至 Workers & Pages > Create application > Create Worker,命名为 hits,复制hit.js代码到Worker编辑器中,修改第七行domain为你的计数器域名,并设置keyword,每个计数器对应一个keyword,后续新增计数器只需要新增keyword即可

3. 配置绑定

在Worker的 Settings > Bindings > Add > D1 Database中,变量名称输入 HITS,数据库选择 hits。在Worker的 Domains & Routes - Add - Custom domain中添加您的刚才设定的计数器域名

4. 使用方法

  • SVG图片
https://your.domain/keyword.svg?action=view&count_bg=%233DC8C0&title_bg=%23555555&title=Visits&edge_flat=false
参数 Description 说明
action view / hit View only or hit & view 仅展示/点击并展示
count_bg %23{colorcode} Background color of count area 数字部分背景颜色
title_bg %23{colorcode} Background color of title area 标题部分背景颜色
title TitleToShow Text to display 展示标题
edge_flat true / false Sharp or rounded corners 尖角/圆角
Shields.io 预设 别名 Hits! 示例 Shields.io 示例
count_bg=brightgreen success brightgreen shields-brightgreen
count_bg=green green shields-green
count_bg=yellow yellow shields-yellow
count_bg=yellowgreen yellowgreen shields-yellowgreen
count_bg=orange important orange shields-orange
count_bg=red critical red shields-red
count_bg=blue informational blue shields-blue
count_bg=grey gray grey shields-grey
count_bg=lightgrey lightgray inactive lightgrey shields-lightgrey
自定义 黑色 灰色 蓝色 绿色 紫色 红色
红色 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 29 30
紫色 31 32 33 34 35 36
灰色 37 38 39 40 41 42
  • JSON结果
请求 Description 说明
https://your.domain/keyword?action=view View only 仅展示
https://your.domain/keyword?action=hit Hit & View 点击并展示

返回JSON结果

{
  "counter": "keyword",
  "action": "hit",
  "total": 1024,
  "daily": 32,
  "date": "2025-03-31",
  "timestamp": "2025-03-31T04:08:16.512Z"
}

欢迎提交Pull Request或Issue!

22 个赞

大佬恐怖如斯

2 个赞

太强了,大佬

2 个赞

太有实力了

2 个赞

太强了。 :slightly_smiling_face:

2 个赞

牛的啊大佬

太强了立刻就是一个一键三连

1 个赞

大佬牛逼,点Star

  • 2025-03-31 更新Shield.io预设颜色

此话题已在最后回复的 30 天后被自动关闭。不再允许新回复。