BackupBinder
Site backups on this machine
Keep a site archive you can actually restore.
Local-first backups for any directory. Optional remotes when you want them. The same contract for you and your agent, without inventing hosts, paths, or secrets.
- Last run
- Lives on this machine
- Restore
- Empty scratch only
- Destinations
- Optional copies
One contract: sources, snapshot, destinations, restore.
BackupBinder archives a site on this machine. A site is a directory you care about: files by default, with optional addons for site types like WordPress.
- Capture Files from a local path or an SFTP server (copied here first).
- Archive A versioned local repository. Unchanged data stored once.
- Copy out Optional destinations (SFTP, disk, S3, B2, Google Drive). With none enabled, the run never leaves this computer.
- Prove restore Test into an empty scratch directory. Never onto the live site root.
Three doors. Same backup contract.
Humans and agents share one command catalog. Every command prints JSON. The localhost UI is for setup and trust; agents are not expected to drive it.
-
Localhost UI
serveon this machine. Set up a backup, then read last run and restore confidence. -
JSON CLI
Scriptable setup, backup, verify, and restore. Failures are structured, not scraped from logs.
-
Agent / MCP
stdio MCP over the same tools. Identify the exact site before mutating. Never invent access fields.
Trust is a restore you can run, not a green light.
BackupBinder refuses the shortcuts that make backups look fine while skipping the hard parts.
- Restore only into an empty scratch directory: never the live root, its parents, or the repository.
- Database passwords and destination secrets stay out of site JSON and tool output.
- Mutations need an exact site match: id and root, not a fuzzy name.
- Local-only is a complete backup. Remotes are copies of a finished archive.
- WordPress is one shipped addon. Unmatched directories stay files-only.
Build it. Point it. Back something up.
The binary is still named local-backup. Data lives under var/ (or --home). Requires Go to build; restic on PATH or under .tools/.
git clone https://github.com/mikeybeck/local-backup.git
cd local-backup
go build -o bin/local-backup ./cmd/local-backup
./bin/local-backup setup --path /path/to/site
./bin/local-backup serve --host 127.0.0.1 --port 47831