1. 前言
我之前写过一篇【好玩儿的 Docker 项目】免费、开源、全平台同步笔记软件 ——Joplin是部署在vps上的,由于我VPS快到期了,我就想把它部署在本地NAS上,这样数据也能安全一点。
2. 操作环境
- 服务器:我使用甲骨文免费的1H1G的小鸡做FRP内网穿透用(没有公网IP的痛啊),如果大家有公网ip可以不需要;没有vps,没有公网ip,大家可以参考其他内网穿透方案
- 威联通NAS
- 【非必需但建议】域名一枚,并做好解析到服务器上
- 【非必需】提前安装好宝塔面板海外版本 aapanel,并安装好 Nginx
- 【非必需本教程选用】安装好 Nginx Proxy Manager(相关教程)
3. 搭建教程
废话不多说,直接上教程
3.1 解析域名到反代服务器
3.2 qnap使用container station 拉取镜像
先拉取 postgres 官方镜像,注意从dockerhub拉取,qnap推荐版本低了点,我使用的是13.4
拉取后创建,并添加环境变量
- POSTGRES_DB
- POSTGRES_USER
- POSTGRES_PASSWORD
环境注意后面三个,分别是数据库名、密码、用户名,这三个后续会使用,
网络方面自行映射5432端口,
持久化方面自行映射本地文件夹至 /var/lib/postgresql/data
至此postgres创建完成,后续数据备份只需要备份数据库文件夹
我这边使用hybrid backup sync实时同步备份至ondriver,且定时冷备份到异地,数据还是比较有保障的
然后创建joplin server,使用 joplin/server 官方镜像,创建容器时注意配置环境
- APP_BASE_URL :后续访问joplin server使用的域名,需要https,需要完全一致
- APP_PORT: 端口,默认23000
- DB_CLIENT:pg 使用postgres数据库
- POSTGRES_DATABASE:postgres数据库,同之前创建的数据库名
- POSTGRES_HOST:数据库ip,同一机器使用本机ip即可
- POSTGRES_PASSWORD:数据库密码,同之前设置
- POSTGRES_PORT:数据库端口,同之前设置,默认5432
- POSTGRES_USER:数据库用户名,同之前设置
端口映射22300,建议不改,若修改则反向代理处响应修改
之后启动即可,**注意先启动数据库,然后启动joplin,否则joplin可能会报错 **
启动成功后可以使用本地访问ip:22300,出现下面可认为已启动
这里就出现了一个坑,
日志出现报错
Error: The device time drift is -3478ms (Max allowed: 2000ms) - cannot continue as it could cause data loss and conflicts on the sync clients. You may increase env var MAX_TIME_DRIFT to pass the check, or set to 0 to disabled the check
这里需要到威联通设置界面,更改下时间同步服务器,默认是国外的时间同步服务器,改成国内的,如图
然后,先重启postgres ,然后再重启joplin server
3.3 配置反向代理
我的FRP部署在软路由中
在软路由的frp中添加服务
打开frp的dashboard,确认穿透服务是否启用
3.4 利用 Nginx Proxy Manager
在添加反向代理之前,确保你已经完成了域名解析,不会的可以看这个:域名一枚,并做好解析到服务器上(域名购买、域名解析)
之后,登陆 Nginx Proxy Manager(不会的看这个:安装 Nginx Proxy Manager(相关教程))
注意:
Nginx Proxy Manager(以下简称 NPM)会用到
80
、443
端口,所以本机不能占用(比如原来就有 Nginx)
直接丢几张图:
注意填写对应的
域名
、IP
和端口
,按文章来的话,应该是22300
至此访问域名就可以正常使用了
暂无评论内容