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
49 lines
2.1 KiB
Markdown
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.
|