Secure Synchronization of DevonThink data

Here, I describe how I synchronize my DevonThink databases via a pseudo-cloud setup across multiple computers in a secure way.

Requirements: DevonThink (Pro), BoxCryptor, and Bittorrent Sync.

When I became a grad-student I was looking for a way to stay organized and came across DevonThink. To date, I use multiple databases: at home for gathering and sorting bills, letters, manuals and such, and at work for organizing research related documents like notes, results, talks, manuscripts, RSS feeds, websites,... I wouldn't want to miss it. I also would like to keep my data synchronized between my computer at home and at work.

Sync

DevonThink has the ability to sync via direct connection, Dropbox and WebDav. However, I'm not a fan of cloud providers, nor do I want to use my precious webspace; although it is possible since I use owncloud anyway. Therefore, BitTorrent Sync (BTSync) - a client for P2P synchronization - turned out to be the perfect fit for me. It uses the established BitTorrent protocol to exchange data between multiple computers, your computers, i.e., it does not use other people's computers to store/buffer your data. In addition, data is encrypted for transfer so that it should be secure.

Encryption

Since sensible - really any - data should never be unencrypted another layer of encryption would be nice. Although DevonThink does encrypt metadata and data stored on remote sync locations as of version 2.7, on your harddrive your data files are not - which is great since you do not need DevonThink to get to your data files! But I want to protect my data anyway, so I decided for Boxcryptor Classic. It conveniently encrypts files on the harddrive, while providing a Volume for accessing those files. This way, only encrypted files are synchronized by BTSync.

These are the necessary steps to set this up. For detailed instructions, please see the respective documentations:

  1. BitTorrent Sync: Setup a directory for sync.
  2. Boxcryptor: Create an encrypted Volume within this directory.
  3. DevonThink Pro: Create a local Sync Storage on the Boxcryptor volume and add your database(s) to it. I usually sync my databases once per hour and when I open and close the programm, repectively.

Do this on all your computers and you are good to go. There is only one little problem: This will only work when all computers are running at the same time.

Sync (cont.)

This is where the "cloud" comes in: The desktop computers at work are running on Linux and are always on. Therefore, I use my Linux workstation as an intermediate node that the other computers access as cloud-like storage. BTSync comes as precompiled binary for pretty much any Linux platform.

Sync Setup: MacOSX@work <--> Linux@work <--> MacOSX@home

Eventually, I would like to use a NAS, running in my home network, instead of the Linux workstations at work.

Both 'sync' and 'encryption' part of this setup are not limited to DevonThink, obviously.