Я давно искал замену Dropbox на что-то, чтобы можно было полностью управлять сервером, размер хранилища ограничивался бы только размером диска на сервере и при этом клиент должен быть интуитивно понятным, запускаться под Linux/MacOS/Windows, уметь синхронизировать директорию на локальном компьютере без необходимости монтирование каких либо удаленных источников, т.е. иметь доступ к файлам в оффлайне. Ниже я расскажу о своем опыте использования ownCloud и Seafile.
ownCloud
Наиболее подходящий по параметрам продукт, который мне попался, был ownCloud. Описание было многообещающим. Клиент есть под все популярные ОС, возможность скачать и установить свой сервер, приятный веб интерфейс. К тому же его пишут люди имеющие отношение к KDE, значит качество должно быть на уровне.
Правда ownCloud имел кучу дополнительных, не нужных мне сервисов, таких как: галерея, проигрыватель mp3, календарь, контакты и многое другое. Но зато умел авторизовывать пользователей с помощью LDAP.
Сервер
Что ж, попробуем. Были поставлены nginx, php-fpm, PostgreSQL, скачан и настроен ownCloud. Логинюсь под админом, настраиваю LDAP, пробую залогиниться под LDAP пользователем и… сразу получаю 500-ю ошибку. После долгих поисков было выяснено, что связка LDAP+PostgreSQL в ownCloud работает очень плохо, да и судя по всему поддержка PostgreSQL вообще очень плохо реализована, т.к. разработчики пытаются одни и те же запросы использовать на разных типах DB. Что ж, PostgreSQL был заменен на MySQL и LDAP заработал как и планировалось. Правда через стандартный порт LDAP 389 он не захотел работать, заработал только через порт Gloval Catalog 3268.
Клиент
Настало время попробовать клиента. Скачиваю, устанавливаю, запускаю, подключаюсь к серверу, указываю где будет лежать директория для синхронизации. Пока все хорошо. Закидываю файлы в директорию. Они заливаются на сервер. Захожу в веб, расшариваю директорию для других пользователей и… ничего. Они ее не видят. Даже через веб-интерфейс. После опять же долгих поисков был найден workaroung, говоря по русски «костыль». В директории clientsync на сервере, каждому пользователю, которому нужно открыть доступ, делается симлинк на «главную» директорию пользователя, который открывает доступ к своим файлам. Потом еще было множество экспериментов, в процессе которых директория clientsync то появлялась в веб-интерфейсе, то нет, были найдены багрепорты, где говорилось о проблемах с обновлением кеша в базе, но готового «правильного» решения я не нашел.
Так же с клиентом под линукс обнаружился довольно неприятный баг. После длительной работы он открывал и не закрывал множество файлов /dev/urandom, переставая работать с сообщением «Too many open files».
В начале я пытался создавать багрепорты, использовать версию из master, но потом понял, что критические для меня проблемы, такие как расшаривание директорий, основное для чего я собирался использовать ownCloud, решаются крайне медленно. Так ownCloud постепенно был забыл и заброшен.
Seafile
Но буквально несколько дней назад на одном из новостных сайтов я увидел новость о выходе версии 1.3 некой системы Seafile, которая так же делает попытку заменить Dropbox. Позже оказалось, что до версии 1.3 она была только на китайском языке и поэтому не была широко известна.
Описание показалось мне заманчивым и я решил попробовать.
Сервер
Сервер для хранилища уже был, так что оставалось только поставить Seafile. Скачал, распаковал. По привычке создал новую базу, запустил инсталлятор. Он ругнулся на нехватку пары пакетов. Установил пакеты, запустил инсталятор заново. Ответил буквально на несколько вопросов, таких как, имя сервера, URL, порты, пути, логин и пароль админа и все, сервер установлен. Никакой базы не надо (на данный момент Seafile использует sqlite, позже планируется поддержка других баз). При желании даже веб сервер не нужен, Seafile имеет свой встроенный веб сервер. Но у меня уже имелся настроенный nginx с валидным ssl сертификатом, так что мне оставалось только настроить его на проксирование запросов к Seafile. Позже я нашел готовый, с немного другим принципом конфиг ngnix для Seafile, но «работает — не трогай».
Логинимся на сервер, видим сообщение об отсутствии библиотек и краткую инструкцию как их добавить и как синхронизировать с компьютером
Добавляем «библиотеку». Можно указать пароль для ее шифрования, но я пока не тестировал это
И так у нас есть библиотека в которой будут храниться файлы с клиентов. Как видно с русским языком проблем нет. Забегая наперед скажу, что нет их с файлами на кириллице.
Библиотеку можно: скачать (добавить в клиента), расшарить или удалить.
Клиент
Теперь настала очередь клиента. Скачал deb пакет для своего kubuntu 12.10, установил и по привычке хотел запустить его из консоли, но команда 'seafile' лишь выводила пример ее использование. Позже я нашел, что запускать нужно 'seafile-applet'. Либо через меню KDE, там он называется Seafile с оранжевеньким логотипом.
И так клиент запустился. В KDE он встроился в трей с непонятной иконкой, точнее без нее, и меню выглядит несколько не понятно:
Возвращаемся на наш сервер, щелкаем на Dowload рядом с библиотекой. Открывается, в зависимости от браузера, новое окно или вкладка с адресом localhost:13420/repo/download/ и далее служебной информация и страница со следующим содержимым:
Можно принять пусть по умолчанию либо указать свой. Можно так же указать уже имеющуюся директорию с данными, щелкнув на «sync with an existing folder». В этом случае придется вручную ввести, или скопировать/вставить, полный путь к директории, кнопки Browse/Обзор нет. Файлы в директории будут объедены с файлами в библиотеке, если таковые имеются.
И все! Seafile начнет автоматическую синхронизацию и отправку либо загрузку файлов с/на сервер.
Расшаривание библиотеки так же никакой сложности не представляет. Можно расшарить как отдельному пользователю, предварительно создав для него аккаунт, так и группе пользователей. Расшаренные библиотеки для группы можно посмотреть щелкнув на имя группы справа внизу под «My Groups». В следующих версиях они будут так же отображаться в «My Home -> Shared». Можно дать доступ как на чтение-запись, так и только на чтение. При выборе последнего варианта добавленные пользователем файлы просто не будут загружаться в библиотеку. Измененные на стороне пользователя файлы, скорее всего, будут переписаны файлами с сервера, но я пока не проверял.
Пользователю лишь остается скачать и установить клиента, зайти на сервер и скачать библиотеку. Все очень просто и после первого раза становиться интуитивно понятно.
Итоги
На данный момент Seafile для меня выглядит как наиболее подходящая замена Dropbox. От внедрения в компании удерживает отсутствие LDAP, но для личного пользование, при наличии лишнего сервера, вполне подходит.
Минусы:
- отсутствие поддержки LDAP. Обещают сделать сразу после того как закончат дописывать клиентов для iOS и Android. Без LDAP внедрение в компании несколько проблематично т.к. всех пользователей придеться добавлять вручную;
- невозможность расшарить директорию внутри «библиотеки». Планируют добавить в следующих версиях;
- не все переведено и иногда вылазят иероглифы в сообщениях;
Плюсы:
- возможность синхронизировать уже имеющиеся директории, при не имеет значения где эта директория расположена;
- клиент под все популярные ОС. Мобильные клиенты на подходе;
- интуитивный интерфейс и процесс;
- сервер все-в-одном;
- возможность синхронизации с/на несколько серверов в одном клиенте;
Не знаю плюс это или минус, но все храниться в git-подобной scm, поэтому если файл случайно удалили или затерли, всегда есть возможность его восстановить. Правда только через веб интерфейс. Это плюс. Минус, судя по обсуждению, в том, что если хранить большие бинарные файлы, то репозиторий будет сильно разрастаться.
Пока писал статью, обнаружил еще пару мелких багов, таких как, например, при удалении библиотеки в клиенте и/или на сервере, она не удаляется из «Download Tasks» клиента или клиент Seafile не загружается автоматически при запуске Windows хотя эта опция включена, но все они никак не влияют на синхронизацию файлов и на общую работу системы и я считаю Seafile вполне пригодным, как минимум, для личного использования в качестве замены Dropbox.
Автор: DenisBY
Понимаю, что комментирую древность, но всё же
Плюс ownCloud – возможность монтировать внешнее хранилище ( ftp, sftp, локальный каталог, да тот же дропбокс и т.д.). Ну и “но все храниться в git-подобной scm” не для всех плюс. В owncloud удобно, прицепил /home/www/test/ и редактируй css\php “на лету”. Искал альтернативу owncloud, наткнулся на seafile, посмотрел, но для меня эти минусы перевесили все плюсы.