飞牛 NAS / Docker 下的 AList / OpenList 自动同步工具
10K+
OpenSync is an AList / OpenList automation layer for fnOS (FeiNiu NAS), general NAS, and Docker environments. It connects local folders, cloud drives, object storage, WebDAV, and other storage backends through AList / OpenList, then uses visual jobs to handle backup, mirror, archive, and migration workflows.
If you are on fnOS and want a Cloud Sync-style experience for a photo library, media library, download folder, or document folder, OpenSync is built for that exact gap.

Docker Compose is recommended:
mkdir -p opensync
cd opensync
curl -O https://raw.githubusercontent.com/chenbin3625/OpenSync/main/docker-compose.yml
docker compose up -d
Then open http://<your-device-ip>:8023/ and follow the prompts to create an admin username and password.
On first start, a 24-digit recovery key is shown once. Save it immediately. If you forget the password, set a new one on the web page with "username + recovery key"; the old key becomes invalid and a new one is generated. If the recovery key is also lost, run the CLI fallback:
[ -f .env ] && . ./.env
docker compose exec --user "${PUID:-1000}:${PGID:-1000}" opensync ./opensync reset-password --user admin
Docker CLI deployment:
docker run -d \
--name opensync \
--restart unless-stopped \
-p 8023:8023 \
-v opensync-data:/app/data \
--tmpfs /tmp:mode=1777 \
-e TZ=Asia/Shanghai \
-e SQLITE_TMPDIR=/tmp \
-e TMPDIR=/tmp \
-e OPENSYNC_BIND=0.0.0.0 \
-e OPENSYNC_PORT=8023 \
-e GIN_MODE=release \
chenbin3625/opensync:latest
| Tag | Description |
|---|---|
chenbin3625/opensync:latest | Latest stable release, recommended by default |
chenbin3625/opensync:1.13.2 | Pinned full version, for reproducible deployments |
chenbin3625/opensync:1.13 | Minor-version tag, tracks the newest 1.13.x patch release |
chenbin3625/opensync:1.10 | Older minor-version tag kept for existing deployments |
Images are published on every official GitHub release by the Docker Hub workflow. Stable releases publish the full version, the minor version, and latest; prereleases only publish their exact version tag.
Supported platforms:
linux/amd64linux/arm64linux/arm/v7| Scenario | Example |
|---|---|
| fnOS photo backup | Back up a local photo library to a cloud drive or object storage bucket. |
| Download archive | Move completed downloads to a WebDAV drive, another NAS, or a cold-storage folder. |
| Media library mirror | Mirror a media folder from one AList / OpenList backend to another. |
| Document protection | Run add-only backups for work documents and notify only when files changed. |
| Storage migration | Move or mirror files between different cloud drives exposed through AList / OpenList. |
reset-password CLI fallback.The timezone of scheduled tasks is always controlled by TZ. When data/config.ini does not exist, other startup settings are read from environment variables:
| Variable | Default | Description |
|---|---|---|
TZ | Asia/Shanghai | Timezone used by the container and scheduled tasks |
PUID / PGID | 1000 / 1000 | Host user and group the container runs as |
SQLITE_TMPDIR / TMPDIR | /tmp | Temporary directory used by SQLite and runtime operations |
OPENSYNC_BIND | 0.0.0.0 | HTTP listen address |
OPENSYNC_PORT | 8023 | HTTP service port |
OPENSYNC_EXPIRES | 7 | Login validity, in days |
OPENSYNC_LOG_LEVEL | 1 | File log level |
OPENSYNC_CONSOLE_LEVEL | 2 | Console log level |
OPENSYNC_LOG_SAVE | 7 | Log retention days |
OPENSYNC_TASK_SAVE | 30 | History retention days, 0 keeps all |
OPENSYNC_TASK_TIMEOUT | 48 | Per-task timeout in hours, 0 means unlimited |
OPENSYNC_COPY_CONCURRENCY | 5 | Copy concurrency per task, range 1 to 100 |
OPENSYNC_SCAN_CONCURRENCY | 8 | Scan concurrency per task, range 1 to 20 |
OPENSYNC_MAX_RETRIES | 2 | Max auto-retries after a copy item fails, 0 disables auto-retry |
OPENSYNC_TRUSTED_PROXIES | empty | Comma-separated CIDR list of trusted reverse proxies |
OPENSYNC_CHOWN | auto | Data directory ownership policy: always, never, or unset |
Ports: publish 8023 or whatever you set OPENSYNC_PORT to.
Note: once
data/config.iniexists, environment variables other thanOPENSYNC_TLS_CERT/OPENSYNC_TLS_KEYno longer take effect after a restart. The config file wins. History retention, task timeout, copy/scan concurrency, and retry counts can also be adjusted online from the System Settings page.
Mount /app/data. It holds the database, secret key, config, and logs. Losing it means losing your account, engines, jobs, and history.
./data:/app/data; the Docker CLI example uses the named volume opensync-data:/app/data./app/data is checked against PUID / PGID so no root-owned files appear in the host directory. Force a recursive chown with OPENSYNC_CHOWN=always or skip it with OPENSYNC_CHOWN=never.data/secret.key when upgrading. It backs login cookies and the encryption of sensitive data. Web password reset only uses the recovery key and never exposes secret.key.data/ directory before upgrading. Database migrations run automatically on first start.data/ directory or any file containing AList / OpenList tokens; rotate your tokens if the runtime data directory was shared accidentally.OpenSync 是面向飞牛 fnOS / 飞牛 NAS、普通 NAS 和 Docker 环境的 AList / OpenList 自动同步工具。它通过 AList / OpenList 连接本地目录、网盘、对象存储、WebDAV 等存储端,并用可视化任务完成备份、镜像、归档和迁移。
如果你在飞牛 NAS 上想找一个类似群晖 Cloud Sync 的同步工具,用来把照片库、影音库、下载目录或文档目录同步到网盘、对象存储或另一台存储设备,OpenSync 就是面向这个场景做的。

推荐使用 Docker Compose:
mkdir -p opensync
cd opensync
curl -O https://raw.githubusercontent.com/chenbin3625/OpenSync/main/docker-compose.yml
docker compose up -d
启动后访问 http://你的设备IP:8023/,按提示创建管理员用户名和密码。
首次启动时会一次性展示 24 位恢复密钥,请立即保存。忘记密码时可用“用户名 + 恢复密钥”在 Web 端设置新密码,旧恢复密钥会失效并生成新的。如果恢复密钥也丢失,可执行 CLI 兜底重置:
[ -f .env ] && . ./.env
docker compose exec --user "${PUID:-1000}:${PGID:-1000}" opensync ./opensync reset-password --user admin
| 标签 | 说明 |
|---|---|
chenbin3625/opensync:latest | 最新稳定版,默认推荐 |
chenbin3625/opensync:1.13.2 | 固定完整版本号,适合需要可复现部署的场景 |
chenbin3625/opensync:1.13 | 次版本号标签,跟随最新的 1.13.x 补丁版本 |
chenbin3625/opensync:1.10 | 较早的次版本号标签,供已有部署继续使用 |
reset-password CLI 兜底重置。更多说明见 GitHub README:
https://github.com/chenbin3625/OpenSync/blob/main/README.zh-CN.md
Content type
Image
Digest
sha256:3ba74cc27…
Size
11 MB
Last updated
26 days ago
docker pull chenbin3625/opensync