在Cloudflare Workers上搭建自己的LDC商店详细教程

2026-04-29 09:042阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

之前分享了开源的LDC商店https://github.com/chatgptuk/ldc-shop,有些佬友部署时遇到了一些困难,因此今天抽空写个详细的部署教程。刚把Cloudflare Workers版的代码重构了,现在和Vercel版功能及界面都一模一样,个人感觉Cloudflare Workers版访问速度更快,而且Cloudflare大善人的免费额度也更高,因此我现在比较推荐部署在Cloudflare上。下面演示一下部署过程,全程网页上部署,不用敲命令,无需自己的域名。

首先准备一个GitHub和一个Cloudflare账号,这个都有吧,先去fork我的GitHub仓库。然后去Cloudflare,如下图,创建一个D1数据库,取个名字,例如这里我命名为ldc-shop-next,建议用这个名字,和wrangler.json里目前默认值一致方便后面数据库自动绑定。
截屏2026-01-12 21.11.542968×1212 297 KB

接下来去Workers&Pages页面选择Create application:
截屏2026-01-12 21.12.223112×1116 290 KB
连接之前fork的仓库, Build command修改为:npm install && npx opennextjs-cloudflare build
截屏2026-01-12 21.13.003112×1388 235 KB

接着点击Advanced settings,修改Path为_workers_next
截屏2026-01-12 21.13.083112×1388 211 KB

这时部署就开始了,趁着没部署好,可以先去添加环境变量,需要添加7个环境变量:

