Через
анонс на Hacker News нашел относительно простую в обращении утилитку
Syncthing, которая позволяет воссоздать базовый функционал Dropbox - синхронизацию конкретной папки на своем сервере со своими ключами для шифрования.
Код (на языке Go)
лежит в открытом доступе на GitHub, клиенты для каждой из операционных систем
доступны там же. После установки syncthing каждый из хостов получает уникальный ключ, двухсторонний обмен которыми и создает канал для синхронизации папки. Под Windows это по умолчанию C:\users\\Sync, под линуксом это ~/Sync.
Для VPS я использую
Digital Ocean (512 МБ оперативки, 20 ГБ дискового пространства, терабайт траффика за $5 в месяц), из дешевых еще есть
Atlantic.net или
Ubiquity, под сервер можно приспособить и домашний компьютер с большим жестким диском, если он всегда находится в онлайне.
Интерфейс для обмена ключами пока существует только в Web-версии, которая запускается сугубо локально, поэтому на VPS-сервере придется (и в документации этот момент не очень подробно описан)
- разархивировать нужную версию syncthing в отдельную папку (пакетов для apt-get или yum у них еще нет)
- запустить linux-клиент, чтобы дать ему возможность создать конфигурационный файл
- в конфигурационном файле по адресу ~/.config/syncthing/config.xml найти строку 127.0.0.1:8080 и временно заменить ее на :8080
- открыть порт 8080 через /sbin/iptables, если доступ к нему закрыт
- перезапустить клиент ./syncthing дабы тот считал новые конфигурационные данные
- добавить нужные ключи на обоих клиентах, между которыми требуется синхронизация, по адресу http://123.456.789.012:8080, где 123.456.789.012 - IP сервера
- конфигурационный файл ~/.config/syncthing/config.xml вернуть в изначальное положение, порт 8080 при необходимости снова закрыть от внешнего доступа
- перезапустить клиент ./syncthing дабы тот считал новые конфигурационные данные
[VE4LG] 2014/05/13 05:59:05 INFO: syncthing v0.8.5 (go1.2.2 linux-amd64) jb@jborg-mbp 2014-05-11T18:46:09Z
[VE4LG] 2014/05/13 05:59:05 INFO: My ID: VE4LGU2XUQQQQQQQQQQQWWWWWWWWEEEEEEEEERRRRRRRRRRRRTTTTTTTTTTTYYYYYYYYY
[VE4LG] 2014/05/13 05:59:05 INFO: Starting web GUI on http://127.0.0.1:8080/
[VE4LG] 2014/05/13 05:59:05 INFO: Populating repository index
[VE4LG] 2014/05/13 05:59:08 INFO: No UPnP IGD device found, no port mapping created (read udp4 0.0.0.0:41696: i/o timeout)
[VE4LG] 2014/05/13 05:59:08 INFO: Sending local discovery announcements
[VE4LG] 2014/05/13 05:59:08 INFO: Sending global discovery announcements
[VE4LG] 2014/05/13 05:59:08 OK: Ready to synchronize default (read-write)
Статус канала для синхронизации можно всегда проверить в Web-интерфейсе на локальной машине по адресу
http://127.0.0.1:8080
http://moskalyuk.name/4645