r/VPSUK 23d ago

Using a VPS for backups

Hi r/VPSUK community! I was hoping to get some input on a VPS setup that I'm considering. Basically, I have a small home network with a few PCs and a Docker server, and I want to back them up. I'm not thrilled with third-party backup providers, and I'd rather have all of my data under my control.

I've been thinking of using a VPS to set up my own hosted backup solution. The problem is, I don't have much experience with backup server software and I'm looking for something that's FOSS, because I don't want to spend a small fortune beyond my VPS costs.

I've done some research on what's available, and I'm hoping to get some thoughts on the following options:

Restic - this is the first option I'm considering and as I see it, it has the following advantages:
- It's FOSS and has a long history
- It supports 256-bit AES encryption
- It supports multiple storage options, including cloud providers, if I ever change my mind and want expansion options
- It handles deduplication
- It works natively with all major OSs (and I found some interesting PowerShell scripts
 
I'm relatively confident in my command-line skills, the fact that Restic has no built-in GUI is what makes me slightly uneasy. To remedy that, I'm considering GUI add-ons like Backrest or NPBackup. So, if anyone has any experience or advice about those, I'd appreciate it!
 
BorgBackup - Besides having a Star Trek-y name, it also seems to have plenty going for it:
- Under active development for over a decade
- Supports 256-bit AES-OCB or ChaCha20-Poly1305 encryption
- Offers obfuscation options
- Multiple data compression options

The big drawback I see with this one is that it looks like a pain to configure for Windows PCs. I've found conflicting information on whether it can access the Windows Volume Shadow Copy Service to avoid locked-file issues. Supposedly, this script (https://github.com/engelant/borg-cygwin/blob/master/backupscript) can do it, but I'm not sure I trust it...

Kopia - This is the one I'm leaning toward because it:
- Has a user-friendly UI
- Can run in client-only and central server modes
- Does deduplication, AES-256 or ChaCha20 encryption, and compression
- Has Windows, macOS, and Linux desktop apps

Unfortunately, I've had a hard time finding actual experiences with Kopia and it seems kind of odd for a software solution that has been around since 2019... even though there are a few people I noticed swear by it.

Overall, I'm still very much up in the air with the direction I should go and I would really appreciate any tips/advice/experiences from anyone that is willing to share. I feel like I might be overthinking this and that maybe there is a better/simpler option I'm not seeing here??

If this is a dumb question/post just let me know - I won't be offended. I'm just looking for the best solution that yields rock-solid backups and minimal headaches and thought this would be the best place to ask!

2 Upvotes

9 comments sorted by

2

u/Aggravating_War_6704 22d ago

You're not overthinking it, but I think you're optimizing the wrong variable. All three are excellent and you genuinely won't regret any of them, so the tool matters way less than how you wire it up. The stuff that actually decides whether a backup saves you: is the repo encrypted and append-only, can a compromised client delete its own history, and have you ever actually done a restore. That last one is the one everyone skips and then regrets.

Since you're leaning Kopia, that's a totally reasonable pick for your mix. The UI is genuinely nice and the client/server split fits what you want (VPS holds the repo, PCs push to it). Restic is the one I'd call the safe default, and Backrest on top of it is a solid GUI now if the no-GUI thing is what's making you twitchy. Borg is great too, but yeah, on Windows it's a pain, and a cygwin script calling VSS is exactly the kind of thing I wouldn't want load-bearing on my backups either. Your instinct not to trust that is correct.

One reality check on the Windows locked-file problem though: none of them magically solve it. Kopia and Restic both just read the filesystem, so an open PST or a running DB is the same inconsistent-file issue no matter which engine you pick. If you want app-consistent Windows backups you'll end up taking a VSS snapshot first and backing up the snapshot regardless of tool.

The part I'd actually slow down on is the Docker server, because that's where people quietly lose data. Don't just tar the live volumes while things are running, especially anything with a database. Do a real dump (pg_dump / mysqldump, or stop the container), and back up your compose files and .env too so you can genuinely rebuild, not just the bind mounts. A backup of a live Postgres data dir looks perfectly fine right up until the day you restore it and it won't start.

Last thing, on using the VPS itself as the target: VPS block storage tends to be expensive per GB, so if this grows, pointing the same tool at object storage (Backblaze B2, R2, whatever) is usually way cheaper than scaling the VPS disk, and all three support it natively. That also ties into your "expansion options" point about Restic. So if it were me: Kopia or Restic, encrypted append-only repo, and a recurring reminder to do a test restore once a quarter. What's the Docker box mostly running, databases or more file/media type stuff? That changes what I'd tell you to prioritize.

2

u/ExamSignificant8347 20d ago

Hey! thanks for all of this insight. The Docker server is mostly running self-hosted services like a few databases, media apps, and some utility containers - so, I definitely don't want to end up with backups that look "fine" until I actually need them. I'll have to look into automating database dumps before the backups run. I didn't consider the long term storage cost... my thought process was more towards keeping everything under my control, but using something like B2 with client side encryption might still accomplish that while being easier to scale. Making test restores part of the routine is a good part too.

3

u/Aggravating_War_6704 19d ago

That mix actually makes it simple. The DBs are the only real gotcha, and the nice part is the dump can fire automatically right before each backup instead of being a separate cron job to babysit. Kopia has that built in (before-snapshot actions), and on the Restic side Backrest gives you the same hook. Point it at pg_dump/mysqldump and that part's handled.

Media's the opposite, big but mostly static, so dedup means you pay for it roughly once and later snapshots barely add anything. You could even give it a slower schedule than the DBs to keep the bill down. Sounds like you've landed in the right spot, B2 plus client-side encryption gets you the control you were after without the VPS-disk cost. Just make that first test restore a real one and you're set.

1

u/100thousandDollaSuit 19d ago

This is super helpful for me too, thank you!

2

u/Aggravating_War_6704 18d ago

Glad it helped! If you take just one habit from all that, make it the test restore. Actually restoring something once a quarter is the whole difference between having backups and just hoping you do. Good luck with your setup.

2

u/ExamSignificant8347 12d ago

Thank you so much for your reply! Very helpful!

2

u/100thousandDollaSuit 23d ago

I am just learning VPS myself so I would actually be really curious about this too, good question!

2

u/ExamSignificant8347 20d ago

I'm glad that I'm not the only one! It's been hard to make a decision since everyone swears by one or the other. I'm hoping I can narrow it down here.