本文最后更新于 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“。

  • 接下来,配置环境变量 (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 令牌。

  • 访问 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“。
    • 点击 重新部署你的项目。这一次,部署将包含你新配置的绑定和标志。

第三步:配置自定义域名

为了让你的短链接服务拥有更专业的形象和更好的品牌识别度,强烈建议配置自定义域名:

  1. 在 Cloudflare Pages 中添加自定义域名: 在你的 Pages 项目管理页面,只要你的域名在cloud flare上面托管了,在这个自定义域输入想要使用的域名(例如 s.yourdomain.com), Cloudflare 会自动添加。
  2. 如果不是在cloud flare上托管的,在你的域名注册商处添加或修改相应的 CNAME 记录。

大功告成:你的专属短链接服务已上线!

祝贺你!你已成功在 Cloudflare Pages 上部署了你的专属 Sink 短链接服务。现在,通过你配置的域名,你就可以开始创建、管理和分享简洁高效的短链接了。

自定义短链接路径: Sink 允许你自定义生成的短链接路径(slug),选择具有描述性的关键词可以提升链接的可读性和潜在的 SEO 价值。

集成 Analytics: 除了 Cloudflare Web Analytics,你还可以考虑集成其他分析工具,更全面地了解短链接的使用情况。

利用 Cloudflare Workers 进行高级定制: 如果你具备一定的开发能力,可以结合 Cloudflare Workers 为你的 Sink 服务添加更高级的功能,例如访问限制、地理位置重定向等。

定期更新 Sink 版本: 关注 Sink 项目的更新,及时将你的 Forked 仓库与上游仓库同步,以获取最新的功能和安全补丁。