Most homelab backup guides get this wrong: they tell you to back up everything, including terabytes of media you could just fetch again. That’s how backups never get set up — the job looks too big, so it stays on the to-do list forever.
Back up the configs. The media is replaceable; the configuration isn’t.
Once a week, a script on my mini PC grabs the config directories for the media stack — the *arr apps and Jellyfin. It excludes the live databases, logs and sockets (copying a live sqlite file is asking for corruption), then takes proper consistent snapshots of each database with sqlite’s own backup mechanism, and packs the lot into a tarball. About 350MB. Small enough to keep several copies without thinking about it.
Retention is dead simple: keep the last three, delete the rest. If a config gets mangled on a Tuesday, last week’s copy is fine.
The sanity check matters more than the backup itself: after every run, list the tarball’s contents and confirm it’s intact. A backup you can’t restore is just a disk-filling ritual.
Three rules. Automate it — a manual backup is a backup that stops happening. Exclude what’s replaceable. Verify the output. Everything else is detail.