背景※
最近花了很多时间寻找一款私有化笔记,我的需求如下
- 开源
- 可私有化部署
- 笔记文件保存在本地
- 支持多端同步
- 支持双链
- 最好支持 markdown 所见所得
- 迁移笔记方便
我这段时间试用了为知笔记 Docker 版、Trilium、思源笔记、Mrdoc、showdoc、Obsidian 等笔记软件,诚然,这些软件都有独特的优点,但是对我而言也有一些缺点。其中尤其让我惊喜的是为知笔记 Docker 版本,搭配重构版客户端,体验上比其他软件高出许多。但是或许是其重构版目前仍然处于开发早期,存在许多令我别扭的功能,比如图片强制保存在本地等,必须点击展开,才能打开下一层笔记本 等。
这些别扭让我决定转移阵地,毕竟我是一个习惯了就不喜欢改变的人,所以对笔记软件也是希望一步到位,选择最适合的。所以最终决定使用 Joplin 作为主力笔记软件。
之前也试用过 Joplin,但是当时被其同步功能劝退,这次解决了同步问题,所以记录一下。
Joplin 的好处非常之多,比如有丰富的插件库、开源、笔记保存在本地、多种同步方式、完美的网页剪辑功能、最重要的是还支持调用 Typore 编辑。作为一个免费软件,真的是让人感叹它也太全能了。
下面记录一下 Joplin 搭配 FileRun 进行同步的设置
安装※
joplin 的安装※
打开 Joplin 的官网:Joplin (joplinapp.org)
Joplin 支持多端,选择需要的客户端下载安装即可,方便的不行。安装后,打开 Joplin 即可使用。
FileRun 的部署※
FileRun 是一款免费的私有化部署网盘,是我一直在用的网盘,如果你觉得 nextcloud 太臃肿,不妨试试这一款,轻量级的同时,该有的功能一样都不少。
因为我已经部署了 FileRun,所以这里简单的概括一下安装方法,前往官网FileRun下载网站源码压缩包,上传到你网站的根目录下,浏览器打开:你的域名/filerun
根据提示安装即可。
FileRun 如此轻量级的网页程序居然还支持 WebDAV,开发者真是很贴心了啊。
FileRun 访问 WebDAV 的链接为:
http(s)://你的域名/dav.php/@40Home/
貌似不支持浏览器直接访问,不过咱也不需要这个功能。
到此 FileRun 部署结束,重头戏在下面,我配置 Joplin 的 WebDAV 同步踩了不少坑。
配置同步※
打开【工具】-【选项】-【同步】,可以看到 joplin 支持非常多的同步方式,在这里我当然选择使用 WebDAV 的同步方式
根据提示,填入 WebDAV URL,FIleRun 用户名和密码,我这里填入的是 http 的域名,点击检查同步配置。嗯……提示成功,看起来没问题
第一个坑,检查同步配置没问题,可是在笔记中点击同步后,却出了问题
Last error: Error: Could not upgrade from version 0 to version 1: MKCOL ./sync/: Unknown error 2 (403): You are not allowed to use this folder name!
看这提示,我横看竖看,不知道问题出在哪里,看上去好像是读取或创建文件的时候出了错误,于是求助百度,逛了一圈我发现,竟然一个出现类似问题的都没有,估计是国内 Joplin 用户少,Filerun 用户少,Joplin+Filerun 的用户就更少了,无奈只能上官网寻找帮助。
在官方帮助文档的一个角落里发现了官方对此有做说明
FileRun doesn't allow currently to create hidden folders (name starting with a dot), that is why it fails because Joplin tries to create a hidden folder. There is a workaround. Create a configuration file and add this to it:
$config['app']['hidden_folder_names'] = ['.filerun.*'];
意思是 FileRun 不允许创建隐藏的文件夹,而 Joplin 在同步过程中会创建隐藏文件夹,所以在上面会报错。知道了问题和解决办法后,就好办了,根据文档指导,在网站根目录下的customizables
下创建 config.php
文件,在其中加入一行配置
$config['app']['hidden_folder_names'] = ['.filerun.*'];
注意,这里还有一个坑,记得在文件首行写入
<?php
否则配置会读取失败。
第二个坑、按照如上操作后 windows 平台确实是可以同步了,但是手机平台却死活也连不上,后来琢磨是不是手机平台不支持 http 链接,于是我将网站开启了 SSL,并且将 WebDAV 链接改成了 https,点击同步,出现如下错误
reason: unable to verify the first certificate (Code UNABLE_TO_VERIFY_LEAF_SIGNATURE)
查阅一番资料后,估计是 Joplin 对免费 SSL 证书的认证有问题,目前的解决方案是打开【高级选项】,勾选上【忽略 TLS 证书错误】
经过以上折腾后,Joplin 终于支持全平台同步了,而且保存的笔记文件在 FileRun 中也可以查看,舒服了。