前言
书接上文,使用自建的CouchDB配合obsidian-livesync插件实现了实时同步。但是有大佬说使用数据库同步时间长了会出现同步错误,建议使用minio S3进行同步,近两天研究了一下,只能说踩了不少坑(可恶的堡塔),总算是能稳定同步了。
话不多说,直接上部署教程。(由于我对很多配置与命令不熟,故很多都是面板进行操作的)
根据我测试的结果:1panel部署起来是最便捷的(也可能是凑巧)
部署
前提
- 服务器一台(感谢由YVGS提供的高性能服务器)
- 已安装docker,可参考我的obsidian-livesync服务器部署教程
- nginx(反代使用)
- obsidian
服务端部署(默认已有docker)
1. 部署minio
docker run \
-p 9000:9000 \
-p 9090:9090 \
--name minio \
-v /data/minio/data:/data \
-v /data/minio/config:/root/.minio \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=12345678" \
minio/minio server /data --console-address ":9000" --address ":9090"
2.反代域名
反代我不多说,可参考官网反代配置,后台和API都反代一下。可利用面板的反向代理直接进行反代。(我用的宝塔面板反代)
这里可能有个坑,等到后面再说。
3. 访问后台
- 访问后台:IP+端口:9000/反代的域名
- 登入后,新建buckets和Access Keys 并记录
客户端配置
弄之前记得备份或开新库来一遍,别瞎点把自己数据给玩没了
- 安装第三方插件Self-Hosted LiveSync
- 以Win11配置为例
这里随便选一个就行
然后改成图示或者按需求修改
然后客户端就设置完成了
- 其他端类似操作。
反代坑点(api域名403)
如果所有的都配置完并重启打开,提示如下图的情况,好恭喜你,跟我一样,踩了这个坑。
原因与解决办法
原因:
- 查找日志与控制台会发现,obsidian一直是HEAD请求,而HEAD请求是会被403的。
- 经过多次测试,当你将存储桶改成Public,直接https://api+URL/桶名 ,去访问的时候,会发现是正常的(说明桶是正常的),查看宝塔日志会发现GET请求是正常的.
- 当直接 URL填 http://ip:9090 时,会发现能正常使用
解决办法: 综合来看,说明时反代出了问题。那知道原因就好办了。
那既然HEAD请求会403,而GET时200,那就让HEAD变成GET。
找到nginx反代的配置文件
我用的是宝塔,配置文件在:/www/server/panel/vhost/nginx
,然后找到相应的配置,在locations里面添加:
proxy_cache_convert_head off;
这样就解决了
后记
- 经测试,1panel应该直接反代后就能正常使用,不用进行额外配置(我是这样的)
- 该同步方式,插件会依次读取存储桶里的文件,然后依次写入直到全部读完一遍。当你里面文件有100个,就会按顺序依次写入100次。(不是只读取最后一次)【大概是这样,只是根据它同步方式推理出来的,不一定对】
- nginx反代问题不是只有那一种方法,可以根据需求自行修改。
- 我给出的坑点仅是我遇到的,可能还有其他导致api用不了的,可自行查看log进行排查或者问问AI。