Recently I started looking for a new backup system. I wanted a system that was:
- Cloud based
- Open Source
- Didn't use Amazon AWS
The best system I discovered was the open source tool Borg coupled with an account on Rsync.net (which has been around since 2001).
This system is somewhat tricky to get set up so what follows are the steps I took to get everything working:
First you need to get a borg specific account from Rsync.net which is currently at this link: https://rsync.net/products/attic.html
After signing up the first thing you need to do is change your password:
ssh -t firstname.lastname@example.org passwd
Next you'll generate SSH keys and upload them to the Rsync.net server
ssh-keygen -t rsa -b 4096 # hit enter to not save a passphrase scp ~/.ssh/id_rsa.pub email@example.com:.ssh/authorized_keys
You can now check to make sure you don't get prompted for a password when you check how much disk space you've used:
ssh firstname.lastname@example.org quota
Next in your local shell you'll set a remote path to use borg1 at Rsync.net. By default Rsync uses an older version of borg.
Then we will create the repo in your rsync account
borg init -e repokey-blake2 email@example.com:backups
You will now want to export your Borg key and put it somewhere safe (I put it in my password manager):
borg key export firstname.lastname@example.org:backups borg.key
You now can create your first backup with Borg. Borg maintains an index of all the files it seems so even if you change archive names, schedules in the future you won't have to reupload files you backup with this command:
borg create --progress --stats email@example.com:backups::first_backup /Users/username/
You can always check the integrity of your remote backup with this command:
borg check firstname.lastname@example.org:backups
So far Borg has been a great tool and the I'm liking this new setup.