This post is a review of Relica Backup, the software I use and depend on to backup (and restore) all of my data across several computers. Relica seems to be relatively unknown on the interwebs; I have not yet come across any user reviews or articles that describe actual experience with the software. So this is my attempt to fix that. I am not associated with the Relica folks, just a satisfied user spreading the word about something I like π
Background
For a few years now, I have been using a self-hosted instance of Seafile on a DigitalOcean droplet (Virtual Private Server) as a file synchronization and backup solution. Yes, pure file sync is not the same as backup, but with Seafile’s versioning and history mechanism, deleted files or earlier versions can be recovered within the history window you set (which can be an indefinite period).
One of the niggling worries with a self-hosted solution is that its stability and reliability will rarely match that of a professionally managed solution. While my Seafile setup has operated flawlessly for the past few years, including smooth upgrades to newer versions, there remains a possibility that the next upgrade or security lapse will result in loss or breach of valuable data. At minimum, things may break in a way that will take precious time to resolve.. time that is rarely available these days. So I have been looking for a pure backup solution, in addition to Seafile, with the following requirements:
Requirements
- Cross-platform: At least Linux and Mac OS
- Incremental, deduplicated cloud backups where data is encrypted before it leaves my devices
- Seamless support for a variety of cloud storage providers as well as local disks and local NAS drives
- Painless setup, no maintenance i.e. set-and-forget style operation, straightforward reporting of when backups and maintenance activities took place (or failed to!)
- Ability to access my data even if the backup software provider or the cloud storage provider go out of business
- Ability to restore without being locked into proprietary software or commercial vendors
Options available
After rooting around the Internet for a number of days I came across Borg, Restic, Duplicacy, Duplicati, Duplicity, CloudBerry (now MSP360), qBackup, urBackup, Arq, rclone and a few others. Of these, borg and restic seemed the most promising contenders in terms of maturity, community, and actual usage – based roughly on the amount of articles, blog posts, reddit threads, and other forums. I chose to go with restic because of the variety of cloud storage backends it supports.
The restic documentation is good. However, I did not want to get into writing custom scripts, scheduling script execution, managing situations where my laptops may be sleeping so scripts did not execute, pruning and maintaining backups, finding ways to get notified when the scripts ran successfully and when they failed etc. So I looked for comprehensive, cross-platform GUI wrappers for restic, but those don’t seem to exist. By sheer luck, I came across Relica. Relica does not advertise itself as a front-end for restic – and it is admittedly a bit simplistic to describe it as a restic GUI – but the fact of the matter is that it does use restic under the hood. Additionally, it supplies everything I was missing in restic, and more!
Relica
Relica is a program that, at its essence, backs up the folders you specify on your computer to a destination. That destination can be an external harddisk plugged into your computer, a NAS on your network, your own cloud storage provider, Relica’s cloud storage, or even your friends computer – or all or any of those mixed and matched as you please. If you choose Relica’s cloud storage, it is a) Cheaper than most other cloud storage providers and b) Your backed up data can be transparently replicated across up to five independent cloud providers. For the latter, your data will be transmitted from your computer only once. The replication to additional clouds is managed by Relica’s server side infrastructure. The backup has all of restic’s features and Relica additionally takes care of matters like scheduling the backups, missed schedules, reports, and backup pruning and maintenance. These would seem trivial to anyone versed in some bash scripting and systemd/supervisord knowledge (whip up some scripts!) but there are nuances that could be overlooked, with potentially damaging results. Also, the Relica software apparently updates itself when the time comes, with no user involvement needed. All backups made with Relica can be restored using either Relica or plain restic. Once set up, you really don’t need to think about it unless you need to do a restore.
Installation
Relica’s installation is simplicity itself! For Mac OS, it’s as straightforward as downloading a .dmg file, dragging the Relica app into the Applications folder, and launching it. For Linux, there is a simple one-liner that you can paste into the command prompt to get Relica up and running.
First run
Relica starts up and displays a web page in your default web browser. The sequence of steps is 1. Log in – create an account if you need to 2. Specify an encryption password. 3. Specify/Create a backup destination 4. Specify folders to be backed up 5. Specify backup frequency and time 6. Done! From there on, you’ll be presented with a dashboard showing the status of backups for that computer – when each backup action was done and whether it was successful or not.
I have been using Relica to backup my Macbook Air to my rsync.net account. For the purpose of making this blog post, I decided to install Relica on an old Dell laptop running Linux and schedule backups to my local NAS. While doing this, I came across some “Oh!” moments, which I will mention as we go along.
-
01 First run
-
02 Add computer
-
03 Specify name of new computer
-
04 Enter (previous) encryption password
-
05 Initial dashboard
-
06 Backups screen
-
07 Destinations screen
-
08 Share storage
-
09 Restore screen
-
10 Restore snapshots
-
11 Create new backup
-
12 Select folder to be backed up
-
13 Select backup destination
-
14 Add new SFTP destination
-
15 Specify backup frequency and time
-
16 First backup is running
Screenshots of Relica
Refer to the number in the caption under each screenshot in the gallery above for the corresponding text below:
- Upon first launch, a simply window is shown with options to Log in or Create a new account. Both are straightforward. Since I already had a Relica account, I chose to Log in
- Interestingly, Relica “knew” that I was already backup up one computer and displayed its name. (So already at this step, Relica seems to be talking to its backend). I clicked on “This is a new computer”
- Specify name of the new computer
- You are asked for the encryption password, since all backups are encrypted. This threw me a bit. Was I supposed to enter a brand new password, which would be used to encrypt the backups of this particular computer? Apparently not. Turns out it was requesting the encryption password I had used for my first computer.
- The initial dashboard. Empty for now, since no backups have been created for this computer
- The Backups screen. Interestingly, Relica showed the backup configured on the other computers on my account.
- The Destinations screen already shows the destination configured on my other computer, my rsync.net account. Interesting!
- Relica also enables you to share the storage on your computer with your friends/family and vice-versa. This screen is used to configure that, but I have not used this feature.
- Backups are pointless unless they can be restored. The Restore screen allows you to restore the entire backup to a local folder; alternatively, you can choose specific folders/files to restore
- Relica also lets you select specific snapshots from your backup history to restore. Very useful in case you want to restore a file to a state as it existed N days ago.
- To create a new backup, you can either specify your home folder (default) or specific files/folders.
- I went ahead and selected a specific folder, rather than my whole home directory
- The next step is to specify a backup destination. This can either be Relica Cloud, or a destination you have used before on another computer, or you can specify a new destination at this point
- Here, I specify a new SFTP destination which is my local NAS
- Next, the frequency and time of the backups is specified
- Done! The first backup starts running. Next backups will happen at the schedule specified or the first opportunity if the computer is off/sleeping at the scheduled time. The dashboard view will update itself with the result of each backup run.
Notes and improvements I’d like to see
Relica pretty much ticks all the boxes I want in a backup software. It is simple, capable, and Just Works! The functioning is user-friendly. The various options I expected to see popped up in the sequence I thought of them, which is great from a user experience point of view. Based on the ease, simplicity, and functionality, I’d have no hesitation recommending Relica to others. That said, there are a few things that would really improve Relica’s usability and experience. I think at least the first two points below need to be implemented to really improve the experience.
- There is no progress shown when a backup is running. The first time I ran a backup to rsync.net, it took about many hours during which I had no clue whether the backup was running, stuck, or when it would be done. That felt so unpleasant, I almost gave up on Relica then and there. I was at work, needed to go home, and did not know how long to continue waiting for the backup of my laptop to finish. Eventually, I just slammed the lid of the laptop shut, went home, and started up the laptop again. It was clear that the backup was not finished. It was equally unclear whether the backup had resumed. I just left the laptop on all night and in the morning, saw that the backup was done. I feel that this option simply should have been present even in the “Minimum Viable Product”
- Once a backup is done, it is not clear how long the backup took, nor are any statistics provided – how many files were uploaded, what the total size was, how much disk space is used on the destination, … nothing. Only ‘Success’ or ‘Fail’ is shown. Some statistics can be dug up by looking at the logs. At least the Relica FAQ tells you how to read the logs on each of Windows, Mac OS, and Linux.
- The logs on Mac OS basically consist of two files: stderr and stdout. Strangely, the stdout file has no timestamps. So it is extremely difficult to figure out which backup run a particular line in the log file is referring to, once multiple backup runs have occurred.
- Relica allows you to add up to ten computers per account. It would have been good to be able to see the backup status of each computer from some central or single location. The Backups screen in the web interface does show backups configured for other computers, but as you can see in screenshot 06, the Last Run and Last Status fields are empty. Missing functionality? Bug? Since Relica clearly talks to its backend, it would be good to be able to log in to the Relica website and get an overview of the backup status of each computer on your account. At the moment, it seems that you need to log in to each of your computers, fire up the Relica web interface, and then you’ll see the backup status.
- It is not clear what account data is stored on the local computer and what is stored in the Relica backend. Specifically, the SFTP destination I configured when setting up Relica on my first computer showed up on my second computer. That’s nice for usability, but my first thought was, “Welp! Relica is storing my rsync.net account password on their servers. Hopefully, not in plain text fingers crossed” Update: The Relica folks have clarified: “Your cloud credentials are encrypted using your account’s encryption password before leaving your computer; i.e. we never see them in plaintext nor in any ciphertext that we ourselves can decrypt: only your computer(s) can access the credentials.”
- Relica seems to use one and the same encryption password across all computers. It would have been good to have a per computer encryption password option.
- Relica can be completely neglected until it is time to restore. In the first few days of using it, I’d religiously check the Relica dashboard each day to see if the backup was run and whether it was successful. Over time, I stopped doing that. It seems to work. The few errors I did see were related to my cloud storage being inaccessible. They were resolved on subsequent runs. Given how the software effectively encourages users to ignore it, it’d be good to have a feature where if a failure has occurred, the user is notified in an obvious way.. maybe through an email.
- Some sort of continuous file monitoring and backup for specific folders would be nice, in addition to scheduled backups.
- When creating a new backup and selecting its Destination, the ‘Relica Cloud’ destination with 2x redundancy is enabled by default (see screenshot 13 above). I didn’t notice that initially and now it seems that Relica Cloud has been added to my destinations even though the new backup is specified to go only to my own cloud destination. I can’t delete Relica Cloud destination for 5 more days, it seems. Hopefully, I won’t get charged for it.
- The Relica cloud is a really cool feature. At the same time, I felt uncertain about relying on it. What if Relica disappeared overnight, taking their cloud with them? My backups would be gone. My feeling is that Relica probably uses 3rd party cloud providers. Would be good to have the option to log in to those providers directly and fetch my backed up data if necessary. Meanwhile, I chose to bring my own cloud. True, my cloud provider could vanish overnight as well, but what are the chances that rsync.net would do that, compared with a (still) relatively unknown company?
- Relica uses restic under the hood and restic integrates with rclone to support a huge number of cloud storage backends. Yet, not all of those backends are supported by Relica. In particular, Relica is missing support for box.com where I have an account and which is supported by rclone.
- By using my own cloud, even if Relica disappears overnight and the Relica software on my computer evaporates, I can still restore my backups using restic. This is very reassuring!
All in all, Relica is extremely promising. At the moment, it seems Relica is run by just two guys – maybe geeks in a basement? Nothing against that, but it initially made me skeptical of trusting precious backups to them. However, they’ve done a good job of making sure that the backups will remain accessible if I bring my own cloud and use restic. If point 10 above is addressed, I’d feel super happy to use Relica cloud as well. To be fair, I mentioned this to the Relica folks and they basically said, “That’s not standard practice, but we could get you direct access to our cloud providers if you pay $$.” I didn’t want to fork out $$ just yet, so didn’t opt for that. Also, the support response time may be a bit hit-and-miss. I haven’t contacted them enough to get a good sense of it. A couple of my queries were answered the same day. One query took multiple days (to the point I thought they may have forgotten about it) –> That was the one requesting direct access to the cloud providers Relica Cloud uses. At least one of the Relica guys, “mholt”, seems active on the restic forums and it seems he has made some contributions to restic as well. So these guys are doing the Right Thing and not just profiting off restic without giving anything back. The relica website is very nice and the documentation is good!
The option to share your computer storage with friends is pretty cool as well. I haven’t tried it yet, since I don’t have any friends (just kidding :).
Given how well Relica addresses my backup needs, I am content to use and recommend Relica to others. I have signed up for a yearly subscription, just to support the folks developing it.