我是如何打造自己的文档系统的

RaHsu

一个轻文档系统的方案,有云服务器的朋友可以参考。

我的需求

我对于自己文档系统的需求:

  1. 轻文档
    也就是说,我的文档基本上只有文字内容,主要的文件格式也是markdown,不需要非常强的思维链接系统等,这就把obsidian,notion等all in one的文档系统排除在外了,这些文档系统拥有的功能太多太重,上手门槛也比较高,对于一个经常差生文具多的人,我不想把我的时间花在纠结使用什么样格式的文档和工具上面,所以这些大而全的系统我就放弃了。
  2. 支持所有设备
    我希望我的文档系统在任何设备上都可以访问,且进度在所有设备之间实时同步,因为我的设备平台很多,win,mac,安卓,ios都有,但是有很多笔记或者文档软件仅支持其中几个平台(比如一些ios系统的专属软件),并且都需要下载对应平台的软件,好不容易找到支持全平台的笔记系统,月订阅费都偏贵,基本上一个月都要50元以上了,实在是有点划不来。
  3. 数据由我自己掌控
    还有一点我很介意的是数据问题,使用别家提供的文档软件和服务,产生的数据是保存在服务商的数据库中的,当我自己想要做归档或者换了软件想要做迁移时,不同软件的文件格式不一,数据导出可能就会成为问题,万一这个服务商不靠谱停止运营了怎么办?我想要排除任何数据丢失的风险,把数据放在自己手上并时时备份才能让我感到安心。

所以我辗转了很久都没有找到一个令我满意的文档系统。而且我也不想每个月花很多钱来专门维持一个文档系统,我突然想到我有一个云服务器,运行着我的网站,那我为什么不物尽其用呢?反正这个云服务器我也是需要给月费的,一份月费做两件事情,何乐而不为?

所以,我为自己定制了一套自己的文档系统,而且成本很低,部署起来也很简单

部署文档系统

该文档系统依赖到的技术栈很少,就只有git和code-server这俩。

首先在github上新建一个项目作为你的文档数据库,这里使用github主要是作为一个数据的中转站,也是一份数据备份,而且现在github的私有项目也是免费的了,也不用担心你的数据暴露给其他人(当然你想公开给其他人看也是可以的)。

建好之后在你的服务器上选择一个目录,将github上面的项目clone下来建立连接,这里将作为你的文档根目录。

然后安装code-server

1
curl -fsSL https://code-server.dev/install.sh | sh

安装完成后,运行 code-server 即可,注意需要先到code-server 的配置文件中设置密码,毕竟你也不想你的文档系统被任何人访问吧

1
code-server --port 8080 --host 0.0.0.0 2>&1 &

运行完成后,你就可以通过任何一个浏览器,通过你的服务器的 ip 和端口号来访问你的文档系统了。

数据备份

你还可以通过脚本来自动备份数据,比如定时推送文档到 github,避免万一服务器出现问题数据丢失。

我设置的是每 15 分钟服务器会自动向 github推送文档,通过系统自带的crontab脚步来执行定时任务即可:

1
2
3
4
# 编辑 crontab 文件
crontab -e
# 每隔15分钟进行推送
*/15 * * * * cd ~/doc && git add . && git commit -m 'update' && git push

在我的 nas 和我常用的工作电脑上我都用同样的方法设置了自动拉取,这样意味着我的数据将有四份备份

  • 在我的云服务器上
  • 在我的 github 中
  • 在我的 nas 中
  • 在我的工作电脑中
    有了这四份备份,基本也就杜绝了数据丢失的风险了,这四个地方不可能同时出问题吧。

优点

  1. 多设备同步
    我所有的设备都可以访问的我的文档系统,就算不是我的设备,任何一个有网络和浏览器的设备也都可以访问我的文档系统,并且进度在各个设备之间无缝同步。
  2. 数据安全
    我的数据掌握在我自己手里且有多份备份,再也不用担心数据丢失问题了。
  3. 扩展性
    这个 code-server 的用途很广,也可以作为你的云开发环境来使用。

缺点

  1. 刚好需要你有一台自用云服务器
  2. 不支持很多高级功能,比如文档间的链接啊,思维导图等等,如果你有这些高级功能的需求,这个方案也不适合你。
  • Title: 我是如何打造自己的文档系统的
  • Author: RaHsu
  • Created at : 2024-09-17 18:23:29
  • Updated at : 2024-09-21 18:23:32
  • Link: https://www.rahsu.com/Tech/我是如何打造自己的文档系统的/
  • License: All Rights Reserved © RaHsu
On this page
我是如何打造自己的文档系统的