My open source and non-AWS backup solution
December 15, 2019ā¢323 words
Recently I started looking for a new backup system. I wanted a system that was:
- Cloud based
- Cross-platform
- 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 user@host.rsync.net 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 user@host.rsync.net:.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 user@host.rsync.net 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.
export BORG_REMOTE_PATH=/usr/local/bin/borg1/borg1
Then we will create the repo in your rsync account
borg init -e repokey-blake2 user@host.rsync.net: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 user@host.rsync.net: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 user@host.rsync.net.rsync.net:backups::first_backup /Users/username/
You can always check the integrity of your remote backup with this command:
borg check user@host.rsync.net.rsync.net:backups
So far Borg has been a great tool and the I'm liking this new setup.