Материал приведен исключительно в ознакомительных целях. Если же вы собираетесь воспроизводить действия, описанные ниже, настоятельно советуем внимательно прочитать статью до конца хотя бы один раз. Редакция 3DNews не несет никакой ответственности за любые возможные последствия.
Dropbox — сервис во всех отношениях примечательный, удобный и с богатым набором функций. Конкуренты от него тоже стараются не отставать, заманивая потенциальных пользователей самыми невероятными плюшками. Дошло до того, что пользователям, которым надо всё и сразу, предлагают отдельные файловые менеджеры, чтобы управляться с этой оравой. Одна беда — все эти сервисы хранят пользовательские данные у себя на серверах, пусть даже частично в некоторых случаях. И тут начинаются старые песни о главном. То «внезапно» выяснится, что файлы, несмотря на все обещания разработчиков, вовсе не защищены от людей в погонах и прочих любопытствующих. То сервис взломают и утянут информацию об учетных записях пользователей. То ещё что-нибудь в таком же духе. В общем, выход один — хранить всё в более-менее надёжном месте. Вариантов реализации, как обычно, несколько.
Можно арендовать кусочек облачного хранилища или просто прикупить хостинг и поднять на нём FTP(S)/SFTP/IMAP/WebDAV-сервер. Синхронизировать данные придётся с помощью утилит вроде CloudBerry или Syncany. Из похожих по своей сути продуктов можно вспомнить про OwnCloud, о котором мы писали почти год назад. За это время он успел изрядно похорошеть. Но вот когда начинаешь искать хоть что-то, что было бы похоже на Dropbox… Начинается тихий ужас, то бишь блеск и нищета Open Source во всей своей красе. FTPbox умудряется падать на ровном месте; DVCS-Autosync и lipsync работают исправно, но только в Linux-системах; IQBox скорее мёртв, чем жив. В общем, при желании вышеперечисленные продукты попробовать можно, но вряд ли они всем понравятся. Тем не менее из всей этой плеяды открытых проектов нашёлся один, достойный более близкого знакомства, — это SparkleShare.
SparkleShare является, пожалуй, наиболее простым в установке и настройке способом получения Dropbox-like-системы на собственном сервере. Уже в который раз мы воспользуемся для примера облачным сервером в Amazon. Вообще-то, SparkleShare использует в качестве back-end систему контроля версий Git, поэтому вы всегда можете воспользоваться бесплатными git-хостингами. Но тогда теряется идея хранения данных в подконтрольном вам окружении. Поэтому рассмотрим установку SparkleShare на собственный сервер под управлением Ubuntu, благо делается это элементарно. Итак, подключаемся к серверу по SSH и выполняем следующие команды. SparkleShare также будет безопасно подключаться по SSH к серверу и синхронизироваться с git-репозиторием. Не забудьте открыть соответствующий порт на сервере и клиентских машинах — по умолчанию это порт 22.
sudo apt-get update sudo apt-get upgrade sudo apt-get install curl sudo curl https://raw.github.com/hbons/Dazzle/master/dazzle.sh --output /usr/bin/dazzle sudo chmod +x /usr/bin/dazzle sudo dazzle setup
Серверную часть пока можно оставить в покое и перейти к установке клиента для Windows, OS X или Linux. Скачайте, установите и запустите клиент SparkleShare. При первом запуске вас попросят ввести имя и e-mail для идентификации и кратенько расскажут о возможностях системы. Кликните по иконке программы в трее и в меню выберите пункт SparkleShare — в библиотеке «Документы» будет создана папка, где будут храниться синхронизируемые файлы.
Там же есть текстовый файл Username’s link code.txt, в котором содержится ключ для авторизации. В консоли сервера запустите ещё одну команду для «привязки» клиента SparkleShare к вашему серверу и полностью скопируйте ваш ключ. Аналогичную процедуру нужно проделать для всех машин, на которые устанавливаются клиенты. Теперь можно создавать «проекты», которые на самом деле будут просто синхронизируемыми папками. Делается это ещё одной командой. В имени папки лучше не использовать нелатинские символы.
sudo dazzle link sudo dazzle create имя_проекта
При добавлении нового проекта на экран будут выведены параметры подключения к нему, которые надо прописать на клиентских машинах. Снова кликаем по иконке клиента SparkleShare в трее и в меню находим Add hosted project… Затем в диалоге выбираем On my own server, а в поля Address и Remote Path копируем данные, полученные при добавлении проекта. Вместо IP-адреса сервера лучше использовать его DynDNS-имя (см. здесь). После добавления папки начнётся её синхронизация. В дальнейшем система будет сама отслеживать изменения файлов в ней и передавать их на другие клиенты. Аналогичным образом надо добавить синхронизируемые папку или папки на других клиентах.
Если же у вас нет собственного сервера, то делать нечего — придётся воспользоваться сторонним git-хостингом. В таком случае лучше всего подходит Bitbucket, так как этот сервис предоставляет бесплатные закрытые репозитории, то есть к файлам внутри них будет доступ только у вас. Регистрация не займёт много времени, к тому же есть поддержка OpenID. После подтверждения учетной записи идём в её настройки. Нас интересует раздел SSH Keys. Файлы Username’s link code.txt на клиентских машинах как раз и содержат необходимые ключи. Надо по очереди добавить их (Add key), оставив в поле Label для каждого из них какую-нибудь текстовую пометку.
Теперь можно создавать всё те же папки-проекты. Для этого идём в меню Repositories → Create repositories. В настройках нового репозитория надо указать любое понравившееся имя в поле Name, включить галочку This is a private repository и выбрать Git в качестве Repository type. Теперь достаточно нажать кнопку Create repository — и через мгновение вас перекинет на страничку только что созданного репозитория.
Осталось добавить его в настройках клиента SparkleShare — кликаем по иконке в трее, выбираем Add hosted project и в списке сервисов переходим к Bitbucket. В поле Remote path указываем путь до проекта — /имя_пользователя/имя_репозитория. Его можно подглядеть в URL странички проекта: https://bitbucket.org/ имя_пользователя/имя_репозитория.
Бесплатные аккаунты Bitbucket не имеют ограничений по количеству репозиториев и занимаемому ими месту. Однако злоупотреблять халявой и закачивать десятки гигабайт информации всё же не стоит. Во-первых, большие объёмы данных тормозят работу. Во-вторых, вас элементарно могут забанить при подозрительной активности. Единственное ограничение бесплатной версии, которое вряд ли будет стеснять большинство пользователей, — это возможность подключения не более чем пяти клиентов.
Конечно, SparkleShare обладает лишь малой долей возможностей Dropbox и обеспечивает только базовую функциональность по хранению и синхронизации файлов. Тем не менее это чуть ли не единственный простой и стабильный способ организовать частный сервис по типу Dropbox и других облачных продуктов. Есть ещё довольно известный проект iFolder, но он, скорее всего, заброшен и к тому же рассчитан на использование сервера с OpenSUSE. В любом случае при использовании каких бы то ни было сервисов удалённой синхронизации, особенно на «чужих» мощностях, не забывайте про шифрование данных. Удачной синхронизации!