变量名 类型 说明
OAUTH_CLIENT_ID Secret Linux DO Connect Client ID
OAUTH_CLIENT_SECRET Secret Linux DO Connect Client Secret
MERCHANT_ID Secret EPay 商户 ID
MERCHANT_KEY Secret EPay 商户 Key
AUTH_SECRET Secret 随机字符串,例如可以随便手动打一串英文字母加数字
ADMIN_USERS Secret 管理员用户名,如果多个管理员就用逗号分隔,填写你的 L 站 username
NEXT_PUBLIC_APP_URL Text 你的 Workers 域名(例如我的是 https://ldc-shop.supergpt.workers.dev

重要
NEXT_PUBLIC_APP_URL 必须设置为 Text 类型,不能使用 Secret,否则支付签名会失败!

截屏2026-01-12 21.15.333110×1536 331 KB

上面的环境变量有些还没拿到,接下来去https://connect.linux.do/dash/sso/new申请新接入,其中回调地址是你的Workers分配的那个域名后面加/api/auth/callback/linuxdo,保存后页面出现的 Client IDClient Secret分别对应环境变量中的OAUTH_CLIENT_ID和OAUTH_CLIENT_SECRET。
截屏2026-01-12 21.17.391240×926 51.3 KB

接下来再去https://credit.linux.do/merchant这里创建一个应用,回调 URL填写为你Workers的URL后面加/callback,通知 URL填写为你Workers的URL后面加/api/notify,如下图:
截屏2026-01-12 21.20.131124×980 59.3 KB

创建应用后拿到Client ID和Client Secret,对应环境变量中的MERCHANT_ID和MERCHANT_KEY:
截屏2026-01-12 21.20.272820×1228 273 KB

完成上面的步骤,所有环境变量都拿到了,填写以后Deploy即可。最后一步,绑定数据库,下图位置点击Add binding,选择D1数据库,变量名填写为DB,选择你最开始创建的数据库,Add Binding后就一切就绪了。这时你就可以访问商店,用自己的L站账号登录,进入后台添加商品和卡密,然后进行购买测试了(Linux do credit那里开启测试模式,就可以模拟付款给自己了)。
截屏2026-01-12 21.21.152652×1388 209 KB

截屏2026-01-12 21.21.292652×1388 269 KB

注意,如果GitHub仓库更新后触发重新部署,数据库会失去绑定状态,访问商店会报错,但是如果最前面你把数据库命名为ldc-shop-next,会自动绑定的。wrangler.json里数据库名字目前默认是这个值。如果你最开始数据库是别的名字,失去绑定状态的话需要再次手动绑定数据库,为了方便,可以在_workers_next/wrangler.json中指定自己的数据库名字或者id,这样就不用每次重新部署后再次绑定数据库了:

{ "name": "ldc-shop-next", "main": ".open-next/worker.js", "compatibility_date": "2025-11-12", "compatibility_flags": ["nodejs_compat"], "assets": { "directory": ".open-next/assets", "binding": "ASSETS" }, "d1_databases": [ { "binding": "DB", "database_name": "你的数据库名字", "database_id": "你的数据库ID" } ], "observability": { "enabled": true } }

另外,如果不绑定自己的域名,支付回调异步通知似乎会失败,但当前版本系统会自动查询订单状态,支付成功状态也会正常更新,只是会延迟一秒左右,不影响使用。有条件的话可以绑定自己的域名。如有其他bug欢迎反馈。

网友解答:
--【壹】--:

佬友太厉害了


--【贰】--:

感谢佬的教程,很详细


--【叁】--:

哇塞感谢大佬分享!


--【肆】--:

强无敌啊!!!


--【伍】--:

感谢分享 很详细


--【陆】--:

感谢大佬分享,关注了


--【柒】--:

狠狠地收藏了,说不定以后会用到


--【捌】--:

已收藏学习


--【玖】--:

已严肃收藏


--【拾】--:

细节!mark了再看


--【拾壹】--:

码 等下看!


--【拾贰】--:

CF方便多了,可以绑定免费的二级域名


--【拾叁】--:

感谢 gpt 大佬分享


--【拾肆】--: ChatGPT:

可以在_workers_next/wrangler.json 中指定数据库 id,这样就不用每次重新部署后再次绑定数据库了

佬,这一步在哪里搞得啊,前面都学会了,这一步无从下手 ,求指教


--【拾伍】--:

感谢分享


--【拾陆】--:

感谢大佬的教程


--【拾柒】--:

冲冲冲冲冲冲


--【拾捌】--:

到你自己Fork的GitHub仓库,找到_workers_next文件夹下wrangler.json这个文件,把代码粘贴进去保存就行了。数据库名字和id替换为你自己真实的值。


--【拾玖】--:

前排前排

标签:配置优化
问题描述:

之前分享了开源的LDC商店https://github.com/chatgptuk/ldc-shop,有些佬友部署时遇到了一些困难,因此今天抽空写个详细的部署教程。刚把Cloudflare Workers版的代码重构了,现在和Vercel版功能及界面都一模一样,个人感觉Cloudflare Workers版访问速度更快,而且Cloudflare大善人的免费额度也更高,因此我现在比较推荐部署在Cloudflare上。下面演示一下部署过程,全程网页上部署,不用敲命令,无需自己的域名。

首先准备一个GitHub和一个Cloudflare账号,这个都有吧,先去fork我的GitHub仓库。然后去Cloudflare,如下图,创建一个D1数据库,取个名字,例如这里我命名为ldc-shop-next,建议用这个名字,和wrangler.json里目前默认值一致方便后面数据库自动绑定。
截屏2026-01-12 21.11.542968×1212 297 KB

接下来去Workers&Pages页面选择Create application:
截屏2026-01-12 21.12.223112×1116 290 KB
连接之前fork的仓库, Build command修改为:npm install && npx opennextjs-cloudflare build
截屏2026-01-12 21.13.003112×1388 235 KB

接着点击Advanced settings,修改Path为_workers_next
截屏2026-01-12 21.13.083112×1388 211 KB

这时部署就开始了,趁着没部署好,可以先去添加环境变量,需要添加7个环境变量:

变量名 类型 说明
OAUTH_CLIENT_ID Secret Linux DO Connect Client ID
OAUTH_CLIENT_SECRET Secret Linux DO Connect Client Secret
MERCHANT_ID Secret EPay 商户 ID
MERCHANT_KEY Secret EPay 商户 Key
AUTH_SECRET Secret 随机字符串,例如可以随便手动打一串英文字母加数字
ADMIN_USERS Secret 管理员用户名,如果多个管理员就用逗号分隔,填写你的 L 站 username
NEXT_PUBLIC_APP_URL Text 你的 Workers 域名(例如我的是 https://ldc-shop.supergpt.workers.dev

重要
NEXT_PUBLIC_APP_URL 必须设置为 Text 类型,不能使用 Secret,否则支付签名会失败!

截屏2026-01-12 21.15.333110×1536 331 KB

上面的环境变量有些还没拿到,接下来去https://connect.linux.do/dash/sso/new申请新接入,其中回调地址是你的Workers分配的那个域名后面加/api/auth/callback/linuxdo,保存后页面出现的 Client IDClient Secret分别对应环境变量中的OAUTH_CLIENT_ID和OAUTH_CLIENT_SECRET。
截屏2026-01-12 21.17.391240×926 51.3 KB

接下来再去https://credit.linux.do/merchant这里创建一个应用,回调 URL填写为你Workers的URL后面加/callback,通知 URL填写为你Workers的URL后面加/api/notify,如下图:
截屏2026-01-12 21.20.131124×980 59.3 KB

创建应用后拿到Client ID和Client Secret,对应环境变量中的MERCHANT_ID和MERCHANT_KEY:
截屏2026-01-12 21.20.272820×1228 273 KB

完成上面的步骤,所有环境变量都拿到了,填写以后Deploy即可。最后一步,绑定数据库,下图位置点击Add binding,选择D1数据库,变量名填写为DB,选择你最开始创建的数据库,Add Binding后就一切就绪了。这时你就可以访问商店,用自己的L站账号登录,进入后台添加商品和卡密,然后进行购买测试了(Linux do credit那里开启测试模式,就可以模拟付款给自己了)。
截屏2026-01-12 21.21.152652×1388 209 KB

截屏2026-01-12 21.21.292652×1388 269 KB

注意,如果GitHub仓库更新后触发重新部署,数据库会失去绑定状态,访问商店会报错,但是如果最前面你把数据库命名为ldc-shop-next,会自动绑定的。wrangler.json里数据库名字目前默认是这个值。如果你最开始数据库是别的名字,失去绑定状态的话需要再次手动绑定数据库,为了方便,可以在_workers_next/wrangler.json中指定自己的数据库名字或者id,这样就不用每次重新部署后再次绑定数据库了:

{ "name": "ldc-shop-next", "main": ".open-next/worker.js", "compatibility_date": "2025-11-12", "compatibility_flags": ["nodejs_compat"], "assets": { "directory": ".open-next/assets", "binding": "ASSETS" }, "d1_databases": [ { "binding": "DB", "database_name": "你的数据库名字", "database_id": "你的数据库ID" } ], "observability": { "enabled": true } }

另外,如果不绑定自己的域名,支付回调异步通知似乎会失败,但当前版本系统会自动查询订单状态,支付成功状态也会正常更新,只是会延迟一秒左右,不影响使用。有条件的话可以绑定自己的域名。如有其他bug欢迎反馈。

网友解答:
--【壹】--:

佬友太厉害了


--【贰】--:

感谢佬的教程,很详细


--【叁】--:

哇塞感谢大佬分享!


--【肆】--:

强无敌啊!!!


--【伍】--:

感谢分享 很详细


--【陆】--:

感谢大佬分享,关注了


--【柒】--:

狠狠地收藏了,说不定以后会用到


--【捌】--:

已收藏学习


--【玖】--:

已严肃收藏


--【拾】--:

细节!mark了再看


--【拾壹】--:

码 等下看!


--【拾贰】--:

CF方便多了,可以绑定免费的二级域名


--【拾叁】--:

感谢 gpt 大佬分享


--【拾肆】--: ChatGPT:

可以在_workers_next/wrangler.json 中指定数据库 id,这样就不用每次重新部署后再次绑定数据库了

佬,这一步在哪里搞得啊,前面都学会了,这一步无从下手 ,求指教


--【拾伍】--:

感谢分享


--【拾陆】--:

感谢大佬的教程


--【拾柒】--:

冲冲冲冲冲冲


--【拾捌】--:

到你自己Fork的GitHub仓库,找到_workers_next文件夹下wrangler.json这个文件,把代码粘贴进去保存就行了。数据库名字和id替换为你自己真实的值。


--【拾玖】--:

前排前排

标签:配置优化