免费笔记同步方案讨论

本贴最后更新于 330 天前,其中的信息可能已经事过境迁

昨天无意间发现 SiYuan 的早鸟计划下个月就要结束了,对于还没上车的我来说是有一点紧张的,出于对笔记同步的需要我打算先研究一下免费的笔记同步方案,实在想不通再支持早鸟。

今天时间看了一下源码,go 编写的没太看明白但是我感觉应该是有一个 cloud 包这个包用来提供 SiYuan 的笔记云同步服务,所以自己在开源的基础上开发同步服务成本会一些第一个就给 pass 了;

我大概想出了这几个同步方案,大家可以一起讨论分析:

git 同步方案

定时任务扫描 data 工作区间,同步到远程仓库,但是这个只能作为笔记的备份以及回溯,做同步有点难,之前用过一段时间,脚本命令放在下面啦

同步 shell

#!/bin/bash
current_time=$(date +"%Y-%m-%d %H:%M:%S")
cd /Users/xxx/MyNote
git add .
git commit -m "$current_time Sync"
git push

git ignore 文件

/backup
/conf
#/history
/sync
/temp
/corrupted
.DS_Store
/data/storage/recent-doc.json
/data/storage/local.json
/data/.siyuan/**
.lock
.idea
/data/public/**
/data/emojis/**
/data/plugins/**
/data/widgets/**
# /data/assets/**

Docker 远程启动

docker 部署的话其实是让 SiYuan 跑在 linux 这样如果有服务器的小伙伴就可以直接在任何有互联网的地方使用自己的笔记,而且也不会存在笔记的冲突,但是最重要的是得有服务器呀,购买服务器的成本会更高一些。

所以我想到了是否可以通过自己的 pc 机的 docker 部署 SiYuan 之后通过内网穿透映射把端口到公网,这样就实现了一个简单的服务器,目前还没研究内网穿透,感兴趣的小伙伴可以一起讨论一下。

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22337 引用 • 89380 回帖

相关帖子

优质回帖
  • 5Z4Uo6oGvKPB7o 2 赞同

    为了长期使用这么好的软件,个人建议优先选择支持付费支持。与其他相比,这点费用属实不多。内置的 S3 同步也会更稳定,数据安全更有保障。

  • Bard 2 赞同

    时间成本也是成本

    情绪成本也是成本

  • player 1 1 赞同

    可以删除之前的 .git 目录重新 git init。不过要,先保存你的 .git/config 文件,方便 init 后覆盖过去。估计你之前错误的把 temp 目录包含进去了。 gitignore 是后来修改的。 另外图片的 assets 目录小的话,可以留着。大的话,也要排除。用其他方式同步。

    目前我是主要用 git,s3 就低频用。两条腿走路,不怕丢数据。

    不过 git s3 我都选择手动,就像写代码,一个阶段提交一次。 git push 做个按钮放到了 daily note 模版。方便触发。

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 自己搞同步一般没那么稳定,也有人用 Git 然后损坏笔记的,折腾到最后很可能不如直接上车 😂 小心别错过了早鸟价

    1 操作
    JeffreyChen 在 2023-12-27 10:02:10 更新了该回帖
    1. 之前社区里面就有人因为用 git 同步导致笔记空间损坏的,不建议用 git。
    2. docker 部署即便用内网穿透也需要一个 24h 开机的电脑,除非家里有 nas 或者有个云服务器,不然也不方便。

    不过,就算不是早鸟价,70 买断也不贵吧……不如直接上车。

  • 感觉不至于,有些折腾属于瞎折腾

  • shellingford

    我觉得买断制是可以接受的。

    自动用 git 同步就是麻烦点,偶尔还要处理冲突的情况。

  • 费这事买官方的早就部署完了

  • 能付费支持还是付费吧,我怕开发者扛不住

  • 5Z4Uo6oGvKPB7o 2 赞同

    为了长期使用这么好的软件,个人建议优先选择支持付费支持。与其他相比,这点费用属实不多。内置的 S3 同步也会更稳定,数据安全更有保障。

  • i1356

    这点钱也省,花的这些时间不值钱吗

  • powehi
    作者

    同意回复一下大家哈,刚刚仔细想了一下认为还是 S3 的同步会省时省力一些,因为 git 的方案是用过的,有很多不确定性,而且 git 仓库的大小也会增加很多,docker 部署的办法只是一个想法但是可行性真的太差了,最后我还是打算入了早鸟价的 s3 webdav 同步服务

  • Bard 2 赞同

    时间成本也是成本

    情绪成本也是成本

  • powehi
    作者

    刚刚突然想起来 docker 启动在进行内网穿透有点画蛇添足的感觉,其实只要 pc 端启动了思源笔记在 web 界面就是可以访问的了,不需要用 docker 启动,我猜测直接内网穿透出去就可以 在公网访问自己笔记的内容了;

  • MXDMM 1 赞同

    两杯奶茶钱,不至于花那么大精力

  • 主要还是电费也贵。。s3 48 加一年几块钱买大厂工程师的运维

  • daloo 3 评论

    能支持坚果云就好了,此前用 OneNote 时,直接把笔记本放坚果云同步文件夹,什么都不用操心

    坚果云别,会损坏数据的,思源的数据比较特别,还是老老实实用 s3 好了
    NaughtyCat
    本来就支持坚果云,只是坚果云有访问频率限制,一次性同步的文件如果太多,会损坏数据
    lzg603117228
    @lzg603117228 技术我不大懂,不过如果不存在无法克服的技术障碍的话,最好能给使用者方便。目前看订阅用户的优势在于提供网络空间便于同步,不过应该还可以开发其它的增值空间
    daloo
  • git 是可以很稳定的。全球都用这个同步代码。不可能不稳定。

    只是要结合思源的存储细节来调整,这方面没文档,如果是技术,天天与 git 打交道,研究一下没毛病。我一直用 git, 从来没出问题,另外,用 rclone 同步到 google driver。作为一个技术,我还是可以拿捏这个小需求的。

    不过我还是买了 48 支持一下。

    另外 git 我还是保留,这样比较保险。自己的数据,用一辈子的。自己有能力做自己的备份方案,也是一件好事。

    1 回复
  • limmg

    把自己的电脑内网穿透到公网,就没有考虑过安全问题吗,我之前的华为云服务器就因为部署服务的端口号用了默认的被黑了

  • 虽然我接下来的话有点偏激

    但是我还是想讲

    你真差这点钱?

    别让开发者伤心,他需要赚钱养家啊

    image.png

    1 回复
  • 虽然写的支持 webdav,但是居然一直报错。我的 infinicloud,在 zotero,bookxnote,Joplin,silentnotes 中都可以同步,无报错。但在思源里却一直报错,这挺让人以外的,按道理同样作为笔记软件,JoPlin 都不报错,思源报错,挺让人以外的。

    2 回复
  • alpha56

    电费也不能忽略 😂 ,如果本来就有 nas 或家庭服务器长时间工作的话部署倒是没什么问题,siyuan 的文件太散,webdav 速度比较慢,目前用的青云 s3,免费 20g,这还不够用的话自建 s3 存储也比用 webdav 要舒服

  • zxhd86

    webdav 的性能比较差,尝试增加一下超时限制。

    2 回复
  • 已经用了七牛云,,,先用着吧

    1 回复
  • powehi
    作者

    我目前也是七牛云 但是下个月 SiYuan 的 s3 就要收费啦

    1 回复
  • powehi
    作者

    我以前也是用 git 进行备份 但是突然发现我的笔记大小只有几百兆 但是 git 仓库已经 900 将近 1G 的大小了

    1 回复
  • powehi
    作者

    是的 webdav 我也用过一段时间 特别差 总是超时 后来就换成了 oss

  • powehi
    作者

    打工仔啦 50 也是马内,能省则省嘛

  • powehi
    作者

    我用 webdav 的时候总是超时 然后换了仓库有可以 不知道是云盘的问题还是 dev 的问题

  • player 1 1 赞同

    可以删除之前的 .git 目录重新 git init。不过要,先保存你的 .git/config 文件,方便 init 后覆盖过去。估计你之前错误的把 temp 目录包含进去了。 gitignore 是后来修改的。 另外图片的 assets 目录小的话,可以留着。大的话,也要排除。用其他方式同步。

    目前我是主要用 git,s3 就低频用。两条腿走路,不怕丢数据。

    不过 git s3 我都选择手动,就像写代码,一个阶段提交一次。 git push 做个按钮放到了 daily note 模版。方便触发。

    2 回复
  • powehi
    作者

    喔 方案不错 我一会试一试!

    1 回复
  • 估计用 git 丢数据的可能是因为,比如用了 gitee,仓库太大,gitee 那边不让 push。错误的以为自己 push 成功。结果完蛋……

    1 回复
  • powehi
    作者

    刚刚看了一下以前的 git 仓库发现我把笔记自己加密的文件也进行了同步所以才会导致占的数据多了一倍,如果你遇到了你说的仓库太大 push 不成功的情况 我推荐你用阿里的 codeup 试一下 仓库大小 5G 支持 lfs 但我认为 lfs 没啥用处 但 5G 仓库还是很香的

    1 回复
  • lfs 感觉麻烦。不折腾了。我的 git 就同步文本文件。assets 用其他方法。另外我还有个 s3 同步。哈哈。

    不过 5G 确实香,够用好久了。

  • Bobxu 1 赞同

    已经买了功能模块了,48 永久,也还好。S3 收费也不贵

  • snsmqing

    直接买了 48,支持一下作者,算点心意吧。思源当前用手机伺服,有台 linux 系统的 pc 做远备,内穿用的飞鸽。pc 端安装 docker 版思源和 docker 版 webdav,同步选的全手动。感觉自建 webdav 做同步挺简单的,也没啥配置过程,注意 linux 文件权限即可。

    1 回复
  • Sanperish

    考虑了一段时间还是买了功能特性,其他方法多多少少有点麻烦了,以前在 ob 的时候就因为同步折腾过好多次,现在转思源了实在是不想折腾了

    不过还是感谢楼主分享,也是一个挺好的思路

  • edapan 1 赞同

    ob 就是折腾同步,转思源不想折腾了

  • shipman

    我已经买了早鸟价,但在“云端”页面里,看不到有 WEBDAV 的配置页面,还是提示需要付费订阅。退出后再登录进去也没用。有哪位能教教我吗?

    1 回复
  • 应该没有提示的,都还没开始正式收费

    image.png

  • murxuan 1 赞同

    别折腾了。有那功夫还不如干点其他的,毫无意义跟你说,就算你是研究同步本身,也不是这么个方法和效率,花这个时间折腾毫无用处。我利用折腾 OB 插件的时间,半年已经读了好几本书了,光随便写点笔记零散成文收益都超过 2000 多了。而我去年一年写的 OB 插件教程,因为受众实在太少,狗都不看一眼,目前收益都为 0。

    不稳定的情况下,你提心吊胆的情绪成本就不是这点钱能比的。

    最高效的方案:48+12 块阿里云 oss。知乎上有教程,一步到位。

    我现在就采用这种方式,到目前为止就再没丢过数据了。单位电脑 + 我自己的电脑 + 手机同步。

    2 回复
  • powehi
    作者

    是的 老哥 已经不折腾了 还是支持作者比较省心

  • powehi
    作者

    老哥 你在哪个平台分享文章呀 知乎和公众号吗 我在哔站偶尔做一些视频 现在大概一个月 20 几块收益

  • powehi
    作者

    老哥 git push 怎么按钮放到 daily note 里面呀

    1 回复
  • player 1

    得先做一个,服务,比如 http 的。 提供一个接口, 比如: http://localhost:8080/push,里面的逻辑就是如何 git push。 插入一个 html 块,里面放个按钮,就好。然后可以调用了。把 html 写到 dailynote 的模板里面就好。

    或者用我之前搞的一个小挂件。

    image.png

    不过我现在做到插件里面了,设置一个快捷键 ctrl+s,直接就 push 了。

    2 回复
  • powehi
    作者

    我昨天尝试在插件里面 点击按钮调用 shell 脚本 但是会报错 所以我改成了 定时任务执行 每个小时执行一次 但是我发现 如果笔记在 Documents 文件夹下面的话 crontab 在执行的时候会没有权限访问文件夹 比较迷惑 没找到解决方案 后来把笔记放到用户文件夹下就可以了

    2 回复
  • 按钮里调用不到 shell,没那个 bug 级权限。只能调用 http api。

  • player 1 赞同

    如果不会搞插件,可以用此插件的脚本功能来,来调用 http api,还能设置快捷键。

    image.png

    1 回复
  • powehi
    作者

    哇 好滴 谢谢解答呀!

  • zheshizhangwei

    不能把 ob 的同步插件改改用吗

  • zheshizhangwei

    也有 s3 的开源服务器 minio

请输入回帖内容 ...