A lightweight CLI agent that backs up local files to S3 via ZPan.
Originally planned as v2.6. Deferred behind Pro Launch so the commercial foundation ships first.
- One-way backup — push local files to S3, local deletions do NOT delete remote copies
- Incremental — only upload new or changed files (hash + mtime comparison)
- Preserve directory structure — local paths map to remote paths as-is
- Scheduled runs — built-in cron (e.g. every night at 2 AM)
- Directory watching — optional real-time mode, upload on file change
- Resumable uploads — large files use multipart upload, resume on failure
- Config file — YAML config for persistent backup jobs
- Cross-platform — macOS, Linux, Windows, ARM (NAS friendly)
- Small binary — ~5MB static binary, no runtime dependencies
- Docker image — mount volume, set env vars, done (for NAS users)
- Batch presigned URL endpoint — request upload URLs for many files in one call
- File fingerprint check — client sends hashes, server returns which need uploading
- Backup status visible in web UI
Photographer with a NAS:
I have 500GB of photos on my Synology. I run zpan-cli in Docker, it backs up to R2 nightly. If my NAS dies, I browse and download everything from ZPan's web UI.
Developer with a laptop:
I run
zpan-cli backup --dir ~/Projects --cron "0 2 * * *". Every night my projects are backed up. If my laptop gets stolen, I pull everything from ZPan.
- #136 Desktop client — zpan-cli for command line, desktop tray app in v2.10