Question.
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.
Dunno why ppl are down voting you, this is 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 is 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.
Relax and Recover for bare metal backup of the OS critical components and directories, and Deja Dup (or Gnome Backup) for user files
I found UrBackup to be very easy to use. Very little nitty-gritty setup and configuration required to get started. I have a feeling those with more experience will (rightly) pick apart if I’m missing something egregiously bad about it, but it worked for my small homelab use cases.
I use proxmox and proxmox backup server (in a vm). I reinstall them both, and re-add lxc and vm and their drives from backup. has already worked once.
important files are additionaly synced to laptop and phone using syncthing.
proxmox backups (which are encrypted) are rcloned to backblaze for offsite backup
borg