Sink 是一款开源免费的短链接生成工具,无需服务器即可部署在 Cloudflare Workers 或 Pages 上,支持自定义短链接、设置到期时间及数据分析功能。部署需配置环境变量、绑定 KV 数据库和 Analytics Engine,并设置兼容性标志。
最重要的是实现以上这些功能并不需要有自己的服务器,Sink 可以 100% 运行在 Cloudflare 上,主程序部署在 CF 的 Workers 或者 Pages 上,数据库存储在 CF 的 KV 中,除了不花一分钱以外,安全性也有保证。
准备工作
- GitHub 账号
- Cloudflare 账号 (需绑定支付方式)
部署
提示
完成以下所有配置前(环境变量、绑定、兼容性标志),Sink 项目会部署失败,这是正常现象,全部配置完毕后再次重新部署即可。
Sink 同时支持 Workers 和 Pages 部署,可以选择自己比较熟悉的方式部署,这里我采用的是 Pages 进行演示。
无论使用哪种方式,第一步都需要在 GitHub 中 Fork Sink 仓库,并且连接到 Cloudflare。
在下方的列表中选择刚才 Fork 的 Sink 仓库
框架选择 Nuxt.js,下方会自动选择对应的部署命令和目录
环境变量
为了让 Sink 能够运行,需要填写 3 个必须的环境变量,其他环境变量参考 Sink Configuration
NUXT_SITE_TOKEN
Sink 的管理密码,自行填写即可,建议使用强密码
NUXT_CF_ACCOUNT_ID
Cloudflare 的账号 ID,参照下图复制后填写即可
NUXT_CF_API_TOKEN
Cloudflare 的 API Token 用于获取分析统计数据,依次点击 Profile -> API Tokens -> Create Token
进行创建
API Token 的模板选择 Read analytics and logs
Token 名字随意,权限只保留 Account Analytics
一项即可,这样就成功创建了 API Token
绑定
为了对接数据库、启用 AI 和分析统计功能,还需要在 Settings -> Bindings
中给 Sink 绑定上 KV namespace、Analytics Engine 以及 Workers AI (可选)。
KV namespace
在 Storage & Databases 中选择 KV 并创建,Namespace name 为 sink
返回 Sink 项目设置中,绑定 KV,Variable name 为 KV
,KV namespace 为 sink
Analytics Engine
KV 下方还有 Analytics Engine,点击 Enable 启用
同样返回 Sink 项目设置中,Variable name 填写 ANALYTICS
,Dataset 填写 sink
Workers AI (可选)
再次来到 Sink 项目设置中,绑定 Workers AI,Variable name 填写 AI
兼容性标志
完成环境变量和绑定之后,部署时仍然会失败,需要再来到 Settings -> Runtime -> Compatibility flags
中添加 nodejs_compat
完成搭建
完成以上所有步骤后,应该如下图所示
此时点击 Retry deployment
重新部署即可成功运行
最后再给 Sink 绑定一个自己的域名就大功告成了!
原创文章,作者:WanKe,如若转载,请注明出处:https://wankewu.com/resource/1009.html