Lightweight file sync client with token auth
10K+
增量文件同步客户端 — 从 SyncHub 自动拉取文件,SHA256 校验 + 原子写入。
REMOVE_MISSING=true 时删除远端已不存在的文件records.json 记录文件状态,重启不重复下载linux/amd64 + linux/arm64cp .env.example .env
# 编辑 .env 填入真实值
# .env
BASE_URL="https://synchub.example.com" # SyncHub 服务器地址
UUID="your-access-path-uuid" # AccessPath
# 认证
TOKEN="your-token-uuid" # 认证令牌
# 同步
LOCAL_DIR="/data/certs" # 本地存储目录
SYNC_INTERVAL="1h" # 同步间隔 (s/m/h/d)
REMOVE_MISSING=true # 删除远端不存在的文件
# TLS
INSECURE_SKIP_VERIFY=false # 跳过 TLS 证书验证
# docker-compose.yml
services:
syncnode:
image: lovechen/syncnode
container_name: syncnode
restart: always
environment:
- TZ=Asia/Shanghai
volumes:
- ./files:/data/certs
env_file:
- .env
docker compose up -d
docker compose logs -f # 查看同步日志
| 变量 | 必填 | 默认值 | 说明 |
|---|---|---|---|
BASE_URL | ✅ | — | SyncHub 服务器地址 |
UUID | ✅ | — | AccessPath (对应 SyncHub config.yml 中的 accessPath) |
TOKEN | ✅ | — | 认证令牌 (对应 SyncHub config.yml 中的 token) |
LOCAL_DIR | ✅ | — | 本地存储目录 |
SYNC_INTERVAL | ❌ | 1h | 同步间隔,支持 30s 5m 1h 1d 1h30m |
REMOVE_MISSING | ❌ | true | 是否删除远端不存在的文件 |
INSECURE_SKIP_VERIFY | ❌ | false | 是否跳过 TLS 证书验证 |
┌─────────────┐ JSON API ┌─────────────┐
│ SyncNode │ ──────────────► │ SyncHub │
│ │ GET /{uuid}/ │ │
│ 比对 hash │ ◄────────────── │ 文件列表 │
│ │ [{name, hash}] │ │
│ 下载变更 │ ──────────────► │ │
│ │ GET /{uuid}/f │ 文件内容 │
│ 原子写入 │ ◄────────────── │ │
└─────────────┘ └─────────────┘
records.json 比对,识别新增/变更/删除records.json 状态记录SyncHub 是配套的中心文件服务器:
docker pull lovechen/synchub
Content type
Image
Digest
sha256:cac8d379c…
Size
5.3 MB
Last updated
6 months ago
docker pull lovechen/syncnode