V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
SSH AI Chat
通过 SSH 和 AI 机器人聊天。
Promoted by ccbikai
Xeu
V2EX  ›  分享创造

开源一个不需要服务器和备案的基于 Cloudflare Pages + Workers + D1 + R2 全家桶的博客项目

  •  4
     
  •   Xeu ·
    OXeu · 2024-06-06 19:54:09 +08:00 · 4922 次点击
    这是一个创建于 400 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目地址

    https://github.com/OXeu/Rin

    简介

    Rin 是一个基于 Cloudflare Pages + Workers + D1 + R2 的博客项目,无需服务器无需备案,只需要一个解析到 Cloudflare 的域名即可部署

    截图

    首页

    写作

    演示地址

    xeu.life

    特性

    1. 使用 Github OAuth 登录
    2. 支持文章的写作与编辑
    3. 支持本地实时保存对任意文章的修改/编辑且多篇文章互不干扰
    4. 支持设置为仅自己可见,可以充当云端同步的草稿箱或者记录隐私性较强的内容
    5. 支持拖拽/粘贴上传图片到支持 S3 协议的存储桶并生成链接
    6. 支持设置文章别名,可通过形如 https://xeu.life/about 链接访问文章
    7. 支持文章不列出在首页列表中
    8. 支持添加友链,同时后端每间隔 20 分钟定期检查更新友链可访问状态
    9. 支持回复评论文章/删除评论
    10. 支持通过 Webhook 发送评论通知
    11. 支持自动识别文章中的第一张图片并作为头图展示在文章列表中
    12. 支持输入形如"#博客 #部署 #Cloudflare"之类的标签文本并自动解析为标签
    13. 支持夜间模式切换与跟随系统

    优势

    相较于静态站点生成器而言:有后端,可以在线写/改文章

    相较于 WordPress 等带后台的项目而言:全端托管在 Cloudflare 上,不需要自己提供服务器、域名不需要备案

    同时支持 S3 协议的对象存储作为图床(可配合 Cloudflare R2 使用,不需要支付流量费用)

    项目起因

    项目起因是由于自已之前的博客用的是静态站点生成器那一套东西

    好处就是不需要服务器,随便找个静态站点托管就能搞定

    坏处也很明显,就是由于自己频繁的杀系统,一些不重要的/云端有的数据我都不会保存,以至于绝大部分时间我的本地其实根本没有博客的仓库 ,要写新博客的话还要克隆下来,安装环境 ,久而久之懒得折腾博客就基本不更新了

    因此后面才打算自己搓一个博客出来,项目最开始也是中规中矩的一个普通的带前后端的全栈项目,后端托管在自己的服务器上,后面发现自己用的后端框架可以迁移到 Cloudflare Workers 上面,于是花了几天时间把后端代码基本全部翻新了一遍,再之后就是索性全扔 Cloudflare 上面了,使用 D1 替代之前的 sqlite ,R2 替代 S3 用来存储图片。

    好处就是 Cloudflare 提供的免费资源完全足够托管个人博客,不需要掏一分钱;坏处就是国内访问可能比较慢,目前的解决方案是针对前端国内再接一个 CDN ,将国内的流量全部重定向到国内的 CDN 上,能够一定程度改善访问速度。同时国内的 CDN 做区域白名单只允许大陆访问,减少被打爆的风险。

    20 条回复    2024-09-21 14:46:23 +08:00
    huhexian
        1
    huhexian  
       2024-06-06 20:10:37 +08:00
    好东西!
    已发: https://t.me/FindBlog/466
    Rrrrrr
        2
    Rrrrrr  
       2024-06-06 20:23:18 +08:00
    终于有人下手了,支持
    echoless
        3
    echoless  
       2024-06-06 21:52:46 +08:00
    赞!

    设置用户名密码登录会简单一点
    abersheeran
        4
    abersheeran  
       2024-06-06 22:23:37 +08:00
    之前就想做一个,一直没动手。你的页面做的很好看。
    Xeu
        5
    Xeu  
    OP
       2024-06-06 22:24:03 +08:00
    @echoless 欢迎提交 PR😋
    Xeu
        6
    Xeu  
    OP
       2024-06-06 22:24:55 +08:00
    @abersheeran 谢谢~
    winson030
        7
    winson030  
       2024-06-06 23:44:26 +08:00 via iPhone
    谢谢你的项目!
    lekai63
        8
    lekai63  
       2024-06-07 00:43:00 +08:00 via iPhone
    诶呀 这个好。
    Chentao1006
        9
    Chentao1006  
       2024-06-07 01:04:03 +08:00 via iPhone
    想问问有导入功能吗?从 Wordpress 迁移过来方便吗
    TGl1aHAubmV0
        10
    TGl1aHAubmV0  
       2024-06-07 03:31:05 +08:00
    赞一个👍
    Xeu
        11
    Xeu  
    OP
       2024-06-07 06:17:45 +08:00
    @Chentao1006 目前还没有做,不过支持导入理论上不难,可以先提个 issue 发一下需要导入的数据格式
    linyongxin
        12
    linyongxin  
       2024-06-07 08:15:48 +08:00
    非常好的思路,对于更新低频无交互的网站,放在 cf pages 上很方便
    xsen
        13
    xsen  
       2024-06-07 08:40:12 +08:00
    赞一个
    mrgirff
        14
    mrgirff  
       2024-06-07 09:33:28 +08:00
    很多错。
    doracoinC
        15
    doracoinC  
       2024-06-07 10:54:33 +08:00
    页面加载、响应速度都很快,很不错
    iphantom
        16
    iphantom  
       2024-06-07 11:42:49 +08:00
    支持支持 感谢
    princeofwales
        17
    princeofwales  
       2024-06-07 23:50:11 +08:00
    在 Github Action 中手动触发 Workflow 会失败

    Bun v1.1.12 (Linux x64 baseline)
    Error: Process completed with exit code 1.
    Xeu
        18
    Xeu  
    OP
       2024-06-08 01:02:08 +08:00
    @princeofwales 方便在 Github 上提个 issue 吗?这样会更加方便排查问题
    lizhenda
        19
    lizhenda  
       2024-06-10 22:46:09 +08:00
    思路很好啊,支持
    linyongxin
        20
    linyongxin  
       293 天前
    太好了 可以部署一个永不下线的网站
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2467 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 14:47 · PVG 22:47 · LAX 07:47 · JFK 10:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.