hassan@alsallam:~/projects/vibevault$ bat README.md

VibeVault

One-way mirror backup to Backblaze B2 with a mass-deletion guard

Feature-complete2026linux-appsource: private · ask me
Welcome screen
Welcome screen
Status screen during an active sync
Status screen during an active sync

What it is

VibeVault mirrors local folders to Backblaze B2. The rule it is built on is that local is the source of truth and sync is one-way, so the backup can never push a mistake back to my disk.

It is a single Rust binary with a GTK4 and libadwaita GUI. Rather than shelling out to rclone, it embeds it through the librclone crate and configures the B2 backend in memory per run, so no plaintext key files ever exist; credentials live in the keyring. The safety property I most wanted is the deletion guard: before every sync it diffs source and mirror, and if the run would delete more than 500 files or 25% of the mirror, it aborts and records a sample of what it would have removed.

It is feature-complete, with point-in-time and full-mirror restore, a stale-backup watchdog, monthly integrity checks, and a single-listing fast path that finishes an unchanged sync of 58,000 files in about 20 seconds.

Features

Stack

RustGTK4libadwaitarclone (librclone)Backblaze B2systemd

~7,300 lines of Rust · 30 tests · ~20 s no-change sync over 58k files