Cloudflare 多账户管理:从痛点分析到开源方案实践 背景日常开发中经常同时用到多个 Cloudflare 账户——一个放博客域名一个跑 Workers AI还有一个管理十几条 DNS 记录。官方后台各功能分散在不同页面切换账户需要反复登录查配额、部署 Worker 这些操作非常繁琐。于是做了一个开源工具来解决这个问题把 Cloudflare 官方后台分散在多个页面、多个账户的功能全部收到一个面板里。下面分享它的架构设计和技术实现。整体架构核心思路很简单通过 Cloudflare API 统一对接所有账户的资源前端用一个 SPA 面板集中呈现和操作。架构选型项目支持两套后端共用同一套前端和业务逻辑方案后端数据库适用场景Docker 自托管Express 5SQLite本地/私有服务器数据处理在本地Cloudflare PagesHonoD1零运维数据存在 Cloudflare 边缘两种方案的选择主要看对数据的控制需求。Docker 方案的凭证和操作日志完全在本地适合对数据隐私要求高的场景Pages 方案无须维护服务器适合个人快速使用。前端统一使用Vue 3 Naive UI PiniaAPI 层做了适配层同一套前端代码可以无缝对接两种后端。凭证安全Cloudflare API 支持两种认证方式API Token细粒度权限和Global API Key全局权限。工具同时支持这两种推荐使用 API Token可以精确控制每个 Token 能访问的资源和操作类型。所有凭证在前端提交后后端使用AES-256-CBC加密存入数据库加密密钥由部署者自己设定不经过任何第三方服务。核心模块设计从域名 DNS 到边缘计算从对象存储到 AI 推理整个面板覆盖了 Cloudflare 运维的主要链路。多账户切换机制多账户管理的核心难点在于凭证隔离和上下文切换。实现上每个账户的 API Token 独立加密存储用户登录面板后可以添加多个账户。切换账户时前端只切换当前会话的accountId上下文后端根据该上下文选择对应的加密凭证解密后调用 Cloudflare API。操作审计日志也按账户维度记录方便追溯。Workers / Pages 批量部署跨账户部署 Worker 是最常用的功能之一。Cloudflare 官方 API 的部署流程是上传脚本 → 配置绑定 → 设置路由 → 绑定域名每一步都要单独调 API。这里做了两件事结构化表单把 JSON 配置转为可视化表单KV 绑定、环境变量、路由规则都在表单里完成降低手写 JSON 的出错过率。批量调度选择多个账户后构造部署任务队列按账户串行、按步骤并行执行失败自动回滚。AI 推理网关Workers AI 提供了不错的免费推理额度但官方没有提供用量统计和配额监控。这个模块的核心设计点全模型支持通过 Workers AI 的 REST API 列出所有可用模型按文本生成、图像生成、嵌入等分类。流式对话基于 Server-Sent Events 实现流式推理前端用 Naive UI 的对话组件展示支持 Reasoning 过程可视化。OpenAI 兼容层暴露/v1/chat/completions和/v1/models两个端点响应格式完全兼容 OpenAI API。这样本地的 ChatBox、OpenCat、Continue 等工具可以直接连上来配置base_url为本机地址即可。配额调度当一个账户的 Workers AI 日配额用完后自动切换到下一个可用账户最大化利用免费额度。规则引擎Cloudflare 的 Rulesets API 相当复杂涉及多种规则类型Transform Rules、Cache Rules、Firewall Rules 等每种规则的 Phase 和表达式语法都有差异。实现上做了两层抽象规则模板层把 8 种常用规则类型回源改写、URL 重写、请求头转换、缓存控制、防火墙、限速、重定向抽象为结构化表单用户填字段即可。表达式生成层根据表单配置自动生成 Cloudflare Rulesets API 所需的表达式语法支持嵌套条件组合。隧道管理Cloudflare Tunnel 的配置链路比较长创建 Tunnel → 配置 Ingress → 添加 DNS 记录三者环环相扣漏一步就无法正常回源。这里做了一个一键回源向导用户只需输入内网服务地址和域名工具自动完成 Tunnel 创建、Ingress 规则写入、DNS CNAME 记录添加三步操作并提供可视化的 Ingress 编辑界面。模块总览模块功能说明实时仪表盘各账户 Workers、AI、渲染配额实时展示操作审计记录DNS 管理A / AAAA / CNAME / MX / TXT 全记录类型代理开关批量操作Workers / Pages脚本 CRUD单/跨账户批量部署KV 绑定、环境变量、路由、自定义域名隧道管理Tunnel 创建/删除Ingress 可视化编辑一键回源向导规则引擎8 种规则类型回源/重写/头转换/缓存/防火墙/限速/重定向表单化配置AI 推理Workers AI 全模型流式对话 Reasoning 可视化多账户配额调度浏览器渲染截图 / HTML / Markdown / PDF / 链接提取5 种模式内建 SSRF 防护存储管理KV 键值 CRUD、D1 SQL 查询、R2 文件上传/下载/预览OpenAI 兼容 API/v1/chat/completions、/v1/models流式 非流式安全API Token AES-256-CBC 加密可选登录密码/admin/路径隐藏审计日志部署实践Cloudflare Pages 部署推荐利用 GitHub Actions 自动部署到 Cloudflare Pages全程浏览器操作步骤操作1Fork 仓库打开你的 Fork →Settings→Environments2创建production环境添加 4 个 Secrets见下表3Actions→Deploy to Cloudflare Pages (Secrets)→ Run workflow环境名填production4部署完成后访问https://cfmgr.pages.dev/admin/输入API_SECRET登录变量说明CF_API_KEYCloudflare Global API KeyCF_EMAILCloudflare 账户邮箱ENCRYPTION_KEY至少 16 位随机字符串AES 加密密钥API_SECRET面板登录密码生产环境推荐用 API Token 替代 Global API Key只授予必要的权限具体权限列表见附录。Docker 自托管gitclone https://github.com/hefy2027/cf-manager.gitcdcf-managercp.env.example .envchmodx deploy.sh./deploy.sh# 访问 http://localhost:3000/admin/修改.env中的ENCRYPTION_KEY和API_SECRET后启动即可。支持 HTTP/SOCKS5 代理适合需要固定出口 IP 的环境。技术栈总结层Docker 方案Cloudflare Pages 方案前端Vue 3 Naive UI Pinia同左后端Express 5Hono数据库SQLite (better-sqlite3)Cloudflare D1部署Docker ComposeGitHub Actions → Pages参考资料GitHub 仓库https://github.com/hefy2027/cf-manager附录API Token 权限配置对照使用 API Token 时创建自定义 Token 需要勾选以下 14 项权限#权限级别对应功能1User Details:ReadUser验证 Token 有效性2Account Analytics:ReadAccount仪表盘用量统计3Workers Scripts:EditAccountWorkers 脚本 / Secrets / Cron / 域名 / 设置4Workers Tail:ReadAccountWorker 日志查看5Workers KV Storage:EditAccountKV 命名空间和键值管理6D1:EditAccountD1 数据库管理及 SQL 查询7Workers R2 Storage:EditAccountR2 存储桶和对象管理8Cloudflare Pages:EditAccountPages 项目和部署管理9Workers AI:EditAccountAI 模型列表和推理10Browser Rendering:EditAccount浏览器渲染5 种模式11Cloudflare Tunnel:EditAccountTunnel 管理12Zone:ReadZone区域列表读取13DNS:EditZoneDNS 记录管理14Workers Routes:EditZoneWorkers 路由管理资源范围Account Resources →All accountsZone Resources →All zones。创建入口Cloudflare API Tokens → 创建令牌 → 自定义。TTL 建议Forever生成后立即复制保存。