The Cloud, despite the hype, and all suggestions to the contrary, might not be the most secure place to keep your data. In fact, it's less than ideal when it comes to security and privacy, as evidenced by the exploitability of both CPUs and RAM, which mostly affect shared computing resources, such as virtual hosts and cloud providers. Still, cloud storage services are popular among end users and consumers off the street, mainly due to the convenience they offer. You can access your files anywhere anytime, all you need is an (often free) account and internet connection. Unless, of course, you think privacy and data security is more important than convenience.
Imagine, if you will, a world where you can access your data on multiple devices, and keep it synchronised across them, without needing to cloud your judgement (bad pun, I know) and upload them to potentially unsafe 3rd party servers. What if I told you, there is a simple, effective, and fast solution to do just this for real? It's called Resilio Sync (formerly BitTorrent Sync). What this software does is effectively synchronising your files across multiple devices, in a peer-to-peer fashion without using a server, much the same way BitTorrent is used to "download" stuff.
Regardless of what your experiences about downloading large files via BitTorrent are, Resilio Sync is also super-fast. There is a short article on the Resilio website explaining how it works, and why its faster than a "traditional" client-server setup, but suffice to say, P2P syncing requires fewer steps for all pieces of information to reach all endpoints. Sync is also safe: Your data travels encrypted between the peers and only gets decrypted at the endpoints (not on any remote server.)
The downside? Both the sender (probably the device where you've added/deleted/modified the file(s)), and the receiver (the device you are syncing to) must be on and connected at the same time when you feel like syncing. A small price to pay for privacy.
Image credit: Resilio-Sync animation. See the original move here.
OK, there is more than one downside. There always is. Although these are minor issues, they are worth knowing before you make up your mind to aim for "cloudlessness" to be more than your preference of the evening sky.
One legitimate concern users might have about Resilio, is its closed source-code. This is, of course, not ideal. In an ideal world, all software would be open source, and politicians would never lie, etc., but unfortunately, this is not the case. Running a small piece of proprietary software to synchronise their files might not be everyone's cup of tea. Naturally, you would stay away from just about all cloud services as well if this was an issue for you, as none of the major players seems to run any open source services either.
But you know what's worse than running closed-source software? Other people running closed source software, and you handing all your data over to them, willingly and voluntarily. So if you care about openness, Resilio Sync might not be right for you, but if you are more flexible, it can still be a lesser evil.
For a possible open source replacement, keep an eye on the Librevault and the PeerWasp projects. While still in the early stages of development (Librevault was in alpha, while PeerWasp in a semi-closed (need to apply), Window$ only beta at the time of writing), both show a lot of promise.
More info to follow as and when it becomes available, so stay tuned.
No easy backups while away
A more practical consideration is that of cloud-backups. If your main use of the cloud is to keep backups of your stuff safely, Resilio Sync is not necessarily the simplest solution, although this is far from hopeless. Resilio is still capable of doing backups, by way of replication, but only if another device is currently connected and syncing. It can be anywhere, and you can sync over the internet as well, but one cannot be expected to leave a home computer running all the time, besides it's probably a good idea to use Sync on local networks only (more on that later).
However, if you happen to have access to a server, or a NAS, or any device that is always connected, installing Sync on it can actually serve as a most convenient backup solution. Some interesting ideas and use-cases are also detailed on the Resilio blog.
With a small investment and a little tinkering, you can turn Resilio Sync into a home-baked pseudo-cloud-backup solution. All you need is any low-powered single-board computer capable of running Linux, that you don't mind having on 24/7, and a large enough storage device attached to it. If you install Resilio on the board and sync it up with all your devices, you could rest assured all your data will always be in sync wherever you are. It's also faster, safer, and cheaper than a premium cloud storage provider, and definitely better than free ones.
If you are only looking for "always accessible" content, this should not be an issue. Syncing is automatic and works across a variety of OSes and devices, so as soon as you modify a file, it would almost instantly be synchronised with all accessible hardware. So e.g. if you modify a file on your laptop, and you later want to view it on your smart-phone, you can, as long as the phone was on and able to sync. Then you modify the file while away, and as you get home, the laptop will sync itself automatically, as soon as you turn it on. See? Magic.
Installing Sync on Linux
The official website has good, clear instructions about installation and setup for various scenarios, the essence of which for a Debian/systemd based system boils down to:
- Add sources with
echo "deb http://linux-packages.resilio.com/resilio-sync/deb resilio-sync non-free" | tee /etc/apt/sources.list.d/resilio-sync.list
- Get the public key with
wget -qO - https://linux-packages.resilio.com/resilio-sync/key.asc | sudo apt-key add -
- Update sources and install Resilio Sync with
sudo apt update sudo apt install resilio-sync
- Enable sync service automatic startup as user
sudo systemctl enable resilio-sync
Or as your regular user (which is a good idea to avoid file permission issues), first modifying the
WantedBydirective of the service, by opening the file
sudo nano /usr/lib/systemd/user/resilio-sync.service
...changing the following line (under the
...then enabling it for the user, and starting the service:
systemctl --user enable resilio-sync systemctl --user start resilio-sync
and you're good to go.
Of course, there are other types of OSes, with different init systems, package managers, etc. More detailed instructions for other scenarios can be found on the Resilio Sync website.
One thing you need to keep in mind is that you should not just download a binary and run it from a script. It would work, of course, but not ideally. One problem you can encounter is Sync not quitting properly when you shut down your machine, which can lead to corruption of Sync's status (but not your data). This means that the next time you start up the machine, Sync will have "forgotten" about your files, your linked devices, everything, and you'll have to manually add everything again. This is not only annoying but also makes Sync practically useless. The easiest way to avoid this is, as mentioned above, not just running the binary, but installing sync properly as a service.
How to use
Sync should now be set to autostart with your PC. To access its GUI admin interface, open a browser and navigate to:
When you access the admin interface for the first time, you will be asked to create a login account. This is not a Sync account, the credentials you provide here will only be used to access the GUI admin interface on the particular machine you're using. The next time you log in, you will be asked to provide them again. (You will need to repeat this step for every new device you install Sync on. The credentials don't have to match, you can have a different username/password on each device.)
Just fill out the details and click Continue.
Next, you will be asked to create an identity for sharing. This is how your device will appear to all the peers it shares folders with. You cannot change this later, so choose carefully.
Just before you thought you were in, you will need to actually provide your credentials to log in. Do that and you're good to go.
At first, you will see nothing here.
But if you have Sync running on other devices, you can link those up from here, or you can add folders from your machine to sync with those devices
Adding a folder to sync
To add a folder, click on the plus sign at the upper left corner, and select the obvious choice from the menu
When you add a new folder, the Share pop-up will automatically appear, allowing you to share the folder with other devices. The default option is to share a link to the folder. Links have the advantage that they can be set expire, and to require new peer approval (by you), and the number of times they can be used; with the disadvantage of requiring Resilio's servers to connect them. If you are planning to Sync over the internet, and especially with other people, you might be better off with sharing a link. (If you want to sync over local LAN only, skip to the syncing with a key bit).
The New peers must be approved and Link expiry checkboxes are checked by default.
You have two important options here: Share a read-only version or a read-write version. This cannot be changed later, so choose carefully.
A possibly better solution if you plan to keep your data private by disallowing internet access (more on that soon) is to share just the keys.
There is a third option as well, which is the most convenient for mobile devices: Using a QR code. You can scan it with your phone's camera, in the sync app, the rest is magic
Making Sync more private
By default, Sync uses internet relay and tracker servers so that you can sync up your stuff even from different networks. If you don't care about syncing over the internet, or do not trust Resilio, or anyone else on the web to keep your data secure, you can tell Sync to only use your LAN network, although this needs a little setting up first.
For this, you will need to disable the internet relay and tracker servers in every folder's share settings
...then open advanced settings...
...and disable relay and tracker there as well
You will also need to set up your router. The following instruction steps are taken from the Resilio help pages:
If peers are located in LAN, Sync can do without tracker and relays, provided peers are discovered through broadcast packets. Peer discovery in LAN:
- Multicast UDP, 18.104.22.168 over port 3838
- Broadcasts, 192.168.1.255
If broadcasts are not configured, Sync will be using tracker [sic] to discover other peers.
To ease port mapping, automatic port mapping over UPnP and NAT-PMP can be configured in router
- UDP, multicast to 22.214.171.124 port 1900
- UDP, unicast to default gateway port 5351
The actual steps to do this will vary from router to router, so you'd probably best refer to your home router's documentation.
Syncing the folder to another device
When you've added all the folders you wanted and installed Sync on the other device, either scan the QR code if on mobile or proceed as detailed below.
First, you need to fire up the Sync GUI in the browser of the other device, register, and log in. The steps will be the same as you've taken before on the original device (see above) unless it's a different OS (in which case you need to find the instructions on Resilio's help pages).
Once you're in, just press the big plus sign, then select the bottom-most option, Enter a key or link.
Then just copy/paste the link or sync key you have.
Now you will be asked where you want to save the synced folder. Select a convenient location, and you're done. Your folders will begin syncing almost immediately. You can add as many folders as you have.
Of course, you can share a Sync key or link with anyone. Resilio Sync can very easily turn into a collaboration suite, where multiple recipients can work on the same folders, each having their local copies and syncing as convenient.
Resilio does offer some paid options and business solutions for larger scale collaboration, but I'm not really in the habit of promoting paid stuff for free, hence no real mention of these.
When sync does not feel the pulse of audio...
It can happen that you run into problems with
pulseaudio on certain setups, as sync can eat up your inotify watches. If you experience audio issues (either no sound or just the tray indicator not showing any devices), try in a terminal
If you get an error similar to this...
You apparently ran out of inotify watches, probably because Tracker/Beagle took them all away. I wished people would do their homework first and fix inotify before using it for watching whole directory trees which is something the current inotify is certainly not useful for. Please make sure to drop the Tracker/Beagle guys a line complaining about their broken use of inotify.
...you probably have the same problem. One easy solution is to increase the maximum number of user watchers. To do that permanently, run the following command:
sudo echo fs.inotify.max_user_watches=100000 >> /etc/sysctl.d/99-sysctl.conf
The number 100000 might seem excessive, but as it came from this super-detailed PulseAudio troubleshooting article on the Arch Wiki, you might as well trust it to be safe.
Enjoy secure file syncing
And that's basically just about it. Your files will now always be synchronised whenever the linked devices are on. Whether your data reaches the internet at all, is up to how you set things up, but even if it does, it will never be saved or stored outside of your devices (and anyone saving and storing them outside of your peers would not be able to do an awful lot with them, as they are encrypted while in transit).
It's definitely a lot safer, if a little less convenient, than using just about any cloud service while being almost exponentially faster as well. The one downside, Resilio not being open-source cannot be a real issue when compared to most consumer cloud storage services, and until some serious open source competitors reach a level of maturity where they are ready for day-to-day use, it might just be the best alternative we have.
Happy syncing! :)
Featured image credit: Compound of hero images from Resilio.com
Liked what you've read? Sharing this article on your favourite social medium helps a lot with discoverability. You know, sharing is caring.
Got something to add? Comment is free, so please leave your thoughts below, and don't forget to "like"/recommend it on Disqus.