# cf-store **Repository Path**: hefy27/cf-store ## Basic Information - **Project Name**: cf-store - **Description**: Official template catalog for CF Manager — 65+ one-click-deployable Cloudflare Worker/Pages templates with KV, D1, R2, AI bindings, JSON Schema validated, auto-mirrored to surge.sh. - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-30 - **Last Updated**: 2026-07-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CF Store CF Manager 的官方模板源(catalog)。CF Manager 的 Store 页面会从本仓库的 `catalog.json` 拉取可一键部署的 Worker / Pages / Hybrid 模板。 ## 已收录模板 > 共 65 个模板。本表由 `catalog.json` 同步生成(运行 `node scripts/gen-readme-table.mjs` 刷新),请勿手改,保持与 `catalog.json` 一致。 | 名称 | ID | 类型 | 描述 | 标签 | |------|----|------|------|------| | [Hello World](https://github.com/hefy2027/cf-store) | `hello-world` | worker | 一个最简单的 Cloudflare Worker,返回 JSON 格式的 Hello 消息,适合新手入门。 | 入门, worker, 示例 | | [Echo 服务器](https://github.com/hefy2027/cf-store) | `echo-server` | worker | 回显请求信息的 Worker,返回请求方法、Header、路径等,可用于调试 Webhook 和 API 调用。 | 调试, webhook, worker | | [KV 存储演示](https://github.com/hefy2027/cf-store) | `kv-demo` | worker | 演示 Worker 如何读写 Cloudflare KV 存储。需要 KV 命名空间绑定。 | kv, 存储, worker | | [D1 数据库演示](https://github.com/hefy2027/cf-store) | `d1-demo` | worker | 演示 Worker + D1 数据库的完整 CRUD 操作。自动创建 items 表,支持增删查。 | d1, 数据库, worker, CRUD | | [AI 推理演示](https://github.com/hefy2027/cf-store) | `ai-demo` | worker | 演示 Worker + Workers AI 绑定,调用 LLM 模型进行文本生成。支持 Llama、Mistral、DeepSeek 等模型。 | ai, LLM, 推理, worker | | [Hybrid 双模部署](https://github.com/hefy2027/cf-store) | `hybrid-demo` | hybrid | 同一份代码同时支持 Worker 和 Pages 两种部署方式。部署时可选择仅 Worker、仅 Pages 或同时部署。包含简单 Web API + 静态页面。 | hybrid, 双模, worker, pages | | [EdgeTunnel (VLESS/Trojan/SS)](https://github.com/cmliu/edgetunnel) | `edgetunnel` | hybrid | 基于 Cloudflare Workers/Pages 的边缘隧道面板,支持 VLESS、Trojan、Shadowsocks 协议,内置管理后台与订阅系统。第三方开源项目(cmliu/edgetunnel)。 | 隧道, 代理, worker, pages, hybrid, 第三方 | | [Cloudflare Proxy EX](https://github.com/1234567Yang/cf-proxy-ex) | `cf-proxy-ex` | worker | 基于 Cloudflare Workers 的超级代理,支持 OpenAI/ChatGPT、GitHub 加速与 DuckDuckGo 在线代理,内置安全密码保护,支持 Cloudflare 与 Deno 多平台部署。 | 代理, worker, 加速, openai, github | | [Sublink Worker](https://github.com/7Sageer/sublink-worker) | `sublink-worker` | worker | 部署在 Cloudflare Workers 上的轻量级代理订阅转换与管理工具,支持将多种代理协议分享链接转换为不同客户端可用的订阅,内置 KV 存储。 | 订阅, worker, kv, 代理 | | [CF Page Publish MCP](https://github.com/FactrueSolin/cf-page-publish-mcp) | `cf-page-publish-mcp` | worker | Cloudflare 页面发布 MCP 工具,可将 HTML 页面发布到 Cloudflare Worker/KV,并提供 MCP 接口与可视化编辑界面,可选 Browser 绑定渲染截图。 | mcp, worker, kv, 工具 | | [KV UrlShort](https://github.com/Ai-Yolo/CloudflareWorker-KV-UrlShort) | `cloudflareworker-kv-urlshort` | worker | 基于 Cloudflare Workers + KV 的简约短链接生成器,支持密码保护、有效期与访问次数限制,内置 Web 管理界面与 Turnstile 人机验证。 | 短链, worker, kv | | [smail](https://github.com/akazwz/smail) | `smail` | worker | 基于 React Router v7 + Cloudflare Workers 的临时邮箱服务,使用 D1 存储邮件元数据、R2 存储邮件原始内容,支持 10 种语言与附件,内置 SEO 博客与多语言页面。 | 邮箱, worker, d1, r2, react-router | | [deploy-mcp](https://github.com/alexpota/deploy-mcp) | `deploy-mcp` | worker | 通用部署跟踪器 MCP 服务,支持实时状态徽章与部署监控(含 Cloudflare Pages 支持),基于 Cloudflare Workers + KV 构建。读取云厂商令牌使用 process.env,部署后需开启 nodejs_compat 兼容标志,并在后台配置 CLOUDFLARE_TOKEN / CLOUDFLARE_ACCOUNT_ID 等环境变量。 | mcp, worker, kv, 监控 | | [cohere2openai](https://github.com/beanqi/cohere2openai) | `cohere2openai` | worker | 将 Cohere API 转换为 OpenAI API 格式的 Cloudflare Worker,部署简单,仅需配置 API 密钥即可作为 OpenAI 兼容端点使用。 | worker, openai, 代理, api | | [img-mom](https://github.com/beilunyang/img-mom) | `img-mom` | worker | 基于 Cloudflare Workers 运行时的 Telegram 图床机器人,支持 Telegram、Cloudflare R2、Backblaze B2 等多渠道图床上传,轻量免费。部署后访问 /setup 完成 Webhook 注册(需在 Telegram @BotFather 创建 Bot 并填写 TG_BOT_TOKEN)。 | 图床, worker, telegram, r2 | | [MoeMail](https://github.com/beilunyang/moemail) | `moemail` | pages | 基于 Next.js + Cloudflare Pages 技术栈构建的可爱临时邮箱服务,支持多语言、多邮件渠道与附件,使用 D1 与 KV 存储。注意:本模板仅部署主站(Pages),邮件接收 Worker(email-receiver)与定时清理 Worker(cleanup)需另行部署,并需自行配置 Cloudflare Email Routing;D1 数据表需通过仓库的 drizzle 迁移初始化。 | 邮箱, pages, nextjs, d1 | | [Sink](https://github.com/ccbikai/sink) | `sink` | pages | 100% 运行在 Cloudflare 上的极简、快速、安全的短链服务,内置分析面板与控制台,基于 Nuxt + Workers AI + KV + R2 构建。 | 短链, pages, ai, kv, r2 | | [Telegraph-Image](https://github.com/cf-pages/Telegraph-Image) | `cf-pages-telegraph-image` | pages | 免费图片托管方案(Flickr/imgur 替代品),使用 Cloudflare Pages 与 Telegram 频道存储,需配置 TG_Bot_Token 与 TG_Chat_ID 环境变量。 | 图床, pages, telegram, kv | | [Cloudflare Docker Proxy](https://github.com/ciiiii/cloudflare-docker-proxy) | `cloudflare-docker-proxy` | worker | 运行在 Cloudflare Workers 上的 Docker 镜像代理,中转对 Docker 官方镜像仓库的请求(注意官方已对 Worker IP 限流,不推荐生产使用)。 | worker, docker, 代理 | | [Cohere2OpenAI CF Worker](https://github.com/ckt1031/cohere2openai-cf-worker) | `ckt1031-cohere2openai-cf-worker` | worker | 将 Cohere API 转换为 OpenAI API 的 Cloudflare Worker(已弃用,Cohere 已发布官方兼容 API,建议迁移)。 | worker, openai, 代理, 弃用 | | [CF-Workers-docker.io](https://github.com/cmliu/CF-Workers-docker.io) | `cmliu-cf-workers-docker-io` | worker | 基于 Cloudflare Workers 的 Docker 镜像代理工具,中转对 Docker 官方镜像仓库的请求,解决访问限制与加速访问问题,支持 Workers 与 Pages 部署。 | worker, docker, 代理 | | [GitHubbox](https://github.com/dferber90/githubbox) | `githubbox` | worker | 将 GitHub 仓库快速在 CodeSandbox 打开的 Cloudflare Worker:把地址中的 github.com 改为你的 Worker 域名即可自动跳转到 CodeSandbox。支持仓库、分支、标签、commit 及文件路径。 | worker, 工具, github, 跳转 | | [Cloudflare Temp Email](https://github.com/dreamhunter2333/cloudflare_temp_email) | `cloudflare-temp-email` | worker | 基于 Cloudflare Workers + D1 + Assets 的全功能临时邮箱服务,支持多语言、邮件附件、自动回复、Telegram Bot、用户管理与管理后台。前端已预构建随 Worker 一同部署,Rust WASM 邮件解析高性能。部署后需在 Cloudflare 邮件路由中配置将邮件转发到此 Worker。 | 邮箱, worker, d1, assets, 临时邮箱 | | [Emaction Backend](https://github.com/emaction/emaction.backend) | `emaction-backend` | worker | GitHub 风格的 Reactions(点赞/表情)后端,基于 Cloudflare Workers + D1 实现。提供 GET /reactions 与 PATCH /reaction 接口,可私有化自托管互动计数数据。 | worker, d1, reactions, 点赞, 后端, api | | [GitPush](https://github.com/fatwang2/gitpush) | `gitpush` | worker | 基于 Cloudflare Workers + Workflows + Workers AI + Email Routing 的 GitHub Release 追踪器,每日定时拉取关注的仓库 Release,用 Workers AI 总结更新内容并通过邮件推送。部署后需手动在 Cloudflare 后台补充两个绑定才能正常运行:1) Workflow 绑定 name=GITPUSH、class_name=GitPushWorkflow;2) send_email 绑定 name=SEND_EMAIL(目标地址为 EMAIL_TO_ADDRESS)。缺少这两个绑定时定时任务与发邮件会报错。 | worker, ai, workflow, 邮件, 监控 | | [Cloudflare Workers Blog](https://github.com/gdtool/cloudflare-workers-blog) | `gdtool-cloudflare-workers-blog` | worker | 运行在 Cloudflare Workers 上的博客程序,使用 KV 作为数据库并缓存 HTML,兼顾静态博客速度与动态博客灵活性。 | worker, 博客, kv | | [Linklet](https://github.com/harrisonwang/linklet) | `linklet` | pages | 基于 Cloudflare Pages 创建的 URL 缩短器,使用 D1 存储,支持 API 模式,适合更多使用场景。 | pages, 短链, d1 | | [Url-Shorten-Worker (horsemail)](https://github.com/horsemail/Url-Shorten-Worker) | `horsemail-url-shorten-worker` | worker | Url-Shorten-Worker 的 fork,基于 Cloudflare Worker + KV 的 URL 缩短器,支持秘密路径访问、自定义短链、变身 Pastebin 与图床。 | 短链, worker, kv | | [Text2img Cloudflare Workers](https://github.com/huarzone/text2img-cloudflare-workers) | `text2img-cloudflare-workers` | worker | 基于 Cloudflare Workers AI 的在线文生图服务,免费部署,调用 @cf/meta/stable-diffusion-xl-base-1.0 等文本生成图像模型,内置响应式 Web UI。前端 index.html 已随 Worker 打包为单文件,一键部署即可使用。 | worker, ai, 文生图, workers-ai | | [Telegram Counter](https://github.com/iamshaynez/telegram-counter) | `telegram-counter` | worker | 使用 Cloudflare Worker + D1 + Workers AI 编写的 Telegram 机器人后端,可在 Telegram 中通过简单命令进行打卡、查询、设置目标与翻译。 | worker, d1, ai, telegram | | [Gins Blog](https://github.com/ichimarugin728/Gins-Blog) | `gins-blog` | worker | 基于 Astro + Cloudflare 技术栈构建的多功能博客平台,内置评论、点赞、音乐播放、AI 对话与向量检索;使用 D1、R2、KV、Workers AI 等多种 Cloudflare 服务。注意:Catalog Schema 当前不支持 Vectorize 绑定,部署后需手动在 Worker 上补加 VECTOR_INDEX 绑定(index_name: gins-vector)才能使 AI 向量检索功能生效。 | 博客, astro, d1, r2, worker-ai, kv | | [CF Image Hosting](https://github.com/ifyour/cf-image-hosting) | `cf-image-hosting` | pages | 基于 Cloudflare Pages 的免费无限图床,使用 Telegraph 存储,支持拖拽与粘贴上传图片/视频/GIF,单文件上限 5MB。基于 Hono + Vite 构建,已预编译为 Pages 部署包。 | pages, 图床, telegraph, hono | | [DeepLX for Cloudflare](https://github.com/ifyour/deeplx-for-cloudflare) | `ifyour-deeplx-for-cloudflare` | worker | 在 Cloudflare Workers 上部署 DeepLX 翻译 API,兼容 DeepL 接口,提供免费无限量翻译能力。 | worker, 翻译, api | | [丁丁快传 (DingDing)](https://github.com/iiop123/dingding) | `dingding` | worker | 基于 Cloudflare Workers 的文件传输工具「丁丁快传」,文件存储在 KV,支持拖拽/多文件上传、定时删除、二维码接收与文件口令传输。前端已打包为静态资源,随 Worker 通过 Worker Assets 一同部署。 | worker, 文件传输, kv | | [Workers Image Hosting](https://github.com/iiop123/workers-image-hosting) | `iiop123-workers-image-hosting` | worker | 基于 Cloudflare Workers 数据存储于 KV 的图床,Material 风格,支持拖拽上传、图片预览与 /list.html 查询已上传照片。默认密码为 123,可通过环境变量 PASS 自定义。 | worker, 图床, kv | | [SubPool Worker](https://github.com/illusionlie/subpool-worker) | `subpool-worker` | worker | 基于 Cloudflare Workers 的轻量订阅池服务,统一管理多组订阅来源、按客户端格式分发,含 Web 管理后台(Worker + KV + Assets)。 | worker, 订阅, kv, assets | | [Edgebin](https://github.com/jiacai2050/edgebin) | `edgebin` | worker | 类似 httpbin 的 HTTP 测试服务,基于 Cloudflare Workers + Assets 边缘部署,支持请求/响应检视、重定向、Cookie、缓存、二维码、Markdown 互转等。 | worker, 工具, http | | [CloudFlare Pages UrlShorten](https://github.com/jiaocz/CloudFlare-Pages-UrlShorten) | `cloudflare-pages-urlshorten` | pages | 基于 Cloudflare Pages Functions 的多功能 URL 短链工具,使用 KV 存储,通过 Pages Functions 实现路由与跳转。 | pages, 短链, kv | | [CF Comment](https://github.com/joyance-professional/cf-comment) | `cf-comment` | worker | 基于 Cloudflare Workers 运行的简单评论系统,支持回复、点赞、举报与管理员后台,提供中英双语切换,使用 D1 存储。 | worker, 评论, d1 | | [CF Files Sharing](https://github.com/joyance-professional/cf-files-sharing) | `cf-files-sharing` | worker | 运行在 Cloudflare Workers 上的简单文件分享工具,支持密码保护,R2 + D1 双存储(大文件自动使用 R2),Cloudflare 全球高速访问。 | worker, 文件分享, r2, d1 | | [Cloudflare Worker Blog](https://github.com/kasuganosoras/cloudflare-worker-blog) | `cloudflare-worker-blog` | worker | 基于 Cloudflare Workers + GitHub 实现的动态博客系统,使用边缘计算,无需服务器,文章存放于 GitHub 仓库。部署后在环境变量 GITHUB_BASE 中填写你自己的 `owner/repo`(其中 posts/ 与 list.json 存放文章)即可。 | worker, 博客 | | [UptimeFlare](https://github.com/lyc8503/UptimeFlare) | `uptimeflare` | hybrid | 基于 Cloudflare Workers + D1 的无服务器宕机监控与状态页,支持多地区探测、100+ 通知渠道、暗色状态页与自定义域名。 | 监控, 状态页, pages, d1, uptime | | [Url Shorten Worker](https://github.com/Monopink/url-shorten-worker) | `url-shorten-worker` | worker | 部署在 Cloudflare Workers 上的短链接服务,支持 KV 存储、管理员/访客分级密码、正则重定向与 PWA,无需服务器。 | 短链, worker, kv | | [ShotOG](https://github.com/nicepkg/shotog) | `shotog` | worker | 基于 Cloudflare Workers + D1 的 Open Graph 图片生成服务,使用 Satori + resvg(WASM)在边缘直接生成精美 OG 图,无需无头浏览器。单次 URL 调用即可生成,支持 API Key 与用量统计。 | og图片, worker, d1 | | [Serverless Cloud Notepad](https://github.com/s0urcelab/serverless-cloud-notepad) | `serverless-cloud-notepad` | worker | 基于 Cloudflare Workers + KV 的无服务器云端记事本,无需后端与数据库,支持自动保存与国际化,可一键私有部署。 | 记事本, worker, kv | | [Micro Notepad](https://github.com/thun888/micro-notepad) | `micro-notepad` | worker | 基于 Cloudflare Workers + KV 的迷你笔记本,是 minimalist-web-notepad 的 Worker 实现,无需服务器,绑定一个 KV 即可使用。 | 记事本, worker, kv | | [Whisper on Cloudflare](https://github.com/thun888/whisper_cloudflare) | `whisper-cloudflare` | worker | 基于 Cloudflare AI (Whisper) 的在线音频转写工具,部署在 Workers 上,可将音频转为文字并生成 SRT 字幕。 | 转录, whisper, worker, ai | | [ChatGPT Telegram Workers](https://github.com/tbxark/chatgpt-telegram-workers) | `chatgpt-telegram-workers` | worker | 部署在 Cloudflare Workers 上的 Telegram ChatGPT 机器人,单文件无依赖,支持多 AI 服务商与多平台,可自定义模型与预设。 | telegram, 机器人, worker, ai, kv | | [PixR2](https://github.com/WangQueXL/PixR2) | `pixr2` | worker | 基于 Cloudflare Workers + R2 的多入口图床与图片管理平台,支持网页端与 Telegram Bot 上传、在线预览与分享链接管理。 | 图床, worker, r2, kv | | [Page API Forwarder](https://github.com/xinjianzhanghao/page-api-forwarder) | `page-api-forwarder` | worker | 部署在 Cloudflare Pages/Workers 上的 API 请求转发脚本,可绕过部分 API 的 IP 限制,支持协议覆盖与简单鉴权头/参数。 | 转发, 代理, worker | | [Web Analytics (yestool)](https://github.com/yestool/analytics_with_cloudflare) | `analytics-with-cloudflare` | worker | 基于 Cloudflare Workers + Hono + D1 的网站访问统计分析服务,支持 D1 存储访问数据,可私有化部署。 | 分析, 统计, worker, d1 | | [EdgeEver](https://github.com/tianma-if/edgeever) | `edgeever` | worker | 基于 Cloudflare Workers + D1 + R2 的开源自托管笔记工作区,保留经典三栏体验,原生支持 MCP AI Agent 接入,零服务器零费用。 | 笔记, AI, MCP, worker, d1, r2 | | [WikiShare](https://github.com/qbmiller/wikiShare) | `wiki-share` | worker | 基于 Cloudflare Workers + D1 + R2 的自托管 Wiki 知识库与文件共享平台,支持页面/文件夹树、分享链接(带密码/有效期/访问次数限制)、回收站定时清理与 Vue SPA 前端。 | wiki, 知识库, 文件共享, worker, d1, r2 | | [Short (igengdu)](https://github.com/igengdu/short) | `short` | worker | 基于 Cloudflare Workers + D1 的 URL 缩短器,Fork 自 x-dr/short。支持自定义短链、访问日志记录与可选 BasicAuth 管理面板,前端使用 Alpine.js,随 Worker Assets 一同部署。 | 短链, worker, d1 | | Siri Ultra | `siri-ultra` | worker | 基于 Cloudflare Workers 的 ChatGPT 风格 AI 聊天助手,支持多模型、流式回复与对话历史记忆。 | | | [GitHub 代理加速](https://github.com/crazypeace/gh-proxy) | `gh-proxy` | worker | 解决 GitHub 资源访问问题,支持 releases、archive、文件下载、clone、api.github.com、git.io、gitlab.com 等多种访问方式的代理服务,支持 GitHub 脚本无限嵌套调用。 | 代理, 加速, github, worker | | [Url Shorten Worker (crazypeace)](https://github.com/crazypeace/Url-Shorten-Worker) | `url-shorten-worker-cf` | worker | 部署在 Cloudflare Workers 上的短链接服务,使用 KV 存储,支持自定义短链、访问统计、SPA/PWA 前台与多套主题。静态资源随 Worker Assets 本地托管,不依赖外部 GitHub Pages。 | 短链, worker, kv, assets | | [Status Page](https://github.com/eidam/cf-workers-status-page) | `cf-workers-status-page` | worker | 基于 Cloudflare Workers + KV + CRON Triggers 的网站状态监控页面,使用 Flareact(React SSR)在边缘渲染,展示服务可用性与响应时间历史直方图,支持 Slack/Discord/Telegram 通知。每分钟自动检查配置的监控目标。注意:监控目标列表在源码 config.yaml 中配置,自定义需 fork 修改后重新构建。 | 监控, status-page, kv, cron, react | | [Webhook Debugger](https://github.com/brancogao/webhook-debugger) | `webhook-debugger` | worker | 基于 Cloudflare Workers + D1 + Assets 的 Webhook 调试与捕获工具:实时接收任意 Webhook 请求,在仪表盘检视请求头、正文与查询参数,支持标签/备注管理与 GitHub 登录,前端随 Worker Assets 一同部署,并通过 CRON 每日自动清理过期数据。 | worker, webhook, 调试, d1, assets | | [Redirect Checker](https://github.com/brancogao/redirect-checker) | `redirect-checker` | worker | HTTP redirect chain analyzer for developers — trace 301/302/307/308 redirects, detect loops, measure performance. API-first design with RESTful JSON API, multiple User-Agent presets (Googlebot, Bingbot, Mobile, curl), and a web UI rendered inline by the Worker. | worker, redirect, http, seo, developer-tools, api | | [IP API](https://github.com/ccbikai/ip-api) | `ip-api` | worker | 获取访客 IP 地址和地理位置信息的 API 服务。支持根路径返回纯 IP,/geo 路径返回地理位置(国家、城市、AS 信息等),带 CORS 支持,适合前端直接调用。 | worker, ip, geo, location, api | | [SSL Certificate Monitor](https://github.com/brancogao/ssl-certificate-monitor) | `ssl-certificate-monitor` | worker | Monitor SSL certificates and get alerts before they expire. Features include checking SSL certificate expiry dates, viewing certificate details (issuer, algorithm, SANs), RESTful API for programmatic access, and a web UI for manual checks. No signup required. | ssl, certificate, monitor, tls, expiry, api, worker | | [Alle 多邮箱聚合](https://github.com/bestruirui/Alle) | `alle` | worker | AI 驱动的个人邮件聚合与管理平台,基于 Cloudflare Workers 构建。通过邮件转发规则聚合 Gmail、Outlook、QQ 等多账户邮件(无需密码),AI 自动提取验证码、分类邮件链接(验证/通知/退订),支持无限临时邮箱地址创建,使用 D1 + R2 存储邮件数据与附件。注意:Worker 内置 email 邮件路由处理器,需在 Cloudflare 控制台手动配置 Email Routing 后才会生效。 | 邮箱, AI, worker, d1, r2, 临时邮箱 | | [Octafuse Gateway - Proxy](https://github.com/OctaFuse/octafuse-gateway) | `octafuse-gateway-proxy` | worker | 可自托管的开源 AI 网关代理服务:将多供应商、多账号的 AI 模型、图像生成与 Agent Tools 整合为统一 OpenAI 兼容 API 入口,支持路由、负载均衡、故障转移、密钥管理、预算控制和用量审计。 | AI, 网关, worker, d1, openai, 代理 | | [Octafuse Gateway - Admin](https://github.com/OctaFuse/octafuse-gateway) | `octafuse-gateway-admin` | worker | Octafuse AI 网关的管理控制台,用于集中管理 API 密钥、供应商、模型、路由、用户、预算和审计日志。基于 Next.js 16 + OpenNext 构建在 Cloudflare Workers 上,与 Proxy 共享同一 D1 数据库。部署后默认账号 admin,首次登录需设置 ADMIN_PASSWORD。 | AI, 网关, 管理, admin, worker, d1, nextjs | ## 目录结构 ``` cf-store/ ├── catalog.json # 模板清单(Store 入口,唯一必须文件) ├── catalog.schema.json # catalog.json 的校验 Schema(统一真实来源) ├── scripts/ │ └── build-surge.mjs # 生成 surge.sh 备用源(改写 URL + 复制 templates/) ├── .github/workflows/ │ └── deploy-surge.yml # push 到 main 自动部署到 cf-store.surge.sh ├── templates/ # 各模板源码 / 资源,按 id 分目录 │ ├── hello-world/worker.js │ ├── echo-server/worker.js │ ├── kv-demo/worker.js │ ├── d1-demo/worker.js │ ├── ai-demo/worker.js │ └── hybrid-demo/ # worker.js + pages.zip(hybrid 双模) └── .gitignore # 忽略 surge-dist/(生成产物) ``` ## catalog.json 与 Schema `catalog.json` 的结构由 [`catalog.schema.json`](./catalog.schema.json) 严格校验,后端(backend)与 Worker 共用同一份 Schema。新增 / 修改模板前建议先对照 Schema。 顶层字段: | 字段 | 必填 | 说明 | |------|------|------| | `version` | ✅ | 语义化版本号,如 `1.0.0` | | `templates` | ✅ | 模板数组 | | `updated` | — | ISO 时间字符串(改了模板后更新,便于缓存失效) | | `name` / `defaultLanguage` | — | 源名称 / 默认语言 | 每个模板(`templates[]`)的必填字段:`id`、`name`、`version`、`type`。 ```jsonc { "id": "hello-world", // 全局唯一去重,正则 ^[a-z0-9-]+$ "name": "Hello World", "description": "模板描述", "author": { "name": "CF Manager" }, // name 必填,可加 url "version": "1.0.0", // 语义化版本 "tags": ["入门", "worker"], "type": "worker", // worker | pages | hybrid "source": { // type=worker/pages 用 source "kind": "raw", // raw | release | repo-archive "url": "https://raw.githubusercontent.com/hefy2027/cf-store/main/templates/hello-world/worker.js" }, // type=hybrid 用 sources(worker/pages 至少其一,不能用 source): // "sources": { // "worker": { "kind": "raw", "url": ".../hybrid-demo/worker.js" }, // "pages": { "kind": "release", "url": ".../hybrid-demo/pages.zip" } // }, "bindings": [ // 可选:部署时需要的绑定 { "type": "kv", "name": "MY_KV", "title": "demo-kv", "action": "create-or-reuse" } ] } ``` ### type 与 source 的约束(来自 Schema) | `type` | 字段 | `kind` 允许值 | |--------|------|--------------| | `worker` | `source` | `raw` / `release`(**不能用** `repo-archive`) | | `pages` | `source` | `release` / `repo-archive`(**不能用** `raw`,Pages 需 zip) | | `hybrid` | `sources.worker` | `raw` / `release`(不能用 `repo-archive`) | | `hybrid` | `sources.pages` | `release` / `repo-archive`(不能用 `raw`) | ### bindings 说明 - `type`:`kv` / `d1` / `r2` / `ai` / `var` - `name`:**必须全大写**,正则 `^[A-Z][A-Z0-9_]*$`(如 `MY_KV`) - `action`:`create-or-reuse`(默认)或 `prompt`(部署时询问用户) - `d1` 专属:`initSql`(内联 SQL)或 `initSqlUrl`(SQL 文件地址),仅 `d1` 可用 - 其余字段:`title`、`required` ### URL 规则 - 所有 `url` 必须为 `https://` 开头(Schema 强制 `^https://`)。 - **不要求必须指向本仓库。** 你可以引用任意可公开访问的 HTTPS 地址——包括本仓库 `templates/` 下的文件,也包括第三方开源项目(如 `github.com/cmliu/edgetunnel` 的 raw 文件或 release/archive 包)。 - 本仓库自带的模板统一放在 `templates/` 下: `https://raw.githubusercontent.com/hefy2027/cf-store/main/templates//<文件>` - 第三方项目示例(hybrid,worker+pages 双模): - worker:`https://raw.githubusercontent.com/cmliu/edgetunnel/main/_worker.js` - pages:`https://github.com/cmliu/edgetunnel/archive/refs/heads/main.zip` > 注意:引用外部源时,surge.sh 备用镜像**不会**自动镜像这些外部文件(备用源只改写本仓库 `main/` 前缀的 URL)。如需备用源也包含它们,请把对应文件下载进本仓库 `templates/` 后再引用。 ## 如何新增模板 1. 在 `templates/` 下新建目录 `templates//`,把源码放进去(如 `templates/my-tpl/worker.js`)。 2. 在 `catalog.json` 的 `templates` 数组里加一条,填好 `id` / `name` / `version` / `type` 以及对应 `source` / `sources`(`url` 指向第 1 步的文件)。 3. 更新 `catalog.json` 的 `updated` 字段(便于缓存失效)。 4. 可选:用任意 JSON Schema 工具对照 `catalog.schema.json` 自检。 5. 提交并推送到 `main`;在 CF Manager 的 Store 页面点「刷新」即可看到新模板。 ## CF Manager 如何消费 Store 页面默认拉取的源地址(前端、后端 Worker 一致): ``` https://cf-store.surge.sh/catalog.json ``` 前端打开 Store 页会自动调用 `/store/init` 并同步上述默认源地址,无需手动配置。消费该 `catalog.json` 的代码位于 CF Manager 主仓库(后端 `backend/src/routes/store.ts`、Worker `worker/src/routes/store.ts`)。 ## 备用源:GitHub 原始源 当 surge.sh 镜像不可用时,可改用 GitHub 原始源(内容与 surge 镜像一致,但内部 URL 指向本仓库 `main/`): ``` https://raw.githubusercontent.com/hefy2027/cf-store/main/catalog.json ``` 在 CF Manager 的 Store 页面把源地址改成上面的地址即可。 ### 触发与维护 - 每次 push 到 `main`,GitHub Actions(`.github/workflows/deploy-surge.yml`)自动运行 `scripts/build-surge.mjs` 重新生成 `surge-dist/`,再 `npx surge publish surge-dist --domain cf-store.surge.sh --token $SURGE_TOKEN` 部署。 - `surge-dist/` 是生成产物,已被 `.gitignore` 忽略,无需手动提交。 - 需要的仓库 Secrets: - `SURGE_TOKEN`:surge 登录后 `surge token` 获取(与 cf-reg 同账号即可复用) - 本地预览:`node scripts/build-surge.mjs && npx surge publish surge-dist --domain cf-store.surge.sh --token <你的token>` ## 致谢 本项目的灵感与模板整理参考了 [zhuima/awesome-cloudflare](https://github.com/zhuima/awesome-cloudflare),在此表示感谢。