All of my services run on LXC containers. Some files and configs are backed up to NAS and offsite. The containers are snapshotted in their entirety before I do any work on them. A snapshot takes 5 seconds to make and causes no downtime. If I regret a change or mess it up, I can restore the snapshot in under a minute at the cost of some seconds of downtime.
My only non-container machines are my desktop (doesn’t count), my NAS and the Hypervisor. The Hypervisor is very clean and wouldn’t be much fuss to reinstall and the NAS is literally just Debian with NFS. All of these have a regular rsync which runs to backup the important files.
lemmyng@lemmy.ca 2 months ago
The container is reproducible. Container configuration is in version control. That leaves you with the volumes mounted into the container, which you back up like any other disk.
pixxelkick@lemmy.world 2 months ago
Dunno why ppl are down voting you, this us 100% the way.
Architecture as code is amazing, being able to completely wipe your server, re-install fresh, and turn it on and it goes right back to how it was 8s awesome.
GitOps version controlled architecture is easy to maintain, easy to rollback, and easy to modify.
I use k8s for my entire homelab, it has some initial learning curve but once you “get it” and have working configs on github, it becomes so trivial to add more stuff to it, scale it up, etc.