Commit graph

18 commits

Author SHA1 Message Date
c05598d9e0
feat(viridian): implement comprehensive 3-2-1 backup strategy
Add automated snapshot and backup system with three independent tiers:

Snapper (hourly local snapshots):
- Configure snapper for all srv-* subvolumes
- Tiered retention: 24 hourly, 7 daily, 4 weekly, 12 monthly
- Snapshots stored at /.snapshots on viridian drive
- Provides fast operational rollback for user errors

Borgbackup onsite (hourly local backups):
- Independent staging snapshots at /.staging-onsite
- Repository on data drive at /srv/borg-repo
- Unencrypted (physical security assumed)
- Matches snapper retention policy
- Fast local disaster recovery

Borgbackup offsite (daily remote backups):
- Independent staging snapshots at /.staging-offsite
- Encrypted backups to borgbase repository
- Retention: 7 daily, 4 weekly, 12 monthly
- Remote disaster recovery with prune policy

Architecture decisions:
- Separate staging directories prevent job conflicts
- Staging snapshots decouple borg jobs from snapper
- Consistent zstd,9 compression across both borg jobs
- Special case handling for containers subvolume path
2025-10-06 20:59:26 +08:00
b0bfb37d3c
refactor(viridian): migrate service data to dedicated BTRFS subvolumes
Migrate from path-based persistence (/persist/var/lib/*) to dedicated
BTRFS subvolumes for better data isolation and snapshot capabilities.

- Move valuable user-facing services to /srv/* with srv-* subvolumes:
  - forgejo: git repositories and database
  - opengist: paste data
  - minecraft: game world data
  - lighttpd: static web content
  - containers: OCI container volumes

- Update home directory to use hm-sajenim subvolume on viridian disk
- Remove jupyterhub service (no longer in use)
- Update borgbackup paths to match new service locations
- Follow upstream service defaults where possible for maintainability

Services kept on /persist (disposable state):
- traefik, crowdsec, murmur
2025-10-06 13:07:46 +08:00
bce8012209
chore: add all 2025-09-01 01:48:47 +08:00
ffe0850ac9
backup opengist directory 2025-07-05 20:13:42 +08:00
0e27c72344
setup jupyterhub 2025-05-05 08:12:27 +08:00
34c586aa9b
chore: update borg repo and passphrase 2025-03-26 13:34:07 +08:00
f26c63e3d8
chore: update backup directories 2025-03-23 23:27:00 +08:00
8a66dfcaea
chore: remove unused services 2025-03-23 21:23:42 +08:00
12d1bd94a3
remove immich from borgbackups 2024-11-24 09:37:46 +08:00
0439a07ce8
update borgbase hosts 2024-10-18 09:00:41 +08:00
106f39a140
fix persistence 2024-10-16 07:12:04 +08:00
999740e7bd
move base data dir 2024-10-16 04:59:59 +08:00
2e7fefa7b9
migrate backups to borgbase 2024-10-15 06:46:10 +08:00
038971e4bf
setup shares subvolume 2024-10-01 17:35:42 +08:00
0423359e16
remove samba shares 2024-09-30 21:00:01 +08:00
7203fc1ed9
refactor 2024-09-20 20:24:55 +08:00
8a999ac546 refactor services 2024-01-21 21:00:06 +08:00
22f00e906d setup borgbackup 2024-01-01 07:23:46 +08:00