Сам себе Dropbox

May 12, 2014 23:06


Через анонс на 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

Новое

Previous post Next post
Up