使用Cloudflare部署Cap Standalone

使用 Cloudflare 部署 Cap Standalone

写在前面

Cap 是个挺有意思的项目,是一个用 SHA-256 工作量证明(PoW)做的人机验证方案,很好看很快。原版tiagozip/cap 是Docker部署的。

但说实话,谁手里有台 24 小时开机的服务器呢?

所以我就 Fork 了一份,做了个能在Cloudflare Workers + D1上跑的版本:cheymin/cap。今天就来聊聊这个版本和部署过程。

重要前提:Cloudflare 部署版本和 Docker 部署版本在功能上完全一致。前端 UI、Captcha 挑战/验证 API、Dashboard、token 管理、session 管理、siteverify、限流……所有功能都是一一对应的。唯一的区别就是运行环境变成了 Workers + D1。

部署

Fork 项目

打开cheymin/cap 仓库,点击右上角的 Fork 按钮,Fork 到你自己的账号下。

在 Cloudflare 创建应用

  1. 登录Cloudflare Dashboard
  2. 左侧菜单选择 Workers & Pages
  3. 点击 CreatePagesImport an existing Git repository
  4. 选择 Connect to Git,授权 Cloudflare 访问你的 GitHub
  5. 选择你刚刚 Fork 的cap 仓库
  6. 配置构建设置:
    • Project name:随便起,比如 my-cap
    • Production branchmain
    • Build command:留空(不需要构建,纯 JS)
    • Build output directory:留空
  7. 点击 Save and Deploy

第一次部署还用不了,因为还没配置 D1 绑定和环境变量。

创建并连接 D1 数据库

  1. 在 Cloudflare Dashboard 左侧菜单找到Workers & PagesD1 SQL Database
  2. 点击Create database
  3. 数据库名随便起

然后回到你的 Worker 应用:

  1. 进入 Worker 的SettingsFunctionsBindings
  2. 找到D1 database Bindings,点击 Add binding
  3. Variable nameDB
  4. D1 database 选择刚刚创建的 cap-db

image.webp

设置管理员密钥

回到 Worker 的SettingsVariables and Bindings

  1. Environment Variables 部分点击 Add variable
  2. Variable nameADMIN_KEY
  3. Value:你的管理员密码(≥12 位的随机字符串
  4. 保存

这一步会自动触发重新部署。等部署完成,你的 Cap Standalone 就跑起来了。

image.webp

访问并登录

打开CF给你的域名

输入你设置的 ADMIN_KEY,就能进去了

image.webp

image.webp

和原版没啥区别