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
summitflow is distributed as a single static binary.
macOS and Linux (Homebrew)
brew install summitflow
Debian and Ubuntu
sudo apt install ./summitflow_1.8.2_amd64.deb
Windows
winget install summitflow
Check the installation with summitflow 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=...
summitflow 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
summitflow 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:
summitflow snapshots
summitflow restore 7f3c19ab --include Documents/taxes --target /tmp/restore
Or mount the repository and browse it like a normal directory:
summitflow mount /mnt/backups
Retention policies
Remove old snapshots while keeping a sensible history:
summitflow 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 summitflow-backup.timer
Configuration file
Instead of passing flags every time, create ~/.config/summitflow/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.