Sink:基于 Cloudflare Workers 的开源短链接管理与分析系统
Sink 是一款专为开发者设计的轻量级短链接缩短服务。该项目 100% 运行在 Cloudflare 生态系统内,无需配置外部服务器,通过 Cloudflare KV 提供存储,并利用 Cloudflare 的全球边缘节点实现秒级跳转。其内置的详细数据分析与 AI 别名生成功能,使其成为个人站长进行流量统计与链接管理的理想工具。
核心技术特性
- 边缘计算架构:完全托管于 Cloudflare Workers,零服务器运维成本。
- 分布式 KV 存储:利用 Cloudflare KV 实现高速读写,支持自定义别名与区分大小写。
- 数据分析引擎:内置精细化统计,支持访客地理位置、访问趋势及来源分析。
- AI 智能化集成:支持利用 AI 自动生成短链接后缀(Slug),简化管理流程。
- 灵活控制:支持设置链接过期时间,增强数据安全性。
- API 接口支持:原生支持集成,方便接入现有工作流。
部署与初始化指南
第一步:准备环境
- Fork 仓库:前往 Sink GitHub 官方仓库 并将其 Fork 到您的 GitHub 账户。
- 创建 KV 命名空间:在 Cloudflare 控制台的 Workers 和 Pages -> KV 页面中创建一个新空间,并复制其 命名空间 ID。
- 更新配置:将复制的 ID 更新至代码仓库的
wrangler.jsonc文件中。
第二步:创建 Worker 项目
- 在 Cloudflare 面板中新建一个 Worker 项目。
- 选择您的 Sink 仓库作为部署来源,并配置以下构建指令:
- 构建命令:
pnpm run build或npm run build - 部署命令:
npx wrangler deploy
- 构建命令:
第三步:配置环境变量
项目部署后,进入 Worker 的 设置 -> 变量和密钥 页面,添加以下必要参数:
| 变量名称 | 说明 |
|---|---|
NUXT_SITE_TOKEN | 访问控制面板的授权令牌(至少 8 位字符) |
NUXT_CF_ACCOUNT_ID | 您的 Cloudflare 账户 ID |
NUXT_CF_API_TOKEN | 具有 Account Analytics 权限的 API 令牌 |
第四步:启用分析引擎
为了确保统计功能正常运行,请进入 Cloudflare Workers 和 Pages 页面右侧的 分析引擎(Analytics Engine) 选项,点击 设置 并启用免费层级。完成后重新部署项目即可生效。
使用建议
- 安全性:
NUXT_SITE_TOKEN是您后台管理的唯一凭证,请务必设置强密码并妥善保管。 - 性能优化:由于 Sink 完全依赖 Cloudflare 全球网络,建议绑定自定义域名,以获得更好的访问延迟与品牌一致性。
- 扩展性:Sink 的开源性质使其非常适合二次开发,您可以根据需求进一步自定义分析页面的展示逻辑。
在部署过程中,针对 NUXT_CF_API_TOKEN 的权限配置,如果您在获取特定权限时遇到障碍,建议参考 Cloudflare 的官方 API 管理文档 进行确认。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 马斯克的赛博空间!
评论


