基于 Cloudflare Pages + Workers 博客项目

2024-06-16T18:05:07

项目地址

https://github.com/OXeu/Rin

简介

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

截图

演示地址

https://xeu.life/
https://www.oqqr.cn

特性

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

优势

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

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

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

项目起因

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

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

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

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

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

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »