Sink:一款可部署在Cloudflare上的轻量级链接缩短器

简介

Sink 是一个简洁、快速且功能强大的链接缩短器。它的特别之处在于,可以免费部署在 Cloudflare 的 Workers 和 Pages 上,自带美观的管理面板和基础的分析功能,让你完全掌控自己的数据。

注: 虽然本文主要使用 Cloudflare 进行部署教程,但 Sink 也支持通过其他方式部署,感兴趣可以前往其官方页面查看。

准备工作

在开始之前,你需要准备以下东西:

  1. 一个 Cloudflare 账号(如果使用 Cloudflare 部署,此为必须)
  2. 一个 GitHub 账号(用于 Fork 项目代码)
  3. 一个域名(可选,但强烈推荐,用于绑定你的短链接服务)

提示: 本教程使用了手机浏览器页面进行截图提示,但所有操作步骤和界面逻辑与电脑端完全一致,请放心跟随操作


详细部署步骤

第一步:Fork 项目

  1. 首先,打开上面提供的 Sink 项目 GitHub 链接。
  2. 如果你觉得项目不错,可以给作者点个 ⭐Star 以示支持。
  3. 点击右上角的 Fork 按钮,将项目代码复制到自己的 GitHub 仓库中。
    配图

第二步:在 Cloudflare Pages 上创建项目

  1. 登录你的 Cloudflare 账号,在左侧菜单栏找到并进入 Workers 和 Pages
  2. 点击 创建应用程序 按钮。如果你是第一次使用,需要先 连接到 GitHub,授权 Cloudflare 访问你的仓库。
  3. 成功连接 GitHub 后,再次点击右上角的 创建应用程序 按钮。这一次,在页面最底部找到一行小字:“想要部署 Pages?开始使用”,点击它
    配图
  4. 选择 从 Git 仓库导入,在列表中找到并选择你刚刚 Fork 的 Sink 仓库,然后点击 开始设置

第三步:配置构建与环境变量

  1. 在“设置构建和部署”部分,框架预设 请选择 Nuxt.js。其他选项保持默认即可。
  2. 在页面下方,找到 环境变量 部分。这里我们需要添加一系列配置。
核心环境变量(必须填写)

以下三个变量是必须配置的,请仔细按照说明获取:

  • NUXT_SITE_TOKEN:登录管理面板的密码,请务必设置一个复杂的、只有你知道的字符串。
  • NUXT_CF_ACCOUNT_ID:你的 Cloudflare 账户 ID。
    • 获取方法:随便选择一个你的域名进入仪表盘,右侧边栏下方可以看到“帐户 ID”;或者在 Workers 和 Pages 页面拉到最下方也能看到。
  • NUXT_CF_API_TOKEN:Cloudflare API 令牌,用于让 Sink 访问你的分析数据
    • 获取方法:点击右上角头像 -> [配置文件] -> [API 令牌] -> [创建令牌]。找到“读取分析数据和日志”模板,点击“使用模板”
    • 重点: 删除其他所有权限,只保留 “帐户分析” 的读取权限。最后在页面底部点击 “继续以显示摘要” -> “创建令牌”
    • 请务必保存好这个 Token,因为它只会显示一次!
其他环境变量(可选配置)

以下变量如无特殊需要,无需配置。你也可以根据需要自行调整。

变量名 默认值/示例 说明
NUXT_PUBLIC_PREVIEW_MODE true 是否开启预览模式
NUXT_PUBLIC_SLUG_DEFAULT_LENGTH 5 生成的短链接路径长度
NUXT_REDIRECT_STATUS_CODE 308 重定向状态码
NUXT_LINK_CACHE_TTL 60 链接缓存时间(秒)
NUXT_REDIRECT_WITH_QUERY false 重定向时是否携带原始查询参数
NUXT_HOME_URL https://sink.cool 你的首页地址(绑定域名后记得修改)
NUXT_DATASET sink 数据集名称
NUXT_AI_MODEL @cf/meta/llama-3-8b-instruct (可选)用于 AI 功能的模型
NUXT_AI_PROMPT "You are a URL shortening assistant......" (可选)AI 的提示词
  1. 将上述变量填写完成后,点击 保存并部署 按钮。Cloudflare 将开始自动构建和部署你的应用,第一次部署很快就会完成。

第四步:创建并绑定 KV 存储与 Analytics Engine

部署完成后,点击 继续处理项目,进入项目控制台。

  1. 创建 KV 命名空间

    • 在左侧菜单找到 存储和数据库 -> KV
    • 点击 创建命名空间,名称可以随意,例如 SINK_KV,然后点击 添加
  2. 启用 Analytics Engine

    • 还是在 存储和数据库 下,找到 Analytics Engine,并点击 启用 这一步通常只需点击一次即可激活。
  3. 绑定资源到项目

    • 返回你的 Sink 项目页面,点击上方的 设置 选项卡
    • 在左侧菜单中选择 绑定
    • 绑定 KV 命名空间:点击 添加绑定,选择 KV 命名空间变量名称 必须设置为大写的 KV,在下拉框中选择你刚刚创建的 KV 命名空间(如 SINK_KV),然后点击 保存
    • 绑定 Analytics Engine:再次点击 添加绑定,选择 Analytics Engine变量名称 设置为 ANALYTICS,数据集填写 sink,然后点击 保存
  4. 添加兼容性标志

    • 仍在 设置 页面,找到左侧菜单的 运行时
    • 兼容性标志 区域,找到 生产兼容性标志,点击 添加标志,输入 nodejs_compat,然后点击 保存

第五步:最终部署与自定义域名

  1. 所有配置都完成后,我们需要让这些设置生效。回到项目的 部署 选项卡。
  2. 你会看到最近一次的部署记录。点击右侧的三个点(…)菜单,选择 重试部署
  3. 等待这次部署完成。
  4. 部署成功后,你就可以为你的短链接服务绑定一个自定义域名了(强烈推荐!) 点击 自定义域 区域,按照提示添加你的域名即可

完成!

至此,所有设置均已大功告成!现在,你可以通过 Cloudflare 为你生成的 .pages.dev 临时域名,或者你绑定的自定义域名来访问你的 Sink 服务了。

在登录页面输入你之前设置的 NUXT_SITE_TOKEN,即可进入管理面板,开始创建你的第一个短链接,并查看点击数据啦!