BitTorrent Sync: For Privacy, Speed, and Control

BitTorrent Sync (or “BTS” for short) is a newer player in the space of personal file syncing compared to Dropbox or Google Drive, but it has some power and flexibility that I have not found anywhere else. Today I want to tell you about the first of what I suspect will eventually be a series of posts about “How I Use BTS” over the coming months.

Pricing for Advanced Features

Let’s get some logistics out of the way, BTS can be used for $0, but there are two really good features:

Automatically add folders across all your devices

Selective Sync

that you will probably want. I’ll describe both. The good news is that there’s a demo so you don’t have to commit before you try. If you decided that you do want those two features, there’s a $40 one-time fee (well, there will presumably be an upgrade to an eventual version 3, but you can keep using version 2 if you like.). You can see more on the Pricing page, just be sure to click on “Personal”, as it defaults to showing you “Business” options, which start at at $40/year.

If you just want basic syncing, that’s free. Which is pretty awesome too.

Freedom of Folder Location

Most sync services require that you put sync’d folders in a certain place and put all files to be sync’d in them. For example, if you want to sync something via Dropbox, you have to put it in your Dropbox folder, which has to be named “Dropbox”.

BTS can sync any folder, as long as you can make changes to that folder. They can be named and located anywhere. Want to sync your ~/Music/ folder? OK. ~/Pictures/? Sure. ~/Downloads/? Good idea. And so on.

Just Local? Expect Super-Fast Syncs.

Imagine you have a folder that you want to sync between your iMac and your MacBook. That folder can sync even if they are not on the same network, but if they are (i.e. both are on your home or work LAN) then transfers are fast. How fast? Over 16 Times Faster Than The Cloud according to their tests. Of course, network speeds depend on a number of variables, but it makes sense, right? Rather than having to go iMac ⇄ Dropbox ⇄ MacBook, it can just go iMac ⇄ MacBook. (Yes, I know Dropbox has a feature called LAN sync but it does not seem to always work very well in my experience.)

I normally have 3 Macs on my home LAN (iMac, Mac mini, and MacBook). If I download a file to ~/Downloads/ it syncs to all of them, because chances are good that I will want to install whatever I downloaded on all of them.

I sync my ~/Desktop/ so I never have to wonder what computer I was on when I saved some file to the desktop temporarily to deal with later.

I have another folder called /usr/local/install/ where I save important updates like the 10.11.4 combo installer.

You get the idea.

Here’s Where It Gets Extra Cool: Selective Sync.

In Dropbox, Selective Sync means “if I tell you not to sync a folder, then remove it from this computer.” There’s no indication that there’s a folder missing or what might be in it.

BTS has a much, much better take on selective sync.

You can disconnect a sync folder from a computer, in which case it is just like Dropbox’s selective sync. The difference is that you can easily look down the main BTS window and see which folders are disconnected.

But if you choose Selective Sync, what happens is so much cooler. Each file is represented by an empty “placeholder” file, which ends with some sort of “bts” suffix. For example, a video file would be “.btsv”. However, you can see all of the files that are in the selectively sync’d folder, and if you need one, just double-click it and it will sync to your computer and then be opened.

You can re-organize files in a selective sync folder and have them reorganize in all of the other folders, whether fully or selectively sync’d. You can add files and they will be sync’d to the other computers. You can even remove them from your current computer and they will remain on other devices via a context menu in the Finder to “Remove From This Computer” or “Remove from All Sync’d Computers.

I maintain an archive of every app, and every version that I have downloaded. That archive is currently 129 GB. With Selective Sync, I can have it on my MacBook for a “cost” of only 12 MB. If I want to download an app, just double-click. Simple as that, and I never need to Google the same app twice or try to remember what its website was, or hope that the website still exists, or fill out some dumb web form before I can download an app again.

What To Do with New Folders

New folders which are added to BitTorrent Sync cause a quandary. Should the new folder automatically sync to all other Macs? What if it’s too big? Is that what I really want?

BTS allows me to set a default for each machine, to say what it will do when a new folder is added on another machine. Those options are:

Full-Sync: All new folders will sync automatically to this computer (suitable for desktops with large hard drives)

Selective Sync: Just put placeholders, and I will download any specific files that I want.

Disconnected: Nothing at all will sync. The folder will appear in BTS’ main window, but that is all.

Of course, just because you set a default doesn’t mean you are stuck with it. Each folder can be set to Sync, Selective Sync, or Disconnected. The default is helpful because, for example, I want every new folder to sync with my Mac mini at home and the one I keep at MacMiniColo, and I don’t want to have to manually add it. On the other hand, I don’t want that for my MacBook, because the hard drive is so much smaller, so that I mean on “Selective Sync.” My iMac doesn’t usually need to sync any of these, so I leave that set to “Disconnected”

Even Cooler: Power Exclusions

This is a real power-user feature that requires editing a hidden file, but for me, it’s totally worth it: the ability to exclude files from syncing.

For example, I might want to sync my ~/.ssh/ folder so I can get my known_hosts and config and authorized_keys to be the same on all of my Macs. But I don’t want to sync the id_rsa or id_rsa.pub files. In BTS, this is still possible.

To set this up, add ~/.ssh/ to your BTS, and then have it sync to other Macs using the selective sync feature. Then, edit the ~/.ssh/.sync/IgnoreList file, and add these two lines:

id_rsa
id_rsa.pub

Or, use wildcards:

id_*
*.pub

You will need to repeat that on each computer, as the IgnoreList file does not sync. But once you have done that, then you can change the folder from “Selective Sync” to full sync. Try doing that with Dropbox. Spoiler Alert: you can’t!

“Activity-Specific” Folders

Since I mentioned my iMac, it’s a good time to mention what it does. These days, it is mostly responsible for ripping DVD and Blu-Ray discs. Those rips need to eventually end up on my Synology, but I don’t want to try to save multi-gigabyte files right to the NAS from MakeMKV in case there’s a network error, which would most likely corrupt the file completely.

Instead, I have MakeMKV store all rips to a folder, and I sync that folder to my Synology. When I move those files from the Synology into the proper Plex folders, they are removed from the BTS folder on the iMac, which frees up its disk space so the iMac can have more room to rip future files.

30 Days of Safety Net

Each BTS folder comes with a hidden “archive” folder (which you can easily access via the list of folders.

If a file is deleted on a different computer, the file will appear deleted on the local computer, but will actually be placed into the .sync/Archive/ folder. For example, if you are syncing: /usr/local/foo then the archive folder would be found at /usr/local/foo/.sync/Archive/. Files are kept for 30 days, and versioned, so that if you save a new version over an old version, that old version is also saved for 30 days. That’s a nice bit of safety for a sync service to have. However, this means that sensitive files and large files may be around longer than you realized unless you go into the archive to delete them manually.

Drawbacks to BTS

The main drawback to BitTorrent Sync is that on iOS, everyone uses iCloud or Dropbox, so it’s unlikely your favorite app is going to have BTS support. However, nothing says that you can’t keep using Dropbox and iCloud for those files, and use BTS for everything else. That’s what I have done, and plan to drop my paid Dropbox account when it expires, because I don’t need that much space.

The only other downside is that in order for the sync to work, another computer has to be on. This isn’t a problem for me, as my MacMiniColo is always available, as is my home Mac mini server. Also, you are limited to the bandwidth available to/from your machines to sync, rather than being able to sync to/from Dropbox or iCloud.

On the other hand, you have total control over which servers the files are on, and you have the confidence of knowing that you can remove something and have it really be removed, if you want, and not worry that it might still be out there on some government server.

What Do You Need to Sync?

There are many more use cases for BTS, and many more things it can do. For example, I haven’t even mentioned some cool features like the ability to encrypt folders on disk. But hopefully what I have shared will be enough to get you started.

Need more help? Ready to learn more? There is an active Forum Community available for help and ideas, and I have found BTS’ support staff to be knowledgeable and helpful too.

I definitely recommend adding BitTorrent Sync to your tech tool belt.

Addendum: How to share standard OS X folders

I have had several people ask me privately how to sync standard OS X folders such as ~/Desktop/ and ~/Downloads/.

First, a warning: I do not recommend syncing your ~/Documents/ folder unless you are 100% sure that none of your apps store their information in there in any sort of database format that was not designed for syncing. That’s just asking for trouble. Whatever you do, do not try to sync your ~/Library/. It will not end well for you.

However, syncing ~/Desktop/ and ~/Downloads/ is easily do-able. I’m going to demonstrate with ~/Downloads/ but the procedure is pretty much identical for ~/Desktop.

First, go to your home directory in the Finder, right-/control- click on “Downloads” and then select “Services” and “Share folder with BitTorrent Sync” as shown here:

That will add the “Downloads” folder to your BitTorrent Sync list of folders.

Next, go to your other Mac (or Macs) and repeat these steps:

If the “Downloads” folder was automatically connected, right click on it in the main BitTorrent Sync window and select “Disconnect” at the bottom of the menu. Then click again and choose “Connect” which will show you a window like this:

The key is that you want /Users/luomat/Downloads/ (where “luomat” is your home directory) and not have “BitTorrent Sync” or anything else in the path. So change the “Save To Location” accordingly:

Now, once you have that set, you are ready to click the blue “Connect” button, shown above. It may warn you that the directory is not empty, which is OK.

Here’s a quick video showing the whole thing in action: