Skip to content

KARTOZA · ZFS BACKUP

Snapshot, send, sleep well.

A terminal UI for ZFS backups that does the careful, encrypted, incremental work for you — and shows you exactly what's happening, dataset by dataset and snapshot by snapshot, while it runs.

Kartoza ZFS Backup Tool

Why it exists

ZFS already has the right primitives for backups — atomic snapshots, incremental send/receive, bookmarks, native encryption. What's missing for most people is a calm, observable way to drive them. Cron + a wall of stderr is the usual answer; the usual outcome is that nobody notices when the chain breaks.

This tool wraps those primitives in a terminal interface that walks you through the whole flow: import the encrypted destination, snapshot the source, send only what changed, prune the chain, eject the disk. Every step is named, timed, and visualised — including a live snapshot-by-snapshot dot grid so you can see the backup catch up rather than guess.

What you can do with it

  • Incremental backups


    Snapshot the entire source pool and let syncoid send only the changes since the previous run. The destination receives at block level — fast, bandwidth-efficient, and faithful.

    Backup operations

  • Multi-host on one drive


    Every dataset lives under NIXBACKUPS/<hostname>/<dataset> so multiple machines can share one encrypted disk without colliding. Legacy flat layouts are auto-migrated on first run.

    Configuration

  • Pull and push over SSH


    Pull snapshots from a remote machine to a local drive, or push local snapshots to a remote backup server — same UI, same progress reporting, same hostname namespacing.

    Backup operations

  • Browse and restore


    Open any snapshot in a dual-panel file explorer with vim/yazi keybindings, walk the tree, and restore individual files or directories to any location.

    Restore files

  • Encrypted by default


    The destination pool is created with ZFS native AES-256-GCM encryption. The key is prompted for on every import; data at rest is never in clear.

    Configuration

  • Full PDF reports


    After every run, a markdown + PDF report lands in ~/.local/share/zfs-backup/reports/ with timings, sizes, snapshot dot grids, and the full pool inventory.

    Pool information

Install

  • Nix / NixOS


    nix run github:timlinux/zfs-backup — straight from the flake, no install step.

    Installation

  • Linux binary


    Single static binary on the releases page — drop into /usr/local/bin/ and run with sudo.

    Installation

  • From source


    go build inside the nix develop shell. Everything reproducibly pinned via the flake.

    Building

Project status

Docs Release Latest release License