{{ updatedNote }}
Backups
Created on the server, encrypted with age, uploaded to R2, pruned locally, verified. A backup that never left the house is the failure mode that matters.
Archives only
These are Jellyfin’s own backup archives, read from the server. The R2 pipeline — encrypt, upload, prune, verify — and the weekly restore drills are not built, so every stage after “created” is shown as not done, and there are no R2 figures to report.
R2 stored
11.8 GB
R2 cost / month
$0.18 · zero egress
Next run
02:00 nightly · in 5 h 40 m
Drill streak
5 weeks passing
Restore drills
last: passweekly · newest archive → throwaway container → checked against production
PASS · Sun 24 Aug 03:12
ameribrit-nightly-20260824 → container
users 7 / 7
items 15,879 / 15,881 · within tolerance
4 m 12 s
An untested backup is a hope. The one failure (12 Jul) was a truncated upload — caught here, not on restore day.
{{ tr.name }}
{{ tr.stLabel }}{{ tr.contents }}
Size{{ tr.size }}
Retention{{ tr.keep }}
Next run{{ tr.next }}
Last OK{{ tr.last }}
Recent archives
{{ b.name }}
{{ b.tier }}
{{ b.size }} · {{ b.age }}
{{ st.sym }}{{ st.label }}
Silent failure
Archive was created and encrypted but never reached R2. The local copy is still on disk (1.9 GB) and counts toward the 5 GB free-space precondition.
Restore is not migration. A restore applies onto the system the backup was made on and restarts Jellyfin. Moving to new hardware is a cold copy with the service stopped — a different procedure entirely.