AnyType纯本地离线模式使用NAS进行同步备份
前言
这几天对Obsidian
的编辑实在是难以忍受,于是决定去寻找一款新的笔记软件,除了Notion
之外,还看到了几款类似Notion
的软件,比如AnyType
,AppFlowy
,Outline
等。
Notion
有着极佳的编辑体验,又有量大管饱的免费额度,但是为什么不用Notion
呢?想必了解笔记软件的人应该像我一样都明白,Notion
有两大痛点。
- 网络连接不够流畅
- 没有本地离线模式
这两个问题,本质上都是靠类似Obsidian
这种本地存储的方式可以解决。但是本地模式又暴露出另一个问题,就是多端同步和备份。
我在研究了这几款类似的软件之后,发现AnyType
有一个非常有趣的特性,就是它可以虽然是使用本地模式,但是通过P2P自动同步到局域网内的其他客户端。
于是就有了今天我准备做的这个操作,相信有的人可能已经猜到了。就是利用Docker在NAS里部署一个AnyType
的桌面客户端,用于同步和备份数据。
配置需求
- 一台内网部署的x86架构服务器
- 服务器上已安装docker环境,并且可以使用macvlan网络驱动
部署方案
配置macvlan网络(已配置可跳过)
首先你需要配置一个macvlan网络,并且网段和局域网设备相同。
下面是我的配置,请你根据自己的状况酌情修改。
docker network create -d macvlan \
--subnet=192.168.9.0/24 \
--gateway=192.168.9.1 \
-o parent=eth0 \
macvlan
参数解释
docker network create -d macvlan \
--subnet=你的局域网子网网段 \
--gateway=你的局域网网关 \
-o parent=接入局域网的网卡 \
网络名
部署docker容器
我更推荐使用docker compose的方式部署容器。
创建docker-compose.yaml
文件。
docker-compose.yaml
services:
anytype:
image: ghcr.io/yojigenserver/anytype:latest
container_name: AnyType
# 需要使用特权模式启动
privileged: true
volumes:
# 请根据自己的文件路径修改
- ./config:/config/.config/anytype
environment:
- TZ=Asia/Shanghai
# 请根据自己需要设置的用户ID修改
- PUID=1000
# 请根据自己需要设置的用户租ID修改
- PGID=1001
networks:
# 这里是你刚刚创建的网络的名字
macvlan:
# 这里填写你想给容器配置的局域网地址
ipv4_address: 192.168.9.240
restart: always
networks:
# 这里是你刚刚创建的网络的名字
macvlan:
external: true
然后就是使用docker compose up -d
启动容器。
配置AnyType
使用浏览器打开你部署的服务,地址为你设置的IP,这里我打开的地址是http://192.168.9.240
。
接下来就和正常设置客户端一样,修改成中文。因为这里我使用离线模式,所以网络设置为仅本地。
库的地址不要修改,这个目录已经被docker映射到宿主了。
然后就是输入秘钥进入库,这里粘贴的话,可能需要在侧边栏打开剪贴板,先粘贴到剪贴板,然后再进入页面里进行粘贴。
接下来你就能看到客户端和容器中的数据已经进行同步了。
其他说明
目前存在的一些问题
首先是容器重启/VNC内客户端重启,不会自动进入之前的库,而是要重新输入秘钥。这一点不知道原因是为什么,但是确实会导致容器重启不能自动进行同步,还是需要进VNC页面里设置一下,所以请尽量保证容器的稳定运行。
其次就是,我试图通过虚拟局域网的方式,在外网进行同步,但是目前尚未成功过,不清楚是网络的问题还是哪里需要调整配置。
总结
折腾了这一圈,其实就是为了要一个可以本地优先,又能免费云同步的一个笔记系统。
目前似乎只有AnyType可以做到全平台客户端,然后客户端又可以连接私有部署服务器和本地化P2P传输的。
不过其实还是感觉没有那么的稳妥,感觉可能自己应该还会继续尝试一些其他的方案吧。
如果有其他更好的方案的话,我也会继续分享的,敬请期待。