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

2024-06-06 19:54:09 +08:00
 Xeu

项目地址

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

5096 次点击
所在节点    分享创造
20 条回复
huhexian
2024-06-06 20:10:37 +08:00
好东西!
已发: https://t.me/FindBlog/466
Rrrrrr
2024-06-06 20:23:18 +08:00
终于有人下手了,支持
echoless
2024-06-06 21:52:46 +08:00
赞!

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1047473

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX