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

49 lines
2.1 KiB
Markdown

# 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.