V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Zephyrrr2333
V2EX  ›  分享创造

分享一个基于纯 Cloudflare 生态的开源全栈博客 CMS

  •  
  •   Zephyrrr2333 · 5 天前 · 1002 次点击

    大家好,近期开源了一个专为 Cloudflare 生态设计的个人博客系统:Flare Stack Blog 。

    这个项目最大的特点是完全抛弃了传统 VPS 。你不需要购买和维护任何服务器,只要在 Cloudflare 上托管一个域名,利用其免费额度即可实现完整的边缘节点全栈部署,零运行成本(仅需支付域名费)。

    这套系统深度集成了 CF Serverless 服务,非常适合想极低成本建站,或者想完整实践 Cloudflare 全家桶开发工作流的开发者。

    界面预览

    首页效果: 首页

    多主题切换( Fuwari 主题示例): 主题预览

    管理后台: 管理后台

    项目地址

    核心功能

    • 主题系统:内置 default 和 fuwari 两套主题
    • 富文本编辑器基于 TipTap 3 并集成 Shiki 代码高亮,支持标签、AI 摘要生成,图片可直接粘贴上传至 R2
    • 定时发布(基于 Cloudflare Workflows 实现异步调度)
    • 嵌套评论系统及防垃圾 AI 审核机制
    • 友链功能做到了前台申请、后台审核的完整闭环
    • 接入异步邮件通知
    • 全文搜索(边缘端 Orama )
    • 导入/导出功能( v0.8.0 新增,ZIP 格式备份与恢复)
    • 自动检测 GitHub 最新版本并提示
    • 后台集成 Umami 统计
    • Turnstile 人机验证
    • 接口分布式限流

    技术与功能细节

    整个项目跑在 Cloudflare Workers 上,把 CF Serverless 服务基本用了个遍:D1 ( SQLite 主库)、R2 (媒体存储)、KV (缓存层)、Durable Objects (分布式限流 + 密码哈希重度计算)、Queues (邮件发送异步队列)、Workflows (评论审核、定时发布、导入导出等异步任务)、Workers AI ( AI 功能)。

    前后端同构,前端 React 19 + TailwindCSS 4 ,路由和数据管理用 TanStack Router/Query ,后端 SSR 和 Server Functions 由 TanStack Start 承接。最外层网关是 Hono ,处理路由拦截、CDN 缓存控制和鉴权( Better Auth 实现 GitHub OAuth )。ORM 选了 Drizzle 配合 drizzle-zod ,端到端类型安全。

    功能层面,多层缓存( CDN → KV → D1 )、边缘端 Orama 全文搜索、R2 图片直传都已实现。主题系统基于 TypeScript 接口定义"主题契约",业务层与表现层彻底解耦,换主题不需要动任何接口和数据层代码,支持脚手架快速创建新主题

    3 条回复    2026-02-23 20:31:56 +08:00
    hbtech
        1
    hbtech  
       5 天前 via Android
    不错啊

    Queues 我记得是付费功能吧,应该是可以选择不配置的?

    另外,移动端上浏览,文章页的代码块、表格等太长时无法横向滚动
    Zephyrrr2333
        2
    Zephyrrr2333  
    OP
       5 天前 via Android
    @hbtech 队列已经免费了,另外感谢反馈(🙏ˊᗜˋ*)
    hbtech
        3
    hbtech  
       4 天前 via Android
    @Zephyrrr2333 居然免了嘛,cf 大善人
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5527 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 08:50 · PVG 16:50 · LAX 00:50 · JFK 03:50
    ♥ Do have faith in what you're doing.