nightly mac backups · your bucket · your keys

Back up your Mac to S3 Glacier,
automatically, every night.

backbot is a tiny CLI that snapshots your home directory to your own S3 Glacier bucket every night — end-to-end encrypted with restic, deduplicated, and restorable in seconds. About $8 a year.

$curl -fsSL https://raw.githubusercontent.com/viraatdas/backbot/main/install.sh | bash

macOS · requires restic, awscli (the installer offers to brew them for you)

🔒 Encrypted client-side

restic encrypts everything before it leaves your machine. The repo password lives in your macOS Keychain — not even AWS can read your files.

☁︎ Your account, your bucket

No third-party service in the middle. backbot talks straight to S3 with the AWS keys you provide. You own the data and the bill.

Glacier IR — instant restore

Defaults to Glacier Instant Retrieval: archival pricing, but restores in seconds with no 12–48h thaw wait.

🌙 Set it and forget it

A launchd job runs nightly at 23:59 and at every login. Incremental and deduplicated, so daily runs are fast and cheap.

How it works

One command installs everything and walks you through setup. Under the hood it's just restic + the AWS CLI + a launchd timer.

Install

Clones backbot, installs restic + awscli via Homebrew, and links the backbot command.

Configure your AWS keys & bucket

backbot configure stores your keys, creates the bucket if needed, generates an encryption password, and runs restic init.

Nightly backups, on autopilot

launchd runs backbot backup at 23:59 and at login. Old snapshots are pruned automatically on a retention schedule.

Bring your own AWS keys

backbot never holds your credentials — you configure them right from the CLI. backbot configure is interactive and safe to re-run anytime to rotate keys or switch buckets.

$ backbot configure
=== backbot configure ===

This stores your own AWS keys and points backbot at your S3 bucket.
AWS keys are saved to a dedicated 'backbot' AWS CLI profile (~/.aws),
never to this repo or the backup itself.

AWS Access Key ID: AKIA••••••••••••••••
AWS Secret Access Key: ••••••••••••••••••••••••••••••••
AWS region [us-west-1]: us-west-1
Saved to AWS profile 'backbot'.

S3 bucket name for backups: my-mac-backups
Bucket s3://my-mac-backups not accessible (may not exist yet).
Create it in us-west-1 now? [y/N] y
Created s3://my-mac-backups

Generating restic repository password (stored in macOS Keychain)...
Storage class [GLACIER_IR]: GLACIER_IR
Wrote ~/.config/backbot/restic.conf
Initialize restic repo now? [Y/n] y
Repo initialized.

Done. Run your first backup with:  backbot backup
You stay in control. Keys are written to a dedicated backbot AWS CLI profile in ~/.aws, never committed and never uploaded. Prefer your own setup? Any AWS credential source works — set AWS_PROFILE and RESTIC_REPOSITORY in the config and skip configure.

CLI reference

restic's power, wrapped in a handful of friendly commands. Pass-through subcommands forward straight to restic.

backbot configureSet up AWS keys, bucket, repo password, init the repo
backbot backupIncremental backup, then apply retention
backbot snapshotsList all snapshots
backbot restoreRestore files to a target directory
backbot mount <dir>Browse the repo like a folder (FUSE)
backbot checkVerify repository integrity
backbot statusConfig, latest snapshot, schedule, logs
backbot uninstallRemove the launchd job and CLI

What it costs

You pay AWS directly — there's no backbot subscription. For ~500 GB:

~$8
/ year — Deep Archive
~$24
/ year — Glacier IR (default)
$0
backbot itself — it's free & open source