Mirror: losing the laptop stops mattering
Your files are copied to your private cloud every 15 minutes — with 30 days of version history, a brake that catches ransomware before it reaches your cloud copies, and an optional second backup your everyday credentials can't even see.
What it does
A background agent copies your chosen folders — Documents, Downloads, Pictures, Movies, Music, your projects, anything you add — to your private bucket every 15 minutes. It's additive-only by construction: the mirror uses an operation that physically cannot delete a cloud file. Delete something locally (or a bug or a bad actor does), and the cloud copy is still there.
This is a different job than the CelDrive folder. Storage is the working location of files you moved to the cloud. Mirror is the safety copy of the files still on your machine. Storage frees space; Mirror means a stolen backpack costs you hardware, not history.
9 roots · last pass 4 min ago
Documents ✓ projects ✓ Pictures ✓ …
$ celdrive mirror sync
✓ pushed 37 changed files · nothing deleted, ever
Version history: 30 days of undo
When a changed file is pushed, the version it replaces isn't discarded — it moves to a dated history area in your bucket and is kept for 30 days. Overwrote the wrong spreadsheet Tuesday? Wednesday-you copies Tuesday's version back. This applies to every mirrored file, on every plan.
The ransomware brake
A faithful mirror has an ugly failure mode: if malware encrypts your documents, a naive tool uploads the encrypted garbage right over your good cloud copies. CelDrive watches for exactly that. If an unusually large share of a folder changed since the last pass (default: more than 30%), the push pauses and notifies you instead of uploading.
Push PAUSED to protect the cloud copies.
If this change is yours: DW_MIRROR_FORCE=1 celdrive mirror sync
Big legitimate changes happen — a repo checkout, a photo import. One command confirms it's you and the push proceeds. That's the trade we chose: a rare extra confirmation from you, in exchange for encrypted files never silently replacing good ones. Thresholds are configurable per machine.
The restore map travels too
The metadata that records what's offloaded where — and how it goes back — is itself copied to your bucket on every pass. If the laptop dies, a fresh machine can reconstruct not just your files but your setup. Backing up the territory without the map is how restores fail; we back up both.
Replica: the backup's backup
For the genuinely paranoid (rightly so — accountants, firms, anyone whose files are their livelihood): celdrive replica copies your entire bucket nightly into a second, isolated bucket. The key property is separation: your everyday laptop credentials cannot see the replica bucket. Malware that steals your laptop's token can corrupt nothing there. Deleted or changed files are kept as dated generations for 30 days before expiring.
✓ nightly replica at 03:30 · isolated credentials · 30-day undelete
Honest framing: what Mirror is NOT
- Not continuous. Passes run every 15 minutes, so your very newest edits are briefly unmirrored. If you need second-by-second protection, run Time Machine alongside — they coexist fine.
- Not two-way sync (yet). Today the mirror pushes one way: laptop → cloud. It provably cannot touch a local file. Multi-device two-way sync is on the roadmap, and when it lands, conflicts keep both copies — never a silent overwrite.
- Not a hoarder. Regenerable artifacts (
node_modules, virtualenvs, build outputs) and files over 5 GB are skipped by default — they'd waste your quota. Skips are surfaced inceldrive mirror status, never silent. Both limits are configurable. - Not a fight with iCloud. Folders Apple manages (iCloud Drive, Desktop & Documents sync, Photos) are detected and left to Apple. Two sync systems wrestling over one file is how corruption happens; we refuse to play.
Platform support
| Platform | Status | Notes |
|---|---|---|
| macOS | ✅ Full | launchd agent · survives reboots unaided |
| Linux | ✅ Full | systemd user unit |
| Windows | ⏳ Roadmap | scheduled task · same policy format |