Getting started
This guide takes you from zero to a scheduled, encrypted backup in about ten minutes. It assumes you have an S3-compatible bucket and an access key; any provider works.
Installation
blueflow is distributed as a single static binary.
macOS and Linux (Homebrew)
brew install blueflow
Debian and Ubuntu
sudo apt install ./blueflow_1.8.2_amd64.deb
Windows
winget install blueflow
Check the installation with blueflow version.
Create a repository
A repository is where encrypted snapshots are stored. Export your credentials and initialise it:
export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
blueflow init s3://my-bucket/laptop
You will be asked for a passphrase. The repository key is derived from it with Argon2id.
Important: there is no way to recover a repository if you lose the passphrase. Store it in a password manager.
Your first backup
blueflow backup ~/Documents ~/Projects --exclude node_modules
The first run uploads everything. Subsequent runs only upload chunks that changed, which usually takes seconds.
Restoring files
List snapshots and restore a single path to a new location:
blueflow snapshots
blueflow restore 7f3c19ab --include Documents/taxes --target /tmp/restore
Or mount the repository and browse it like a normal directory:
blueflow mount /mnt/backups
Retention policies
Remove old snapshots while keeping a sensible history:
blueflow prune --keep-daily 7 --keep-weekly 5 --keep-monthly 12
Scheduling
On Linux, the package ships a systemd timer that runs the backup defined in your configuration file every night:
sudo systemctl enable --now blueflow-backup.timer
Configuration file
Instead of passing flags every time, create ~/.config/blueflow/config.toml:
repository = "s3://my-bucket/laptop"
paths = ["~/Documents", "~/Projects"]
exclude = ["node_modules", "*.tmp", ".cache"]
[retention]
daily = 7
weekly = 5
monthly = 12
Commands
| Command | Description |
|---|---|
init | Create a new encrypted repository |
backup | Create a snapshot of one or more paths |
snapshots | List snapshots, optionally filtered by host or tag |
restore | Restore a snapshot or part of it |
mount | Mount the repository as a read-only filesystem |
prune | Apply a retention policy and free storage |
check | Verify repository integrity |
Last updated · Found a mistake? Tell us.