我的 Logseq 备份方案

2025/10/25

最近开始使用 Logseq 了,在使用了一段时间之后,我感觉 Logseq 的数据可以算是我不可分割的一部分,于是决定时刻保存一份它的备份。Logseq 本身支持使用 git 备份,也支持付费后在官方提供的云服务中备份,但是处于隐私和价格的考虑,加之我现在已经有一套 NAS+LinuxServer 的 HomeLab 架构,所以复用这一套现有的基础架构是一个比较经济的方案。

Logseq 的数据库其实就是一个文件夹,在 MacOS,它位于 ~/.logseq_graph,或者也可以在 logseq 左上角的 All Graphs 界面里看到。还有一个需要备份的文件夹在 ~/.logseq,它是 logseq 自身的配置文件、插件和一些缓存。

接下来就是寻找一个把本地的 logseq 目录备份到 NAS 上的程序。Syncthing 是一个很好的选择,而且可以使用它的 docker 版本来快速搭建一个Syncthing服务器。

我们的网络结构是这样的:

┌──────────────────────────────────────────────────────┐
│                                                      │
│  ┌───────┐  NFS    ┌────────────┐  SyncT  ┌───────┐  │
│  │  NAS  ├─────────┤ Linux Host ├─────────│ MacOS │  │
│  └───────┘         └────────────┘         └───────┘  │
│                                                      │
└──────────────────────────────────────────────────────┘

在 Linux Host 上用 AutoFS 这个工具,把 NAS 上的目录映射到 Linux Host 上。然后在 Linux Host 上用 docker-compose 起一个 Syncthing 服务:

services:
  syncthing:
    image: lscr.io/linuxserver/syncthing:latest
    container_name: syncthing
    hostname: deb-syncthing #optional
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - ./data/config:/config
      - /mnt/syncthing:/data1
    ports:
      - 8384:8384
      - 22000:22000/tcp
      - 22000:22000/udp
      - 21027:21027/udp
    restart: unless-stopped

接下来在 MacOS 上配置一下 Syncthing,同步上述的两个目录到 Syncthing 服务端去,就可以实现无缝备份了。