个人Obsidian同步和分享方案:AList+rclone+PicHoro

发布于 2022-12-09  1840 次阅读


Obsidian同步方案

最近尝试了下Obsidian这款笔记工具,整体体验还是不错的,但obsidian的同步确实是个大问题。我的主要需求是windows编辑加安卓端的查看,偶尔可能需要编辑一下,以及最好安卓端不要占用我的本地空间。

尝试了一下网上的几个推荐的方案,坚果云免费版每个月的上下行流量就1G,Syncthing需要把文件放到手机上,WPS云同步的话手机端不能查看md文件,最后都不太满意。

摸索了下现在使用了AList+rclone的方案,可以做到以下几点:

  • 本地不占用空间,切换电脑无需下载仓库,通过rclone挂载后就可以直接开始使用
  • 无感自动同步上传,本地使用体验和仓库在本地基本一致
  • 浏览器直接访问和查看笔记,可以在线编辑,可以在手机、平板等上使用
  • 可以用PicHoro同时做到查看笔记和管理图床
  • 通过在alist设置具有特定权限和访问目录的账户,快捷的把特定目录下的笔记分享给朋友查看

这里记录一下搭建过程并跟大家介绍下~

用到的工具和平台

方案概述

整个方案的主要架构如下图所示,核心是一台搭建了AList服务的云服务器,通过rclone的webdav方式,将AList挂载到本地盘符使用,手机/平板通过浏览器或者PicHoro查看和编辑笔记,再通过在AList中添加限定访问权限的账户,就可以实现笔记的分享。

另外,选用了cloudflare R2存储来当做笔记图床使用,图床平台可以根据自己的喜好选择。

obsidian同步.excalidraw.png

搭建流程

AList服务搭建

为了搭建整个流程,需要有一台云服务器和一个可以访问的域名,如果没有的话,在自己电脑上使用内网穿透来进行搭建也可以。

后续的整个流程都是参考我自己在云服务器上搭建经验而写。

AList的整个搭建过程参考官方文档进行,以root权限运行如下一键安装命令:

curl -fsSL "https://alist.nn.ci/v3.sh" | bash -s install /{myDir}/alist

请把{myDir}换成你自己的路径。

安装后,日志内会显示admin用户的初始密码,或者安装后进入alist目录输入./alist admin命令查看初始密码。

AList默认使用5244端口,需要配置一下反代,在nginx配置文件的server字段里添加:

location / {
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host $http_host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header Range $http_range;
    proxy_set_header If-Range $http_if_range;
  proxy_redirect off;
  proxy_pass http://127.0.0.1:5244;
  # the max size of file to upload
  client_max_body_size 20000m;
}

如果用宝塔面板的话,删掉下面这几行:

- location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md
- location ~ .\*\.(gif|jpg|jpeg|png|bmp|swf)$
- location ~ .\*\.(js|css)?$

再修改/{myDir}/alist/data/config.json文件,将site_url字段的值修改为自己的网站地址,比如https://alist.test.com。注意提前将域名添加好DNS解析。

这时,就可以访问https://alist.test.com来进入AList服务了,使用admin用户和密码进入管理后台,然后在存储选项内,添加本地存储

其中,挂载路径指在AList中使用的虚拟目录,可以根据需要随意填写,根文件夹路径是你希望将obsidian仓库放置在云服务器上的路径,比如/test/obsidian/。其它的选项都是可选了,可以根据需求选择。

image.png

另外,还需要设置一下元信息,防止游客用户能够查看到我们的笔记,将密码设置的复杂一些即可,具体设置参考官方文档。

image.png

这时,进入主页就可以愉快的在线访问查看到我们的笔记文件了,默认使用markdown查看器,可以切换为Text Editor来进行在线编辑。

image.png
image.png

Rclone挂载本地

AList提供了WebDAV访问方式,因此,我们可以使用rclone来将刚才搭建AList服务挂载为本地盘符来方便的使用,就像使用本地硬盘文件一样。

Windows下rclone的下载和安装参考这篇文章windows下使用Rclone挂载swift对象存储为本地磁盘,非常的详细,这就就不赘述了。

打开powershell,注意,不要使用管理员模式。输入rclone config来进入配置界面,再输入n新增一个存储,再输入WebDAV方式对应的编号,比如我这里是46,给新增的存储指定一个名字,比如alist,随后输入域名,用户名,密码等信息即可,注意ALlist的webdav服务的网址是你的alist域名加/dav/结尾。

这时,会默认访问AList的根目录,为了方便访问,我们可以再新增一个alias来指定特定目录,同样输入n新增,选择3号编号的alias,起一个名字比如obsidian。然后指定alist:/test/obsidian/作为新的存储,这里的alist是上一步你新增的存储的名字,/obsidian/是你AList上的挂载路径。

然后输入rclone.exe mount obsidian:/ G: --cache-dir D:/cache --vfs-cache-mode full就可以将AList挂载成本地的G盘了,这里的盘符和缓存路径都可以根据实际需要调整。

不要退出终端,否则会停止挂载服务。

这时,就像使用本地磁盘一样,将Obsidian的仓库地址指定到G盘,就可以开始写笔记了,后台会自动的进行上传与同步,完全无需额外的操作~

你还可以将刚才的挂载命令写到bat脚本中,然后添加到开机自动运行任务里,这样每次开机就会自动挂载上AList,体验更加好~

手机端访问-浏览器/PicHoro

在手机端,只要使用任意浏览器访问你的AList网址,登录一下就可以快速的查看和在线编辑笔记,与电脑端的使用方法一样。

为了更加优化插入图片链接和管理图床的体验,还可以使用我写的开源安卓软件PicHoro,PicHoro支持十几个不同云存储平台/图床平台等的管理,可以方便的上传图片和复制markdown格式的链接到剪贴板。同时直接支持管理AList,同样可以查看笔记、图片和视频。

610ded21699b090f7328d054246cf57.png

笔记分享

在AList中,我们可以添加新用户并指定权限和可以访问的目录,这样,我们就可以方便的把特定目录下的笔记分享给朋友查看或者编辑。

image.png