Syncthing

Dec 21, 2015 16:01

Вчера собрал себе очередной браузер, и внезапно осознал что мне было бы крайне удобно синхронизировать некие его списки между всеми своими компьютерами. Подумав еще немного, решил что неплохо было бы синхронизировать еще и профиль Miranda NG и базу KeePass. Задался целью, тксзть.
Начал искать, чем бы вообще можно было бы синхронизировать. Начальное ТЗ:
 - Self-hosted. Да, я параноик, и все моя инфа должна храниться на моих серверах.
 - Должна шифровать передаваемые данные.
 - Автоматическая синхронизация в фоне.
 - Кросплатформенность
 - Open Source. Если код закрыт, лучше считать что безопасности нет, чем тешить себя иллюзиями.

Первоначальный поиск получился достаточно грустным, поскольку многие бесплатные программы... удручают. В ходе исследований наткнулся на BitTorrentSync, но он не прошел через фильтр - платный, да еще и данные проходят фиг знает где. Начал искать свободную альтернативу... и нашел ее!
Итак, SyncThing.
Преимущества, которые он имеет помимо моих хотелок.
1. P2P-обмен данными. Никаких промежуточных серверов. Скачивание данных может идти сразу с нескольких клиентов.
2. Собственный протокол (тоже открытый), предполагающий обмен не файлами, а блоками. Количество данных которые необходимо передавать при синхронизации имеющихся данных резко уменьшается.
3. Все-все-все - в одном 15 мегабайтном файле.
4. Управление через веб-интерфейс. Который, страшно сказать ПРОДУМАН И УДОБЕН.
5. Отдельно распространяется сервер глобального обнаружения (установили куда-нибудь, и все ваши устройства всегда найдут друг друга). Для этого же можно пользоваться серверами, которые предоставляет сам SyncThing.
6. Многоязычный.
Выглядит все это добро как один файлик. Двойной щелчок по  нему - и запускается вебинтерфейс, в котором нужно выбрать какие папки синхронизировать.
Аналогично на другом компьютере запускаем такой же файлик, создаем папку (с тем же ID) которую будем синхронизировать. Далее получаем (Действия - Показать ID) и скармливаем его другому клиенту. Через некоторое время клиенты находят друг друга и на том компьютере, чей ID вы передали появится сообщение: к вам жаждет подключиться такой-то клиент. Добавлять?
Если решите добавить - он появится, соединение установится и начнется синхронизация. Крайне удобно.

Есть и недостатки.
1й - хотелось бы иметь "все в одном", да еще и портативное. Чтобы не висело окошко комадной строки в браузер не надо было нырять почем зря. Решение: использовать проект SyncTrayzor. Это портабельный лаунчер, простой браузер и лог-вьювер для SyncThing. Иконка в трее, быстрый доступ к админке - прелесть. Жаль лишь, что ему нужно как минимум 4.5 NetFramework.
2й - хоть эту штуку использует куча народу по всему миру (включая меня), номер версии 0.12 немного напрягает. Я бы пока не рекомендовал хранить что-то очень важное, к чему у вас нет бэкапа.
3й - разработчики говорят, что они еще будут много чего менять по ходу пьесы, так что до версии 1 надо быть готовым откликаться на изменения в программе.
4й - Если одновременно установить сервер обнаружения и SyncThing на одну и ту же машину, то работать будет только что-то одно. Либо SyncThing на этой машине на все другие надо вносить по статическому адресу, либо разносить сервер обнаружения и SyncThing по разным IP.

self-hosted, IT-сфера

Previous post Next post
Up