老婆是印象笔记的资深用户,早在2016年就买了十年会员,当时价格还比较优惠,十年的会员费用也就几百块。会员现在还有两年到期,对应的高级账户现在的价格已经到了14元/月,于是我开始寻找替代品。经过一番搜索,锁定了Joplin。

Joplin是一款开源的笔记应用,支持同一账户多平台的同步,包括Windows、macOS、Linux、Android和iOS,满足了不同用户的需求。他还支持Markdown格式,使得笔记排版更加灵活,同时支持插入图片、附件等多种媒体类型,不断更新的各种插件也能满足各种个性化的需求。

在参考了什么值得买上的两位大神的文章之后(文章1 文章2),我信心满满的准备照猫画虎,没成想原本以为挺简单的搭建过程折腾了好几天(我太菜了),每一步都精准的踩到坑里。所以这篇文章的步骤会写得很详细,避免值友们绕路。

我的nas是威联通的453Bmini,固件版本是5.1.7.2770,不同的设备和固件版本在设置上可能会有所区别。以我浅显的理解,Joplin服务器的数据是存在另外一个数据库里的,所以在nas上需要做的大概有3件事情:1. 安装开源数据库应用程序PostgreSQL、2. 安装Joplin Server、3. 设置反向代理。前两个需要在docker中拉取应用,后一个在nas控制台设置。


拉取docker应用

上一次在容器里安装应用大概是半年前,但这次按照之前的操作总是提示失败。在网上搜索才知道6月初国内就无法访问dockerhub和所有的国内镜像站了。在网上了解到拉取docker应用的两种方法:一个是添加新的镜像站,具体说明见这里;一个是在提取镜像的时候在docker名称栏开头写入dockerpull.com/,例如,要下载postgres和joplin两个docker,可按照如下方法来提取镜像:

在Container Station界面的右上角找到“浏览”按钮,点击这个按钮右侧的箭头展开菜单,选择“提取映像”

在NAS上搭建免费开源的个人云笔记Joplin服务器提取映像

在弹出的对话框中的“映像”一栏填入“dockerpull.com/joplin/server:latest”或“dockerpull.com/postgres:latest”来分别提取postgres和joplin server的映像,输入后点击“提取”按钮等待下载完成。

在NAS上搭建免费开源的个人云笔记Joplin服务器提取joplin server映像
在NAS上搭建免费开源的个人云笔记Joplin服务器提取postgres映像


部署postgres数据库容器

下载完毕后,在左侧点击“映像”,先来部署postgres数据库,点击postgres对应的docker右侧的三角箭头按钮:

在NAS上搭建免费开源的个人云笔记Joplin服务器部署postgres数据库

在弹出的对话框中选择“下一步”

在NAS上搭建免费开源的个人云笔记Joplin服务器创建容器

在“名称”栏给这个docker起个名字,这里填入“postgres_joplin”,然后点击“高级设置”

在NAS上搭建免费开源的个人云笔记Joplin服务器设置容器名称

弹出高级设置对话框后,点击左侧“网络”,在“主机”栏填入与容器端口相同的5432

在NAS上搭建免费开源的个人云笔记Joplin服务器网络设置

点击左侧“环境”,点击右上角“添加新变量”,这里需要添加4个环境变量:

变量:POSTGRES_DATABASE

值:joplin

变量:POSTGRES_USER

值:joplin

变量:POSTGRES_PASSWORD

值:joplin

变量:TZ

值:Asia/Shanghai

在NAS上搭建免费开源的个人云笔记Joplin服务器添加环境变量

点击左侧“存储”,在这里设置数据库存储的位置,点击右上角“添加卷”右侧的箭头,在展开的菜单中选择“绑定装在主机路径”

在NAS上搭建免费开源的个人云笔记Joplin服务器设置存储路径1

点击右侧的文件夹图标,选择需要保存的路径位置,然后把默认值的容器路径复制到新建的路径中,最后删除默认的存储映射

在NAS上搭建免费开源的个人云笔记Joplin服务器设置存储路径2

最后点击“应用”、下一步“”、“完成”,即完成了postgres容器的创建。


部署Joplin Server容器

与postgres相同,在Container Station中的左侧点击“映像”,找到之前下载的joplin server,点击对应右侧的三角按钮

在NAS上搭建免费开源的个人云笔记Joplin服务器部署joplin server

