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
This commit is contained in:
1 parent
f9056c04f7
commit
fe1de63e0f
13 files changed
+403
-190
No files matched your search
@@ -0,0 +1,48 @@
|
||||
# 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.
|
||||
Reference in new issue
Block a user