Cloudflare Workers + Vercel 搭建短链接系统 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
sunnywangzi
V2EX    程序员

Cloudflare Workers + Vercel 搭建短链接系统

  •  
  •   sunnywangzi 2023-08-28 14:11:34 +08:00 2907 次点击
    这是一个创建于 777 天前的主题,其中的信息可能已经有所发展或是发生改变。

    0.展示

    1

    本文初稿由 chatgpt 生成,略有修改

    相关链接:

    1.介绍

    东湖短网址系统是一个基于 Cloudflare Workers 和 Vercel 的开源项目,旨在创建和管理短网址,您可以通过访问项目仓库了解更多详情。

    项目特点:

    • 前端管理页面:使用 Next.js 部署在 Vercel 上,支持登录、创建短网址、显示短网址列表以及查看点击历史。
    • 后端服务器:使用 Cloudflare Worker 实现,能够将短网址重定向到原始长网址,支持过期时间、密码保护和 404 回退页面。
    • 使用 Cloudflare KV 存储点击历史:需要注意免费套餐对写入次数有限制,付费套餐用户可以考虑使用点击历史功能。

    2.部署:

    也可以使用类似 gitpod 等在线平台部署,后面再补充方法

    • 前端(部署在 Vercel 上的 Next.js 项目,源代码位于 /fe) |步骤| |:--| |1.Fork 仓库并在 vercel 上部署| |2.部署时选择 Next.js ,跟目录填写 /fe,填写环境变量 CLOUDFLARE_WORKER_BASE_URL(值为https://xxx.com,注意填写的是后端的地址 即短链接域名)|
    • 后端(Cloudflare Worker ,源代码位于根目录) |步骤| |:--| |1.将代码 clone 到本地| |2.本地安装 Wrangler 命令行并登录 Cloudflare(安装:npm install -g wrangler 登录:wrangler login)| |3.创建一个 Cloudflare KV 命名空间,将 KV 命名空间 ID 填写在 wrangler.toml[[kv_namespaces]] id 中| |4.在wrangler.toml中修改环境变量 (用户名:USERNAME,密码:PASSWORD,JWT 密钥:JWT_SECRET,默认页面链接:DEFAULT_PAGE,管理页面链接:FE_ADMIN_DOMAIN,是否记录点击数:RECORD_CLICKS)| |4.部署 wrangler publish| |5.在 Cloudflare 中绑定你的域名(即前端部署时填写的环境变量的值)|

    3.注意事项:

    • 为了安全,请使用强密码和 JWT 密钥。
    • 免费套餐限制:Cloudflare 免费套餐对 KV 的写入次数有限制,建议不要在免费套餐下启用点击历史记录功能。
    • Vercel 限制:Vercel 对免费用户有限制,但一般情况下不太容易耗尽。

    此外,您可以在项目的 README 中找到更详细的部署和使用指南。

    4.说明

    感谢原作者的付出,我只是在原作者的基础上把后台管理翻译成中文而已。

    最后,感谢你的阅读,谢谢

    8 条回复    2023-10-02 16:03:39 +08:00
    totoro625
        1
    totoro625  
       2023-08-28 14:22:29 +08:00
    搭建短链接的时候看到这个了,最终选择用另一个纯 cloudflare 的方案:
    https://github.com/xyTom/Url-Shorten-Worker/
    简陋但是部署简单
    sunnywangzi
        2
    sunnywangzi  
    OP
       2023-08-28 14:25:12 +08:00
    @totoro625 我一开始也是用这个的,但是发现编辑不是很方便
    pengtikui
        3
    pengtikui  
       2023-08-28 15:18:25 +08:00
    Kinnikuman
        4
    Kinnikuman  
       2023-08-28 15:20:01 +08:00
    为啥 cf workers & vercel 共用?这俩功能都一样吧? cf 也可以挂页面,vercel 也有 kv (甚至有 Postgres)。
    2kCS5c0b0ITXE5k2
        5
    2kCS5c0b0ITXE5k2  
       2023-08-28 15:20:10 +08:00
    @pengtikui 这个有限制把.
    pengtikui
        6
    pengtikui  
       2023-08-28 15:22:32 +08:00
    @emeab #5 开源的,可以自己部署
    hanguofu
        7
    hanguofu  
       2023-08-29 05:12:15 +08:00 via Android
    谢谢分享:)
    Likenttt
        8
    Likenttt  
       2023-10-02 16:03:39 +08:00
    惊呆了,我说怎么最近 star 突然增多了。pq
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2533 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 15:34 PVG 23:34 LAX 08:34 JFK 11:34
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86