点击“下一步”

在NAS上搭建免费开源的个人云笔记Joplin服务器创建joplin容器

输入一个名称,这里输入“joplin”,然后点击“高级设置”

在NAS上搭建免费开源的个人云笔记Joplin服务器设置容器名称

点击左侧“网络”,点击“新发布端口”,“主机”和“容器”栏都填入22300

在NAS上搭建免费开源的个人云笔记Joplin服务器设置网络

点击左侧“环境”,点击右上角“添加新变量”,这里需要添加9个环境变量:

变量:APP_BASE_URL

值:https://你的域名:访问端口

变量:APP_PORT

值:22300

变量:DB_CLIENT

值:pg

变量:POSTGRES_DATABASE

值:joplin

变量:POSTGRES_USER

值:joplin

变量:POSTGRES_PASSWORD

值:joplin

变量:POSTGRES_PORT

值:5432

变量:POSTGRES_HOST

值:nas的ip地址

变量:TZ

值:Asia/Shanghai

在NAS上搭建免费开源的个人云笔记Joplin服务器添加环境变量

最后点击“应用”、下一步“”、“完成”,即完成了joplin server容器的创建。


设置反向代理

前面设置的端口都是指容器端口,设置反向代理的作用是:当从指定域名访问nas的指定端口时,转发到对应的容器端口上,具体操作如下:

在“控制台”——“网络和文件服务”——“网络访问”中,找到“反向代理”标签,点击“添加”

在NAS上搭建免费开源的个人云笔记Joplin服务器设置反向代理

随便取一个规则名称,自己能分辨就好,这里填入“joplinserver”,来源部分的协议选择https,域名写自己的域名,注意不要“https://”部分,只写www.xxx.com即可,端口号写你从外网连接joplin server时的端口号

在NAS上搭建免费开源的个人云笔记Joplin服务器反向代理规则1

目标协议默认http,主机名写“localhost”,端口号填之前设置的joplin server端口号:22300

在NAS上搭建免费开源的个人云笔记Joplin服务器反向代理规则2

最后点击“应用”完成反向代理规则的添加。

在路由器或者光猫上设置好端口转发,就可以通过外网连接joplin服务器了。首次登陆默认账号密码分别为:admin@localhostadmin,登录后按照提示修改密码。


  • 如果joplin server的日志提示无法连接到database,先停止joplin server和postgres,然后先启动postgres,等数据库启动完毕后再启动joplin server。
  • 如果joplin server提示time drift too large,可在“控制台”——“常规设置”——“时间”中将默认的服务器改为国内的时间服务器,然后点击“更新”、“应用”即可,例如:ntp.aliyun.com(阿里云时间服务器)、ntp.tencent.com(腾讯云时间服务器)等。

通过客户端连接Joplin

PC、Mac和安卓手机端的应用可以在这里下载,iOS端在AppStore中搜索下载。这里以PC端为例,其他类型的客户端设置相同。

首次运行PC端时会弹出同步向导,这里选择底部的自托管选项。如果不小心关闭了这个窗口也不用担心,在软件顶部的“工具”——“选项”——“同步”中也可以进入同步设置页面。

在NAS上搭建免费开源的个人云笔记Joplin服务器点击这里选择自托管

在弹出的同步设置中,同步目标选择“Joplin服务器”,依次填入服务器地址(含端口)、登录账户的邮箱、密码,点击“应用”即可完成同步设置。

在NAS上搭建免费开源的个人云笔记Joplin服务器PC端同步设置

以上就是使用postgres作为数据库的自托管joplin服务器设置的全部过程,希望能对计划搭建个人云笔记的值友们有所帮助。


存在的问题

  • 在PC、安卓、iOS端同步时,如果在PC端建立了一个笔记,安卓和iOS端可以同步看到该笔记,但如果安卓端删除该笔记到回收站,则PC和iOS端不会出现删除动作,而在清空回收站后才会同步删除,反之亦然。
  • 在iOS端删除空笔记本时(即笔记本中没有笔记),会直接彻底删除而不会出现在回收站中。安卓和PC端会先到回收站,清空回收站时才彻底删除。

    .

    .

  • 希望有大神可以帮忙解决上面的问题在NAS上搭建免费开源的个人云笔记Joplin服务器

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

,

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。