logo NodeSeekbeta

Monolith — 一套跑在 Cloudflare 免费套餐上的高质感博客系统

  • @PassionAries #101 你部署有遇到问题吗,有好几个人跟我反馈过部署完用不了密码

  • 很简洁明了的主题,点赞

  • 感谢分享

  • xhj003 这就去试一下!

  • @Glaring #0 发布于131days ago

    [开源] Monolith — 一套跑在 Cloudflare 免费套餐上的高质感博客系统

    TL;DR

    纯 Cloudflare 全家桶(Workers + Pages + D1 + R2),零服务器成本运行一个带后台管理的完整博客,全球 CDN 加速,延迟 < 50ms。

    在线预览:https://monolith-client.pages.dev
    GitHub 仓库:https://github.com/one-ea/Monolith
    协议:MIT


    🤔 为什么又造了一个博客?

    市面上的博客方案要么需要 VPS(Typecho、WordPress),要么只能生成静态页(Hexo、Hugo)没有后台管理,要么太重了(Notion API + Next.js)。

    我就想要一个:

    • ❌ 不需要服务器 — 不想维护 VPS
    • ✅ 有完整后台 — 在线写文章、传图片、管评论
    • ✅ 跑在免费套餐上 — Cloudflare 的免费额度完全够个人博客
    • ✅ 好看 — 不是那种一眼就能看出是模板站的东西

    所以就有了 Monolith。


    ✨ 有什么?

    前台

    • 💎 深色主题 + 玻璃拟态,不是随便套了个 CSS 框架的感觉
    • 📝 Markdown 渲染(代码高亮 + 一键复制 + 目录 TOC + 阅读进度条)
    • 🔍 全站搜索(Ctrl+K / ⌘K 弹窗式搜索)
    • 📊 14 天访问趋势折线图(纯 SVG,零依赖)
    • 💬 评论系统(Honeypot 反垃圾 + 人工审核)
    • 📰 RSS 2.0 订阅 + sitemap.xml + robots.txt
    • 📱 完全响应式,手机端体验也不错

    后台

    • 📊 仪表盘(文章统计 / 浏览量 / 热门排行)
    • ✏️ Markdown 编辑器 + 实时预览
    • 🖼️ 媒体库(图片上传到 R2,一键复制链接)
    • ⚙️ 站点设置(名称 / 描述 / 社交链接)
    • 💾 数据备份(JSON 导出 / R2 云端备份 / WebDAV 同步 / 备份恢复)
    • 📄 独立页管理(关于页、自定义页面等)
    • 💬 评论管理(审核 / 删除)

    技术向

    • 前端:Vite + React 19 + TypeScript(SPA,构建产物 ~187KB gzip)
    • 后端:Hono + Cloudflare Workers(边缘计算,无冷启动)
    • 数据库:默认 Cloudflare D1(还支持 Turso / PostgreSQL,环境变量一切)
    • 存储:默认 Cloudflare R2(还支持 AWS S3 / B2 / 阿里 OSS / 腾讯 COS)
    • 代理:前端内置 Pages Functions 反向代理,零跨域问题

    💰 成本?

    资源 免费额度 个人博客实际用量
    Workers 请求 10 万次/天 远远用不完
    D1 数据库 5GB 存储 + 500 万行读/天 几百篇文章才几 MB
    R2 存储 10GB + 100 万 Class B 操作/月 存图片绰绰有余
    Pages 500 次构建/月 + 无限带宽 完全够

    结论:个人使用 100% 免费。


    🚀 部署有多快?

    # 1. 克隆
    git clone https://github.com/one-ea/Monolith.git && cd Monolith
    
    # 2. 装依赖
    cd client && npm install && cd ../server && npm install
    
    # 3. 创建 D1 数据库 + R2 Bucket
    npx wrangler d1 create monolith-db
    npx wrangler r2 bucket create monolith-assets
    
    # 4. 设密钥(交互式输入)
    cd server
    npx wrangler secret put ADMIN_PASSWORD
    npx wrangler secret put JWT_SECRET
    
    # 5. 部署后端
    npx wrangler d1 migrations apply monolith-db --remote
    npx wrangler deploy
    
    # 6. 部署前端
    cd ../client && npm run build
    npx wrangler pages deploy dist --project-name monolith-client --branch=master
    
    # 完成!打开 https://monolith-client.pages.dev
    

    从 clone 到上线,大概 5 分钟。


    🔌 可扩展性

    不想用 Cloudflare? 存储层是适配器模式,环境变量切一下就行:

    # wrangler.toml
    [vars]
    DB_PROVIDER = "turso"      # 或 "postgres"
    STORAGE_PROVIDER = "s3"    # 或 保持 "r2"
    
    数据库 对象存储
    Cloudflare D1(默认) Cloudflare R2(默认)
    Turso(LibSQL) AWS S3
    PostgreSQL Backblaze B2
    — 阿里云 OSS
    — 腾讯云 COS

    📚 文档

    Wiki 写得比较详细:https://github.com/one-ea/Monolith/wiki


    🤝 最后

    项目还在持续迭代中,有问题欢迎开 Issue 或在下面回帖讨论。

    如果觉得还不错的话,给个 ⭐ Star 就是最大的支持了~

    GitHub:https://github.com/one-ea/Monolith


    技术栈:Vite 6 + React 19 + Hono 4 + Cloudflare Workers/Pages/D1/R2 + TypeScript + Drizzle ORM

    质感确实不错

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有72280位seeker

🎉欢迎新用户🎉