Skip to content

Latest commit

 

History

History
36 lines (26 loc) · 1.69 KB

File metadata and controls

36 lines (26 loc) · 1.69 KB

v2.9 — Backup

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.

Major Features

zpan-cli (Rust, in monorepo under native/)

  • 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)

ZPan API Additions

  • 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

User Scenarios

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.

v1 Issues Resolved

  • #136 Desktop client — zpan-cli for command line, desktop tray app in v2.10