Skip to content

FlorenceZh/DiaryAPP

Repository files navigation

这是一个多端同步的私密日记应用,仅使用静态页面便可部署。部署好的页面在https://florencezh.github.io/DiaryAPP/

原理/架构

正常来讲,日记应用是至少需要一个数据库的。这个数据库可以直接存在游览器的本地储存中,但这样不能确保多端同步而且非常易失

因此,必须引入一个可靠的云端数据库来满足多端同步和可靠性的需求。如果采用云服务器获着云数据库,自然是最好的选择,不过除非有闲置主机,否则成本相对较高,也会产生资源的浪费。(毕竟日记是给自己看的,一般QPS不大)

为解决这个问题,我采用了 zhangyu1818/blog#54 的思路,采用github issue作为数据库,储存库则作为图床,基本可以满足日常需求。

也正因如此,这个APP的架构是 前端静态页面+github储存库做数据库 。请注意,不要随意删除对应的github储存库,这会导致所有数据不可逆的丢失。

使用方法

为确保日记图片和文章的私密性,你需要创建一个私密的Github储存库,并申请你账号的APIKEY。这个key需要对你之前创建的储存库有文件读写权限,issues读写权限

然后,你可以访问 https://florencezh.github.io/DiaryAPP/ 并填入你的APIKEY,账号名,之前创建的储存库名称。
请放心,你的key只会储存在游览器的本地储存中

自己部署

如果你想的话,也可以自己部署到服务器中,但是你需要更改 vite.config.ts 以适配页面跟路径。

贡献方法

因为本人不了解vite的缘故,这个应用使用Gemini生成,因此在性能上(内存和网络带宽占用都有)较差。

但是在文章数少的时候基本不影响日常使用。如果你了解vite框架,可以考虑帮忙优化一下。

一些技术细节

删除文章不会真的完全删除,而是把对应的issue close掉。文章列表只显示open的issue。

由于私有储存库的限制,所有图片,音频请求都会由框架接管并通过api拉取,不会直接使用image标签。 由于ai在这方面的代码质量较差,这可能是目前性能较差的主要原因。

About

一个日记应用,由Vite开发,后端/数据库使用GitHub api借助issue和储存库文件实现。

Resources

Stars

Watchers

Forks

Contributors