Files
torbenandClaude Opus 5.5 fe1de63e0f
CI / verify (push) Successful in 6m14s
CI / pwsh (push) Successful in 2m2s
Release / release (push) Successful in 34s
feat: INSTALL.md is the English installation tutorial; new tutorial docs/tutorials/first-source-to-first-answer.md with a shipped sample source; README.md links it as its first-ingestion step (#191)
Files changed:
- CHANGES.md
- INSTALL.md
- README.md
- VERSION
- docs/reference/commands/types-instructions-and-docs.md
- docs/tutorials/README.md
- docs/tutorials/first-source-to-first-answer.md
- docs/tutorials/sample-source.md
- instructions/dev/doc-pull-through.md
- tools/CONTRACT.md
- tools/chemenu/commands/docs_verify.py
- tools/chemenu/install_doc.py
- tools/chemenu/tests/test_install_doc.py

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
2026-10-07 06:38:40 +02:00

2.1 KiB

Home lab backups - how they work now

Notes written after reworking the backups in September 2026. This file is the sample source for the tutorial "From your first source to your first answer"; the machine and its setup are made up for it.

The machine

Atlas is the small file server in the hall cupboard: a fanless mini PC with two 4 TB disks in a mirror, running Debian 13. It holds the family photo archive, scanned documents and the configuration of every other machine in the house. Everything else on the network is replaceable; what is on Atlas is not.

The tool

Backups are made with restic, an open-source backup program. restic splits files into chunks, stores each chunk only once and encrypts everything before it leaves the machine, so the backup target never sees a file name or a byte of content in the clear. A restic repository is the storage location it writes to; a snapshot is one backup run.

restic was chosen over plain rsync for two reasons: deduplication keeps the daily runs small, and encryption makes it safe to put a copy on storage someone else operates.

How it is set up

Atlas runs restic every night at 02:30 from a systemd timer. Each run writes one snapshot to two repositories:

  • a USB disk that stays plugged into Atlas, for fast restores;
  • a rented storage box at a hosting provider, reached over SFTP, as the copy outside the house.

Snapshots are thinned out by restic forget after each run: the last 7 daily, 5 weekly and 12 monthly snapshots are kept.

Why two targets

The setup follows the 3-2-1 backup rule: keep three copies of the data, on two different kinds of storage, with one copy off site. Here the three copies are the mirror on Atlas itself, the USB disk, and the storage box. A fire or a burglary takes the first two; the storage box is what is left.

The mirror alone does not count as a backup. It protects against a dead disk, but a deleted or encrypted file is deleted or encrypted on both disks at once.

What is still open

The restore has been tried once, for a single folder, from the USB disk. It worked and took under a minute. A full restore from the storage box has not been tried.