Установка Seafile (корпоративное облачное хранилище)


Чем меня не устроил NextCloud/OwnCloud

До недавнего времени я всех агитировал устанавливать Next Cloud, особенно после того как был создан форк OwnCloud-а и мне показалось, что вот сейчас то мы заживем и продукт станет по настоящему хорошим, но как оказалось мои ожидания не оправдались и видимо никогда не оправдаются. NextCloud как был тормозной поделкой так ей и остался, а все усилия разработчиков оказались направленными на разработку сотен плагинов расширяющих и так огромную функциональность продукта.

Когда вместо работы над основной функциональностью проекта к нему начинают приделывать разного рода рюшечки, то тогда точно можно сказать, что продукту приходит конец, а переполненный багтрекер обычно прямое подтверждение этой ситуации. Каждое обновление NextCloud теперь напоминает какой-то квест под названием найди баг который проглядели разработчики и если на небольших инстансах NextCloud еще сносно работает, то моя относительно крупная установка преподносит все возможные сюрпризы. Последней каплей стало падение клиента для рабочего стола в сегфолт по совершенно непредсказуемым причинам и постоянные разлогинивания "без объявления войны".

Так как меня окончательно достал NextCloud я решил попробовать какое-нибудь другое OpenSource облачное хранилище. Как и в прошлый раз я считаю, что главное, это то чтобы оно было полностью мне подконтрольно и пусть оно не будет обладать таким широким функционалом как Next Cloud, но и не будет таким глюкодромом.

Багтрекер NextCloud как всегда полон свежих багов

В итоге, когда я основательно погуглил этот вопрос, я понял что OpenSource-ных облачных хранилищ которыми можно пользоваться всего два:

  • Мой нелюбимый теперь NextCloud (бывший OwnCloud)
  • И Seafile

Как вы понимаете я решил попробовать Seafile и конечно же я по традиции задокументирую процесс установки и первоначальной настройки.

Установка Seafile

Официальный сайт проекта: https://www.seafile.com/en/download/

Документация: https://manual.seafile.com/

Seafile поставляется в двух вариантах Pro и CE-версиях, ограничения на CE-версию довольно жесткие и не факт, что Seafile мне подойдет, но все равно в любом случае надо пробовать. Для установки сервера Seafile CE-версии существует специальный установочный скрипт для CentOS и Ununtu и конечно же есть Docker-контейнеры, но я предпочитаю ими не пользоваться (без особой необходимости).

Итак, все установка сводится к выполнению следующей последовательности команд:

# cd /root
# wget --no-check-certificate https://raw.githubusercontent.com/haiwen/seafile-server-installer/master/seafile_ubuntu
# bash seafile_ubuntu 6.1.2

После запуска скрипта вы увидите типовой консольный мастер установки в котором надо будет просто ответить на вопрос какую версию мы будем устанавливать PRO или CE.

Какую версию Seafile мы будем устанавливать

После того как установка будет завершена, вы увидите сообщение, что Seafile принимает подключения на порту 80:

  Next you should manually complete the following steps
  -----------------------------------------------------------------

  1) Log in to Seafile and configure your server domain via the system
     admin area if applicable.

  2) If this server is behind a firewall, you need to ensure that
     tcp port 80 is open.

  3) Seahub tries to send emails via the local server. Install and
     configure Postfix for this to work or
     check https://manual.seafile.com/config/sending_email.html
     for instructions on how to use an existing email account via SMTP.

Отлистайте чуть выше и найдите записи вида:

Starting productive Seafile server

  Your Seafile server is installed
  -----------------------------------------------------------------

  Server Address:      http://127.0.0.1

  Seafile Admin:       admin@seafile.local
  Admin Password:      Aibo3oe5

  Seafile Data Dir:    /opt/seafile/seafile-data

  Seafile DB Credentials:  Check /opt/seafile.my.cnf
  Root DB Credentials:     Check /root/.my.cnf

  This report is also saved to /opt/seafile/aio_seafile-server.log

Сохраните эти сведения, они вам скоро понадобятся. По завершении установки сотрите установочный скрипт, так как его повторный запуск повредит систему.

Первое знакомство и базовая настройка

Как вы наверное догадались нам надо перейти по адресу VPS-сервера при помощи любого браузера и в моем случае тестовый LXC-контейнер имеет адрес http://10.212.2.138 при переходе на который нам потребуется авторизоваться (вот здесь нам и пригодился пароль который был предоставлен мастером установки).

пароль по умолчанию для Seafile

При первом входе в систему мы видим сообщение о том, что для нас создана библиотека по умолчанию.

Библиотека по умолчанию в Seafile

Так как меня интересует производительность и накладываемые CE-версией ограничения, то сразу же создадим непривелигированного пользователя, установим десктоп-клиенты на двух компьютерах и мобильный клиент (чуть позже если все устроит).

Перейти в настройки системы можно выбрав раздел "Управление системой".

Управление пользователями Seafile

Выбираем раздел "Пользователи" и нажимаем кнопку "Добавить пользователя".

Мастер создания пользователей в Seafile

Авторизуемся созданным пользователем в web-интерфейсе и нам сразу же предложат сменить пароль.

Смена пароля пользователя при первом входе в Seafile

Web-интерфейс пользователя не сильно отличается от интерфейса администратора, он просто не имеет пункта "Управление системой", что логично.

Веб-интерфейс пользователя Seafile

Установка клиента для рабочего стола Linux

Клиенты для рабочего стола могут работать в двух режимах:

  • Клиент с синхронизацией - наболее похож на клиент для NextClous, Yandex-диск и т.п.
  • Клиент виртуального диска - создает виртуальный диск в системе и не требует сихронизации

Скачать клиенты для Linux/Windows/IOS мы можем по адресу: https://www.seafile.com/en/download/

Клиент Seafile для рабочего стола Linux

Установка клиента для Ubuntu Linux как обычно сводится к подключению стороннего репозитария и установке необходимых пакетов.

В общем ничего нового:

# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 8756C4F765C9AC3CB6B85D62379CE192D401AB61
# echo deb http://deb.seadrive.org bionic main | sudo tee /etc/apt/sources.list.d/seafile.list
# apt-get install seadrive-gui

Обратите внимание, что я подключил репозитарий для версии bionic (18.04) в вашем случае возможно придется использовать другую версию, а посмотреть текущую версию вашего дистрибутива можно командой:

# lsb_release -a
No LSB modules are available.
Distributor ID: neon
Description:    KDE neon Developer Edition
Release:        18.04
Codename:       bionic

После авторизации у вас в домашнем каталоге появится дополнительный каталог.

Каталог синхронизации Seafile

В каталоге SeaDrive будут находиться ваши библиотеки и вот теперь то мы можем попробовать копировать туда данные. Копировать можно любыми методами и в процессе синхронизации в системном лотке изменится иконка SeaDrive, а нажав на ней правой кнопкой мыши можно узнать текущий статус операции синхронизации файлов.

Синхронизация файлов Desktop-клиентом Seafile для Linux

Синхронизованные файлы можно посмотреть в web-интерфейсе и предоставить к ним общий доступ, задать срок действия и защитить паролем. Вункционал стандартный и всем в первом приближении меня устраивает.

SeaFile как предоставить общий доступ к файлам

Я думаю, что на сегодня достаточно и можно переходить к полноценному тестированию Sea File как замены для NextCloud сначала во внутренних проектах GITA-DEV, а в дальнейшем и в продакшн.