基于 CloudFlare Workers。
- https://domain.ixxx.workers.dev/ (域名列表页面)
- https://domain.ixxx.workers.dev/text (域名 + 价格)
-
从 CloudFlare 获取
CLOUDFLARE_API_TOKEN值,并设置到项目。https://github.com/<ORG>/<REPO>/settings/secrets/actionshttps://<GITLAB_DOMAIN>/<ORG>/<REPO>/-/settings/ci_cd(变量)
-
可选)设置
别名。创建KV、,并绑定到此 Workers 服务。- 2.1a 手动后台绑定,(
Settings->Variables->KV Namespace Bindings->Add binding->Variable name (data),选择创建的 KV) - 2.1b 通过命令行创建。按照本地部署的第 6 步,创建和保存
KV
- 2.1a 手动后台绑定,(
-
注册 CloudFlare 账号,并且设置 Workers 域名 (比如:
xxx.workers.dev) -
安装 Wrangler 命令行工具。
npm install -g wrangler
-
登录
Wrangler(可能需要扶梯):# 若登录不成功,可能需要使用代理。 wrangler login # 或者直接设置环境变量 CLOUDFLARE_API_TOKEN export CLOUDFLARE_API_TOKEN="xxxx"
-
拉取本项目,并进入该项目目录:
git clone https://framagit.org/servless/worker-domain.git cd worker-domain -
修改
wrangler.toml文件中的name(proj)为服务名xxx(访问域名为:proj.xxx.workers.dev) -
创建 Workers 和 KV,并绑定
KV到Workers-
创建 KV,并设置 domain 值
-
创建名为
data的namespacewrangler kv:namespace create data
得到
⛅️ wrangler 2.15.1 -------------------- 🌀 Creating namespace with title "domain-data" ✨ Success! Add the following to your configuration file in your kv_namespaces array: { binding = "data", id = "c63f7dad63014a70847d96b900a4fc3f" }
将上述命令得到的
kv_namespaces保存到wrangler.toml中,即
-
-
将
data值保存到KV namespacewrangler kv:key put --binding=data 'domains' '["domain":"x.com", "regdate":"", "expdate":""]'
-
-
发布
wrangler deploy
发布成功将会显示对应的网址
Proxy environment variables detected. We'll use your proxy for fetch requests. ⛅️ wrangler 2.13.0 -------------------- Total Upload: 0.66 KiB / gzip: 0.35 KiB Uploaded proj (1.38 sec) Published proj (4.55 sec) https://proj.xxx.workers.dev Current Deployment ID: xxxx.xxxx.xxxx.xxxx