Latchbox

Latchbox

A small utility that snapshots your home router configuration and backs up local files, on a schedule, entirely on your own storage.

v0.6.4 MIT license

Install

Latchbox is a single binary with one config file. No daemon to register, no cloud account to create.

$ tar xzf latchbox-0.6.4.tar.gz
$ cd latchbox-0.6.4
$ ./install.sh

Installs the latchbox CLI and writes a starter latchbox.toml.

What it does

Router config backups

Pulls the running configuration off your router on a schedule and stores each snapshot.

Keenetic, MikroTik, OpenWrt, TP-Link

Vendor-specific export commands are built in, so no shell scripting is needed per router.

File backups

Copies photos, documents, desktop app and TV app data to a local disk or a NAS share, on the same schedule.

Versioning

Every snapshot is kept as its own version. Nothing is overwritten in place.

Integrity checks

Each stored copy is checksummed after the write and verified again on later runs.

No cloud

Everything stays on disk you control. The web interface only listens on 127.0.0.1.

Configuration

One file, latchbox.toml, describes what to back up and where to put it.

[general]
data_dir = "/var/lib/latchbox"

[web]
bind = "127.0.0.1:8686"

[[routers]]
name = "home-router"
vendor = "keenetic"
schedule = "0 3 * * *"
# address is discovered on the local network at run time

[[backup]]
name = "photos"
source = "/home/user/Pictures"
destination = "/mnt/nas/backups/photos"
versioning = true

How it works

  1. Install Latchbox and edit latchbox.toml to list your routers and the folders you want backed up.
  2. Latchbox reads the schedule for each entry and runs snapshots in the background.
  3. Each copy is checksummed, versioned and kept alongside the previous ones.
  4. Browse the history from the CLI, or from the local web interface on 127.0.0.1.

Full configuration reference, supported router commands and the CLI flags are in the documentation. The HTTP interface exposed by the local web UI is described in the API reference.

Read the docs About the project