Offsite OpenZFS replication

A receive endpoint for your zfs send.

ZFSRecv is a managed zfs recv service for replication streams. Pipe raw, encrypted, incremental sends to our servers using the tooling you already have in your $PATH. No extra packages, no proprietary formats.

root@fileserver
# take a recursive snapshot
# zfs snapshot -r tank@2026-08-15T03:00

# raw + incremental, sent straight to ZFSRecv
# zfs send -Rw -i @2026-08-14T03:00 \
      tank@2026-08-15T03:00 | \
    curl -T - \
      https://us-sw-01.zfsrecv.com/v1/recv/tank

receiving incremental stream
4.71G sent  ·  2.38G on wire  ·  resumable
8
Receive regions
-w
Raw encrypted sends
0
Plaintext bytes stored
-s
Resumable transfers
Three commands, no lock-in

It's just zfs send | curl

You get your own destination pool, send encrypted with keys that never leave your possession, and it runs from your cron. We provide the far end of the pipe and get out of the way. If you can replicate to another box on your LAN, you already know how to use ZFSRecv.

01 / snapshot

Snapshot locally

Keep taking snapshots the way you already do, sanoid, crontab, or by hand. Nothing about your setup changes.

# zfs snapshot -r tank@hourly
02 / send

Pipe it to us

Send raw incremental streams over HTTPS to your nearest region. Only compressed, encrypted, changed blocks cross the wire.

# zfs send -wi @prev tank@hourly | curl ...
03 / verify

Retain & verify

Snapshots are immutable and stay until you destroy them with the API. Monthly scrubs on our metal verify everything.

# curl .../v1/list | jq .
Built for people who read man pages

Every OpenZFS feature you rely on.

No re-implemented "backup engine", just raw ZFS send streams. We terminate zfs recv and store the exact bytes you sent.

send -w

Zero-knowledge by default

Raw sends stay encrypted with your encryptionroot keys. We hold ciphertext and nothing else — we literally cannot read your data.

send -i / -I

True incrementals

Block-level deltas between snapshots. A 40 TB pool with quiet days moves megabytes, not terabytes.

recv -s

Resumable streams

Interrupted transfer? We hand back a receive_resume_token. Pick up exactly where you left off.

append-only

Immutable retention

Received snapshots can't be rewritten or rolled back from your side. Ransomware on the source can't reach what's already been received.

hold

Pin what matters

Place a named hold on any snapshot and we refuse to destroy it — zfs hold/zfs release semantics, enforced server-side. Pruning everything else is on you or your tooling.

scrub

Verified at rest

Monthly scrubs on RAID-Z2 backed pools, checksummed end to end.

Automate it with a one-liner

Drop in syncoid, or a cron job, or Ansible.

ZFSRecv is a simple HTTPS receive target. Whatever already orchestrates your replication just points at a new host.

  • Works with sanoid/syncoid and hand-rolled scripts alike
  • Per-pool API keys, no shell access
  • Your bandwidth caps and off-peak windows honored via mbuffer
crontab
# replicate every dataset under tank, hourly
0 * * * *  syncoid --recursive \
  --sendoptions="w" --no-sync-snap \
  tank \
  https://ca-on-01.zfsrecv.com/v1/recv/tank
If it is OpenZFS, it works

Compatibility

PlatformRaw send -wResume -sNotes
FreeBSD✓✓Base system or OpenZFS
Linux✓✓OpenZFS DKMS or kmod
TrueNAS SCALE/CE✓✓Just add a replication target
Proxmox VE✓✓Per-pool or per-vmid
TrueNAS CORE/Enterprise✓✓Full backwards compatibility
illumos / OmniOS✓✓Legacy streams accepted
macOS (OpenZFSonOSX)✓✓Experimental
Windows (OpenZFSonWindows)✓✓Experimental
No surprise costs, just GiBs stored.

Pay for what you use, no ingress or exgress fees, no charge per API call.

Incrementals mean you store deltas, not full copies. No per-pool, per-dataset, or per-snapshot costs.

Homelab
$0.03/ GiB · mo

For the server in the basement, or under the desk, and that NAS that holds precious memories.

  • Up to 2 TiB stored
  • Single receive region
Get a key
Operator
$0.02/ GiB · mo

For production where it counts, and teams running real fleets across sites.

  • $20/month minimum
  • Up to 100 TiB stored
  • Optional dual region automated replication
Start replicating
Fleet
Talk to us

Petabyte-scale cloud or on-prem receive appliances.

  • Unlimited stored
  • Dedicated / private regions
  • SLA + on-call engineers
  • Invoice / PO billing
Contact sales