利用CloudFlare部署短链生成器Sink
本文最后更新于 2025-12-02,文章内容可能已经过时。
1. 前言
这是一篇转载教程,原教程地址:
https://runnable.run/docs/devops/Cloudflare/wan-zhuan-cf-zhi-bu-shu-duan-lian-jie-sheng-cheng-qi-sink/
2. Sink介绍
官方仓库在这:https://github.com/ccbikai/Sink
你可以直接点开它在线demo体验:https://sink.cool/dashboard
2.1 功能特性
它能够做到的功能有:
- URL 缩短:将 URL 压缩到最小长度
- 分析:监控链接分析并收集具有洞察力的统计数据
- 无服务器:无需传统服务器即可部署
- 可定制的 Slug:支持个性化的 Slug
- AI Slug:利用 AI 生成 slug。
- 链接过期:设置链接的过期日期
2.2 截图预览
2.2.1 创建链接

2.2.2 分析界面


3. 使用CF部署
部署实战:一步步在 Cloudflare Pages 上搭建 Sink
第一步:Fork Sink 开源项目
前往 Sink 的 GitHub 官方仓库 https://github.com/ccbikai/Sink。点击页面右上角的 “Fork” 按钮,将该项目完整复制到你自己的 GitHub 账号下。这是你进行后续操作的基础。

第二步:连接 Cloudflare Pages 并进行部署
这一步是核心部署过程,我们将深入讲解如何将 Forked 仓库与 Cloudflare Pages 连接,并配置必要的环境变量和绑定。
-
登录 Cloudflare 仪表盘并创建新项目:
- 访问 Cloudflare 仪表盘并登录你的账号。
- 在左侧导航栏中,点击 “Workers & Pages“,然后选择 “Pages“。
- 点击 “Create a project” 按钮,开始一个新的 Pages 项目创建流程。
-
连接 GitHub 仓库:
- 选择 “Connect to Git provider“,然后点击 “GitHub“。
- 按照提示授权 Cloudflare Pages 访问你的 GitHub 账号。
- 在仓库列表中,找到你之前 Fork 的
Sink仓库,点击 “Select“。

- 配置构建设置和环境变量:
- 在 “Set up build and deployment” 页面,首先配置基本构建信息:
- Framework preset: 选择 “Nuxt.js“。
- 在 “Set up build and deployment” 页面,首先配置基本构建信息:

- 接下来,配置环境变量 (Environment variables)。这是至关重要的一步,因为 Sink 服务依赖这些变量来存储数据和进行认证。
- 点击 “Environment variables“,然后添加以下变量:
NUXT_SITE_TOKEN:这是你访问 Sink 后台管理界面的令牌。必须设置一个至少包含 8 个字符的强密码,请务必妥善保管。NUXT_CF_ACCOUNT_ID:这是你的 Cloudflare 账号 ID。你可以在仪表盘右侧边栏的 “Account details” 中找到它。NUXT_CF_API_TOKEN:为了让 Sink 能够与你的 Cloudflare 资源进行交互,你需要创建一个具有相应权限的 API 令牌。
- 点击 “Environment variables“,然后添加以下变量:

- 访问 Cloudflare 仪表盘,点击进去一个域名。在右边下拉找到我们需要的账户ID和创建API。

- API令牌模板选择阅读分析数据和日志

- 选择 “Create Custom Token“,给令牌起一个名字(如
Sink-API),账户资源选择你的账户。

- 保存并部署:
- 完成所有配置后,点击 “Save and Deploy” 按钮。Cloudflare Pages 将启动你的项目构建和部署流程。
- 兼容性标志

-
在设置里,运行时找到兼容性标志输入
nodejs_compat。 -
此标志对于一些 Node.js 兼容性库至关重要,确保 Sink 可以在 Workers 环境中正确运行。
-
配置绑定 (Bindings) – KV、AI 和 Analytics Engine:
- 首次部署成功后,你需要进入项目的 “Settings” 页面,导航至 “Functions” -> “Bindings“。
- 在这里,你需要将 Cloudflare 提供的服务与你的项目变量进行绑定。
- KV 命名空间:
- 先去存储与数据库中创建一个kv命名空间。
- 命名空间名称: 输入sink-kv(随便输入)。
- 在设置中绑定选择kv命名空间,找到我们刚才创建好的kv命名空间,变量名称选择KV(必须是大写的KV)。

- 此绑定将用于 Sink 存储短链接的元数据。
- Workers AI (可选):
- 如果你想使用 AI 功能,点击 “Add binding“,选择 “Workers AI“。
- 变量名称: 输入
AI。 - AI binding: 选择 “Workers AI“。
- AI ID: 选择 “AI binding“。
- 这允许你的 Sink 服务利用 Workers AI 目录中的模型。

- Analytics Engine (可选):
- 启用免费套餐: 在 Cloudflare 仪表盘,转到 “存储与数据库” -> “Analytics Engine“,点击 “Set up” 以启用免费套餐。
- 添加绑定: 返回到 Pages 项目的 “Bindings” 页面,点击 “Add binding“,选择 “Analytics Engine“。
- Variable name: 输入
ANALYTICS。 - Analytics Engine dataset: 选择
sink数据集。 - 这将允许 Sink 收集和分析短链接的访问数据。

- 重新部署项目:
- 完成所有绑定和兼容性标志的配置后,返回到项目概述页面,点击 “Deployments“。
- 点击 重新部署你的项目。这一次,部署将包含你新配置的绑定和标志。

第三步:配置自定义域名
为了让你的短链接服务拥有更专业的形象和更好的品牌识别度,强烈建议配置自定义域名:
- 在 Cloudflare Pages 中添加自定义域名: 在你的 Pages 项目管理页面,只要你的域名在cloud flare上面托管了,在这个自定义域输入想要使用的域名(例如
s.yourdomain.com), Cloudflare 会自动添加。 - 如果不是在cloud flare上托管的,在你的域名注册商处添加或修改相应的 CNAME 记录。

大功告成:你的专属短链接服务已上线!
祝贺你!你已成功在 Cloudflare Pages 上部署了你的专属 Sink 短链接服务。现在,通过你配置的域名,你就可以开始创建、管理和分享简洁高效的短链接了。
自定义短链接路径: Sink 允许你自定义生成的短链接路径(slug),选择具有描述性的关键词可以提升链接的可读性和潜在的 SEO 价值。
集成 Analytics: 除了 Cloudflare Web Analytics,你还可以考虑集成其他分析工具,更全面地了解短链接的使用情况。
利用 Cloudflare Workers 进行高级定制: 如果你具备一定的开发能力,可以结合 Cloudflare Workers 为你的 Sink 服务添加更高级的功能,例如访问限制、地理位置重定向等。
定期更新 Sink 版本: 关注 Sink 项目的更新,及时将你的 Forked 仓库与上游仓库同步,以获取最新的功能和安全补丁。