- 迁移 apps/admin → apps/ui 并更新构建引用 - 同步 wrangler、tsconfig、bun.lock 与 .gitignore - 更新 CI 与文档/知识库路径
4.3 KiB
4.3 KiB
api-worker
简易版 new-api:Cloudflare Workers + D1 后端,Vite 静态管理台。 管理台构建产物通过 Worker Static Assets 与 Worker 一起部署。
目录结构
apps/workerCloudflare Worker (Hono)apps/ui管理台 (Vite)tests基础单元测试
本地开发
1) 安装依赖
bun install
2) Worker
bun run dev:worker
环境变量(apps/worker/wrangler.toml 或 wrangler secret put):
CORS_ORIGIN允许的管理台来源PROXY_RETRY_ROUNDS代理失败轮询次数(默认 2)PROXY_RETRY_DELAY_MS轮询间隔(毫秒,默认 200)
系统设置(管理台 → 系统设置):
- 日志保留天数(默认 30)
- 会话时长(小时,默认 12)
- 管理员密码(首次登录自动初始化,可在系统设置中修改)
3) UI
bun run dev:ui
前端配置(apps/ui/.env 可选):
VITE_API_BASE管理 API 基址(默认同域)VITE_API_TARGET本地开发代理目标(默认 http://localhost:8787)
4) 常用脚本
bun run fix
用于自动修正 package.json 常见问题(等价于 bun pm pkg fix)。
New API 兼容接口
为了支持 all-api-hub 等插件同步渠道,Worker 提供 New API 风格的渠道管理接口:
- 路径前缀:
/api/channel - 认证方式:
Authorization: Bearer {管理员密码}(或管理台登录 token) - 可选请求头:
New-Api-User: 1
支持的常用接口:
GET /api/channel渠道列表GET /api/channel/渠道列表(兼容尾斜杠)GET /api/group渠道分组列表GET /api/channel/search渠道搜索POST /api/channel新增渠道(单条)PUT /api/channel更新渠道DELETE /api/channel/:id删除渠道GET /api/channel/test/:id渠道连通性测试GET /api/channel/fetch_models/:id拉取渠道模型GET /api/user/models用户可用模型列表
D1 数据库
在 apps/worker/migrations/0001_init.sql 定义表结构,使用 Wrangler 迁移。
本地开发使用本地数据库,云端部署使用 --remote:
bun run --filter api-worker db:migrate
云端(Cloudflare D1)请使用:
bunx wrangler d1 migrations apply DB --remote
忘记管理员密码
管理员密码存储为哈希,可通过删除设置记录来重置,下一次登录会用输入的密码重新初始化:
bunx wrangler d1 execute DB --command "DELETE FROM settings WHERE key = 'admin_password_hash';"
云端部署(Cloudflare Workers + D1)
说明:
- 管理台静态资源来自
apps/ui/dist /api/*与/v1/*会优先走 Worker 逻辑- 部署顺序:先构建管理台,再部署 Worker
- 下述
wrangler deploy与--remote均为云端部署/迁移(非本地模拟)
1) 新建部署
- 安装依赖:
bun install
- 创建 D1 数据库并回填
apps/worker/wrangler.toml的database_id:
bunx wrangler d1 create new_api_lite
- 设置 Worker 变量与密钥(如 CORS_ORIGIN):
其他变量可继续放在 apps/worker/wrangler.toml 的 [vars] 中,CORS_ORIGIN 需指向管理台域名。
- 构建管理台并上传静态资源:
bun run --filter api-worker-ui build
- 执行远程迁移:
bunx wrangler d1 migrations apply DB --remote
- 部署 Worker:
bun run --filter api-worker deploy
2) 更新前端(仅管理台变更)
bun run --filter api-worker-ui build
bun run --filter api-worker deploy
3) 更新后端(仅 Worker 变更)
bun run --filter api-worker deploy
4) 数据库更新
- 添加新的迁移文件到
apps/worker/migrations/。 - 执行远程迁移:
bunx wrangler d1 migrations apply DB --remote
5) 自动部署(GitHub Actions)
工作流默认在 main 分支推送时触发,步骤为:安装依赖 → 构建管理台 → 部署 Worker。
需要在仓库 Secrets 中配置:
CLOUDFLARE_API_TOKEN:具有 Workers 与 D1 权限的 API TokenCLOUDFLARE_ACCOUNT_ID:Cloudflare 账户 ID(若 token 无法自动识别账户)
确保 apps/worker/wrangler.toml 中已填写 database_id。
可选:仓库级 Actions 变量 SPA_DEPLOY 可用于控制自动部署开关(未设置时默认启用)。