I run my homeserver on Ubuntu 22.04 LTS and all software I run is containerized in Docker. What would you recommend for a backup solution for critical folders? I’d like to keep it containerized if possible.
I have around ~100G now, but that’ll keep on increasing. I’d prefer weekly/fortnightly backups.
I run Duplicati now (encrypting my content and storing it in Backblaze B2), but I’ve heard it can be kinda unreliable, especially due to DB corruption. People recommend Duplicacy a lot, but it’s a paid subscription, and I really don’t want a subscription. I might be willing to pay for a one-time purchase, though.
I’ve been looking at Kopia and Borg for now, but I’d be curious about what all of you (undoubtedly more knowledgable than me) think.
I assume you mean sqlite and similar randomly written files end up not self-consistent when sequentially copied in the middle of the write.
Are you using timeshift or snapper ? … if backup from a (at the time read only) snapshot, everything in that snapshot would be consistent and you can use whatever software solution you want.
Personally, I upload whole system snapshots into rclone (sometimes incremental, sometimes everything), but I don’t backup large replaceable media.
I don’t really do much container-wise for backups.
There’s a couple different options you have depending on your needs.
Stop services, dump the data, copy the dump to offsite.
Heavily in-flight data (I.E cannot stop service):
real time replication
filesystem level snapshots
if running under a hypervisor, perform entire disk snapshots
Seeing as how you just run the one server the simplest thing I can think of that would maintain data consistency is to write a bash script, called via cron, to stop containers, backup the data to a tarball, start services, and then rclone the tarball.
for SQL database backups, I typically backup the db dumps, usually on a crontab. Whatever the command is for your db type, there’s usually a “dump” command that can spit out raw SQL and/or csv formatted outputs.
not exactly what i think you wanted but maybe worth considering
also with Django in particular there’s extra JSON format dumping available via django itself in case you are using that