笔记应用的选择
本着数据要放在自己手上并且要不受约束的记录笔记、进行写作的原则。在对比了多个笔记应用之后最终我选择了Joplin作为我的私有云笔记应用。
Joplin是一款开源的笔记本应用,它的以下优点让我最终选择了它,
-
多平台支持
桌面端支持Windows,Mac;移动端支持安卓、IOS,所以不论是电脑还是手机都能够使用这款笔记来记录。 -
多设备同步
Joplin可以在各个设备上通过WebDAV、Dropbox、OneDrive、Joplin Server等方式进行存储同步笔记,可以实现自主选择数据存储方式。 -
Markdown语法支持
支持Markdown使我在Joplin和Note staiton之间最终选择了Joplin,Markdown作为一种轻量级的标记语言,易写易读高效,能在写作排版上大大提高效率。 -
待办事项和笔记统一管理
Joplin除了支持创建笔记之外,还可以创建待办事项,所以可以把自己的待办清单和笔记整理在一起,并且它还支持待办事项和笔记的转换,可以先设置待办,作为未完成笔记的一个提醒,在完成写作之后再转为笔记。 -
端对端加密(E2EE)
Joplin支持端对端加密(E2EE)来保证笔记数据的安全,确保除了用户自己之外没有人可以访问它们,所以也可以在原有的笔记存储基础上放心地在公有云上额外再备份自己的笔记。
同步服务的选择
要使用Joplin首先需要在你的桌面端和移动端上下载安装他的客户端,然后再选择一种同步服务来存储、同步你的笔记。
Joplin提供了多种的方式给用户来存储笔记数据,其中包括它自己提供的收费的云服务Joplin Cloud,还有第三方的云盘如Dropbox、OneDrive,还有自建的云盘Nextcloud、或者通过WebDAV协议来进行同步。
在以上不同的同步方式当中,显然Joplin自己提供的收费服务Joplin Cloud有更大的优势,在拥有更快的同步速度的同时,还能将笔记发布到互联网,并且能够与其他的用户一起共同协作。
那如果不想付费也想拥有同样的效果呢?良心的开发者也提供了Joplin Server服务给用户在自己的服务器上配置同步服务,同样拥有比其他同步方式更高的同步速度,同时也可以分享笔记,进行协作。
目前Joplin Server还是Beta测试阶段,不过已经经过几个版本的迭代,已经趋向于稳定。
因此在自己的NAS或者服务器上搭建Joplin Server相对来说是一个最优的选择。
在体验了OneDrive和群晖WebDAV两种方式之后,我又在群晖NAS上自建Joplin Server服务作为笔记的同步服务,对比之后,确实Joplin Server体验最佳,可玩性更高,一段时间下来也未发现问题。
部署Joplin Server需要进行反向代理的设置,对于没有这方面基础知识的用户不太友好,以下分享一个在群晖上部署Joplin Server服务的方法,采用了最简单的方式,可能不是最好的方法,但是这个方法不需要很复杂的设置,就算零基础也可以参考步骤一步一步搭建成功。
Joplin Server部署过程
部署前确认
安装Joplin Server前需要先确认群晖NAS是否已经满足以下条件:
- 拥有公网IP(没有的话需要做内网穿透)
- 拥有域名并且做好DDNS(白群晖用户可以直接使用群晖提供的域名和DDNS服务)
- 在NAS上安装好对应域名的证书
确认满足以上条件之后才可以接下来进行安装部署。
创建文件夹
首先在NAS的docker共享文件夹下新建一个文件夹,可以自行命名,这里命名为joplin-postgres。
下载映像
Joplin Server服务的数据是存储在postgres数据库中,所以我们需要同时下载postgres数据库和joplin server服务。打开Docker,在注册中搜索postgres和joplin server,分别下载映像。
安装postgres
网络选择
启动postgres,选择桥接网络,
常规设置
常规设置中勾选启动自动重新启动
,修改一个辨识度比较高的容器名称,可自行修改名字,这里命名为joplin-postgres,
高级设置
点击高级设置,分别增加环境变量:
环境变量 | 参数 |
---|---|
POSTGRES_PASSWORD | joplin |
POSTGRES_DATABASE | joplin |
POSTGRES_USER | joplin |
端口设置
可以随意设置一个本地端口,后续如果需要连接postgres数据库可以用到,joplin server是直接连postgres的容器端口所以不会使用到本地端口,
文件映射
设置存储空间文件映射,此文件夹就是postgres数据库存储的地方,
/docker/joplin-postgres
→/var/lib/postgresql/data
至此,postgres的容器配置完成,只要一步步点击直到完成后postgres容器便会启动,接下来要进行joplin server容器的安装。
安装joplin server
网络选择
启动joplin server映像,选择桥接网络,
常规设置
勾选启动自动重新重启
,容器名字可以自行决定是否修改,这里将容器名称修改为joplin-server,
高级设置
打开高级设置,增加以下环境变量:
环境变量 | 参数 | 备注 |
---|---|---|
APP_PORT | 22300 | |
APP_BASE_URL | https://你的nas域名:22301 | 域名填自己的nas,端口号这里以22301为例 |
DB_CLIENT | pg | |
POSTGRES_PASSWORD | joplin | |
POSTGRES_DATABASE | joplin | |
POSTGRES_USER | joplin | |
POSTGRES_PORT | 5432 | |
POSTGRES_HOST | joplin-postgres | 与前面所命名的容器名一致 |
TZ | Asia/Shanghai |
点击链接,新增容器joplin-postgres,别名也设置为joplin-postgres。
端口映射
设置本地端口22300映射到容器端口22300,
joplin server容器不需要做文件映射,可以直接下一步直到完成并且启动容器。
反向代理设置
打开控制面板,点击登录门户,最上方选择高级,
点击反向代理服务器,点击新增,
按照以下设置进行设置,
来源:
选项 | 设置 |
---|---|
反向代理服务器名称 | joplin |
协议 | HTTPS |
主机名 | 你的域名 |
端口 | 22301 |
目的地:
选项 | 设置 |
---|---|
协议 | HTTP |
主机名 | localhost |
端口 | 22300 |
点击自定义标题,新增WebSocket,保存完成。
最后需要在路由器端口做好端口转发,按本文的设置这里需要转发到22301端口上,这样子才可以在外网环境下同步笔记。
Joplin Server用户设置
以上步骤顺利完成之后,那么接下来就可以打开网页输入https://nas域名:22301
,使用默认的账户名admin@localhost
和密码admin
登录,登录修改账号和密码即可。
Joplin Server客户端设置
打开Joplin客户端同步选项,选择同步目标为Joplin Server(Beta),输入Joplin Server的地址还有设置好的账号密码,
点击检查同步配置,
此时如果在本地局域网环境下客户端可能会出现检查同步配置不成功的情况,是因为出现了IP回流的现象。
出现这种情况可以直接修改路由器的hosts,在里面添加一行,
NAS本地IP NAS域名
例如,
192.168.1.2 *.myDS.me
将NAS的IP和NAS的域名关联起来。
如果无法修改路由器的hosts,
可以直接修改电脑的hosts,同样也是添加NAS本地IP NAS域名
。
手机设备的话如Iphone可以打开Joplin应用的本地网络权限,实测打开之后可以正常进行同步。
没有报错的话即一切都配置成功,一个安全,便捷高效的全平台多端私有云笔记就搭建完成了!