Plan recovery

Inventory what must survive

List unique data, reproducible software, configuration, credentials, metadata, owners, and locations.

A backup plan starts with a list, not a tool. Before you pick restic or a schedule, you need to know what cannot be recreated. Skip this step and you’ll back up the wrong things. You’ll find out during a disaster, which is the worst possible time.

The distinction I use is unique data versus reproducible data. Your operating system is reproducible. You can reinstall it. Your application code is reproducible if it’s pushed to Git. But an unpushed repository, a production database, user uploads, and encryption keys exist in exactly one place. Lose them and they’re gone.

Build the inventory

Write a plain text inventory. One entry per thing that matters, and no secret values in it:

item: customer database
owner: application team
location: production PostgreSQL
changes: continuously
backup method: logical dump plus provider snapshot
restore dependency: database version and encryption key

Every field does a job. Owner tells you who to call when the restore fails. Changes tells you how often to back it up. Restore dependency is the one people forget. A database dump is useless without a compatible database version. An encrypted backup is useless without its key.

Now walk through every place that holds unique data. Your laptop’s ~/Documents. The VPS running your side project. The SaaS tool that holds your invoices. For each one ask: if this disappeared right now, could I recreate it?

Personal data gets an entry too:

item: family photos
owner: me
location: laptop ~/Pictures plus phone
changes: weekly
backup method: none yet
restore dependency: nothing

An honest backup method: none yet is the whole point of the exercise. It turns a vague worry into a task you can do this weekend.

What to watch out for

Mark unknown ownership as a problem. Data that belongs to nobody gets backed up by nobody.

Keep credentials out of the inventory. This document gets copied, printed, and shared during an incident, so it must be safe to pass around. Record where the recovery material lives instead: “restic password: in the password manager emergency kit”. That pointer helps during recovery. The actual secret in a plain text file is a liability.

Try this on your own machine: list five things you’d lose if the disk died tonight. My guess is at least one of them ends up with backup method: none yet.

Lesson completed