跳转至

Homelab - 跨设备同步工具 Syncthing

Syncthing 是一款免费开源的文件同步应用程序,可在多个设备间同步文件和文件夹,支持增量同步。我用它将服务器的数据备份到 NAS 上做统一管理。

部署(Docker Compose)

首先创建 compose.yaml 文件,并粘贴以下内容:

compose.yaml
version: "3"
services:
  syncthing:
    container_name: ${STACK_NAME}_app
    image: syncthing/syncthing:${APP_VERSION}
    hostname: my-syncthing
    environment: # 需要以 root 权限运行,否则无法读取其他 docker 目录或宿主机 root 目录
      - PUID=0
      - PGID=0
    volumes:
      - ${APP_SYNC_DIR}:/DATA
      - ${STACK_DIR}/config:/var/syncthing/config/
    ports:
      - ${APP_PORT}:8384 # Web UI
      - 22000:22000/tcp # TCP file transfers
      - 22000:22000/udp # QUIC file transfers
      - 21027:21027/udp # Receive local discovery broadcasts
    restart: unless-stopped

(可选)推荐在 compose.yaml 同级目录下创建 .env 文件,并自定义你的环境变量。如果不想使用环境变量的方式,也可以直接在 compose.yaml 内自定义你的参数(比如把 ${STACK_NAME} 替换为 syncthing)。

.env
STACK_NAME=syncthing
STACK_DIR=xxx # 自定义项目储存路径,例如 ./syncthing

# syncthing
APP_VERSION=latest
APP_PORT=xxxx # 自定义访问端口,选择不被占用的即可
APP_SYNC_DIR=xxxx # 自定义需要同步的路径,比如 /DATA

最后,在 compose.yaml 同级目录下执行 docker compose up -d 命令即可启动编排的容器。

配置说明

如果提示权限不足,可尝试将 PUIDPGID 值都修改为 0,用 root 权限启动。

参考与致谢

原文地址:https://wiki-power.com/
本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。