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

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

  •  3
     
  •   Xeu ·
    OXeu · 12 天前 · 2079 次点击

    项目地址

    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 做区域白名单只允许大陆访问,减少被打爆的风险。

    19 条回复    2024-06-10 22:46:09 +08:00
    huhexian
        1
    huhexian  
       12 天前
    好东西!
    已发: https://t.me/FindBlog/466
    Rrrrrr
        2
    Rrrrrr  
       12 天前
    终于有人下手了,支持
    echoless
        3
    echoless  
       11 天前
    赞!

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

    Bun v1.1.12 (Linux x64 baseline)
    Error: Process completed with exit code 1.
    Xeu
        18
    Xeu  
    OP
       10 天前
    @princeofwales 方便在 Github 上提个 issue 吗?这样会更加方便排查问题
    lizhenda
        19
    lizhenda  
       7 天前
    思路很好啊,支持
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2909 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:52 · PVG 20:52 · LAX 05:52 · JFK 08:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.