无付费nas上搭建个人云笔记,使用Joplin开源服务器打造免费笔记服务

访客 3C数码 4.3K+
你可以使用Python的Nose库来编写免费开源的Joplin服务器。通过Nose,你可以在Linux或macOS上运行Joplin客户端程序,并通过Nose来监控其性能和错误输出。使用Nose可以让你轻松地管理、定制和部署复杂的Joplin应用程序。

我老婆是Evernote的高级用户。她早在2016年就买了十年会员。当时价格比较优惠,十年会员费几百元。会员两年到期,对应的保费账户价格已经到了14元/月,于是开始寻找替代品。经过一番搜寻,乔普林被锁定了。

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

参考了两位值得买的大神的文章(第一篇,第二篇)后,我很有信心照猫画虎,却没想到,我以为挺简单的搭建过程折腾了好几天(我就是这么烂),每一步都准确无误地踩进了坑里。所以本文的步骤会写的比较详细,以免值友走弯路。

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

拉docker应用程序

上一次在容器中安装应用大概是半年前的事情了,但是这次按照之前的操作总是失败。网上搜了一下才知道6月初dockerhub和国内所有镜像站在国内都无法访问。我在网上了解了两种拉docker应用的方式:一种是添加新镜像站,详见这里;一种是在提取图像时,在docker name列的开头写上dockerpull.com/。例如,要下载两个Dockers,postgres和joplin,可以如下提取图像:

找到集装箱站界面右上角的“浏览”按钮,点击此按钮右侧的箭头展开菜单,选择“提取图像”。

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

部署postgres数据库容器提取joplin服务器映像以部署postgres数据库容器

下载完成后,先点击左边的“Image”部署postgres数据库,再点击postgres对应的docker右边的三角箭头按钮:

部署postgres数据库,在弹出的对话框中选择下一步。创建一个容器在名称列中给这个docker一个名称,在这里填写“postgres_joplin”,然后点击“高级设置”。设置好容器名称后弹出高级设置对话框,点击左侧的“网络”,在“主机”一栏填写与容器端口相同的5432。点击左侧的“环境”和右上角的“添加新变量”进行网络设置。这里您需要添加四个环境变量:

变量:POSTGRES_DATABASE

价值:乔普林

变量:POSTGRES_USER

价值:乔普林

变量:POSTGRES_PASSWORD

价值:乔普林

变量:TZ

价值:亚洲/上海

点击左侧的“存储”添加环境变量,并在此设置数据库存储的位置。单击右上角“添加卷”右侧的箭头,并在展开的菜单中选择“在主机路径中绑定”。设置存储路径1。单击右侧的文件夹图标,选择要保存的路径位置,然后将默认容器路径复制到新创建的路径,最后删除默认存储映射。设置存储路径2,最后点击Apply,Next,Finish,完成postgres容器的创建。

部署Joplin服务器容器

同postgres,点击容器站左侧的“图片”找到之前下载的joplin服务器,点击右侧对应的三角形按钮。

部署joplin服务器并单击Next。创建joplin容器输入一个名称,在这里输入“joplin”,然后点击“高级设置”。要设置容器名,点击左边的“网络”,点击“新发布端口”,“主机”和“容器”字段都填22300。要设置网络,请单击左侧的“环境”和右上角的“添加新变量”。这里,您需要添加9个环境变量:

变量:APP_BASE_URL

值:https://您的域名:接入端口。

变量:APP_PORT

价值:22300

变量:数据库客户端

值:pg

变量:POSTGRES_DATABASE

价值:乔普林

变量:POSTGRES_USER

价值:乔普林

变量:POSTGRES_PASSWORD

价值:乔普林

变量:POSTGRES_PORT

数值:5432

变量:POSTGRES_HOST

值:nas的ip地址。

变量:TZ

价值:亚洲/上海

添加环境变量,最后单击Apply、Next和Finish,完成joplin服务器容器的创建。

设置反向代理

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

在控制台-网络和文件服务-网络访问中,找到反向代理选项卡,然后单击添加。

设置反向代理时,只需选择一个规则名称,这样你就可以自己区分了。这里填写“joplinserver”,选择https作为源部分的协议,域名写自己的域名。注意不要写“https://”部分,只写www.xxx.com,从外网连接joplin服务器时写端口号。反向代理规则1目标协议默认为http,主机名写为“localhost”,端口号用之前设置的joplin服务器端口号填充:22300。反向代理规则2最后,单击“应用”完成反向代理规则的添加。

在路由器或光猫上设置端口转发,可以通过外网连接joplin服务器。首次登录的默认账号密码为:admin@localhost和admin,登录后根据提示修改密码。

如果joplin server的日志提示无法连接数据库,先停止joplin server和postgres,然后先启动postgres,数据库启动后再启动joplin server。

如果joplin server提示时间漂移过大,可以在控制台-通用设置-时间中,将默认服务器改为国内时间服务器,然后点击更新应用,比如ntp.aliyun.com(阿里云时间服务器)、ntp.tencent.com(腾讯云时间服务器)。

通过客户端连接Joplin

PC、Mac、Android手机的应用都可以在这里下载,iOS端在AppStore搜索下载。以PC端为例,其他类型客户端的设置都是一样的。

首次运行电脑时,会弹出同步向导。选择底部的自托管选项。如果您不小心关闭了此窗口,请不要担心。也可以在软件顶部的工具-选项-同步中进入同步设置页面。

单击此处选择自托管。在弹出的同步设置中,选择“Joplin server”作为同步目标,依次填写服务器地址(包括端口)、邮箱和登录账号密码,点击“应用”完成同步设置。上面的PC端同步设置,就是以postgres为数据库,搭建一个自托管joplin服务器的全过程,希望对打算搭建个人云笔记的价值朋友有所帮助。

存在的问题

在PC、Android和iOS上同步时,如果在PC上创建了一个笔记,Android和iOS可以同步看到该笔记。但如果安卓删除笔记到回收站,在PC和iOS上不会删除,而是清空回收站后同步删除,反之亦然。

在iOS端删除空笔记本时(也就是笔记本里没有笔记),会直接完全删除,不会出现在回收站里。Android和PC会先去回收站,清空回收站就会彻底删除空。

只有外网可以访问,内网不能。

希望有大神可以帮忙解决上面的问题希望有大神帮忙解决以上问题。

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

标签: 容器

抱歉,评论功能暂时关闭!