Все с Dropbox хорошо, кроме необходимости платить за хранение данных, как говорится, аппетит приходит во время еды, и через какое-то время, 2Гб, которые они выдают бесплатно, перестает хватать. Конечно занятие «читерсвом» никто не отменял и зарегистрировав пользователей, настоящих или мнимых, по своим реферальским ссылкам, можно «прокачаться» до 16Гб, но что-то лень, тем более если есть система которая работает в режиме 24/7 и постоянно подключена к интернет, ну а если имеется внешний IP адрес, пусть даже динамический, да с толстым каналом, то сам бог велел ее использовать, причем по полной…
Есть один нюанс- маловероятно что у вас имеется полноценная облачная инфраструктура, в отличии от DropBox, а ваша «облачная» система по сути, таковой не является, является ни чем иным как выделенным сервером. Хотя говорить всем что у меня своя облачная система хранения данных-неимоверно доставляет, школота оценит, те кто постарше задумаются. Ладно, занятие по переклейке шильдиков от Lexus на Запорожец мы оставим в другим людям, склонным понтам, но если честно, то наш «Запор» должен зашуршать довольно бойко.
Иметь свой собственный лунопарк с преферансом и куртизанками, намного кошернее, хотя, возможно и не всегда правильнее, с другой стороны, нам необходимо получить полноценный рабочий инструмент, который много где можно применить, тут как говорится-была бы лошадь, а хомут найдется. Ну а в плане получения опыта-самое то, тем более если оно работает, а оно работает, уж поверьте…
Оставим лирику, переходим к практике.
Первым делом определимся с тем что нам нужно получить на выходе, а нужно нам следующее…
Требования к системе хранения
Обязательные:
1) Установить систему и добиться правильной работы
2) Настроить клиентов синхронизации (на клиентских ПК)
2) Настроить отправку email сообщений (для оперативного получения различных уведомлений системы)
Не обязательные:
3) Включить дисковые квоты для пользователей (иначе они забьют все диски сервера)
4) Ограничить размер файлов для синхронизации ( иначе будут забивать канал сервера)
Все будет создаваться на примере Ubuntu 12.04 amd64
1-Установка сервера Seafile
Повышаем права до root:
sudo su
Устанавливаем необходимые пакеты:
apt-get install python2.7 python-setuptools python-simplejson python-imaging sqlite3
Для начала создадим директорию для сервера, назовем ее seafile:
mkdir seafile
перейдем в нее:
cd seafile
Качаем свежую версию, на момент написания была актуальна 1.5.2, актуальную версию всегда можно посмотреть на сайте разработчиков
wget http://seafile.googlecode.com/files/seafile-server_1.5.2_x86-64.tar.gz
Распаковываем скаченное:
tar -xzf seafile-server_1.5.2_x86-64.tar.gz
Переходим в директорию с распакованным архивом сервера:
cd seafile-server-1.5.2
Запускаем инсталляцию:
./setup-seafile.sh
Сначала нам выдаст пишем yes и жмем Enter:
Запустится проверка установленных компонентов в системе, также у нас спросят имя сервера (доменное имя или IP) на котором он будет работать, в тестовых целях имя сервера у нас будет testserver, доменное имя example.org ну и порт для подключения, по умолчанию 10001.
Выглядеть это будет примерно так, то что можно поменять, подчеркнуто красным:
далее у нас спросят где будут храниться данные, по умолчанию это директория seafile-data которая находится внутри папки seafile, тогда путь к ней будет иметь вид:
/home/username/seafile/seafile-data/
Где:
username-имя домашней директории пользователя
В любом случае нужно указывать тот раздел на котором много свободного места!
После этого у нас спросят указать порты для работы и проверить конфигурацию, все порты оставляем по умолчанию.
Еще раз проверяем конфигурацию и жмем Enter:
Далее все оставляем как есть и указываем email администратора и пароль- все просто, в конце нам выдаст:
По завершению установки получаем следующее:
Установка завершена, запустим систему:
./seafile.sh start
./seahub.sh start
переходим по адресу:
httр://example.org:8000/
При входе в систему и указываем email и пароль котрый вы указали при установке:
После этого попадаем в систему:
2-Настройка клиентов
Переходим к клиентскому ПК, нам нужно установить клиент который будет выполнять синхронизацию с нашим сервером. Для начала настроим клиента под Windows, переходим на сайт разработчика и качаем версию под винду и ставим на ПК, после чего, в трее, появится значок, что клиент Seafile установлен( на скриншоте подчеркнут красным):
Но просто так он не захочет синхронизироваться, потому что для начала нужно создать библиотеку, назовем ее Files ну и ее описание, если требуется шифрование, ставим галку и указываем пароль
Теперь нам необходимо скачать библиотеку:
Я работаю через Opera а в ней по непонятным причинам сервер не видит клиентское ПО и выдаст ошибку (а вот через Chrome, все в порядке), что он его не видит, но это не является проблемой, жмем на ссылку.
В конце указываем куда сохранить, у меня все это лежало на диске E:\
В результате на диске Е:\ по пути:
E:\seafile\Files
появилась папка, где все располагается по имени библиотеки- чтобы не было путаницы!
На остальных ПК проделываем туже операцию, по установке клиента, теперь если забросить файл в папку E:\seafile\Files, то содержимое папки Files будет синхронизировано с сервером, а через Web интерфейс также будет доступно в библиотеке Files и остальными ПК. Кстати, mp3 можно слушать прямо через броузер!
При синхронизации заначек трее изменится:
Ну и на остальных устройствах указанная папка будет синхронизирована автоматически. Клиентские приложения есть, почти, под все платформы, ссылки на них можно посмотреть на странице загрузки seafile.com/en/download/
Счастье будет длиться только до перезагрузки системы, ведь вы запускаете Seafile-server руками, каждый раз лазить и запускать в ручную, глупое занятие по растрате ценных человеческих ресурсов, нам необходимо этот процесс автоматизировать.
Добавляем в rc.local
nano /etc/rc.local
Слудующее
/home/username/seafile/seafile-server-1.5.2/seafile.sh start
/home/username/seafile/seafile-server-1.5.2/seahub.sh start
Чтобы выглядело:
/home/username/seafile/seafile-server-1.5.2/seafile.sh start
/home/username/seafile/seafile-server-1.5.2/seahub.sh start
exit 0
Теперь сервер будет автоматически запускаться при старте системы.
Нам осталось настроить отправку почтовых уведомлений сервером
Настройка отправки почтовых уведомлений сервером Seafile
Настраиваем отправки сообщений на примере отправки писем через yandex:
nano ./seahub_settings.py
и в него добавим следующее:
EMAIL_USE_TLS = False
EMAIL_HOST = 'smtp.yandex.ru'
EMAIL_HOST_USER = 'username@yandex.ru'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 25
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = EMAIL_HOST_USER
Чтобы изменения вступили в силу, нам необходимо перезапустить Seafile:
./seafile.sh restart
./seahub.sh restart
Теперь при создании нового пользователя, ему придет на почту письмо с паролем и ссылкой, куда нужно подключаться.
На этом, обязательная часть заканчивается, далее идет не обязательный, но весьма полезный функционал.
Создание дисковой квоты для пользователей
По умолчанию, дисковые квоты не заданы и пользователи, могут загружать файлы без ограничений, если вы пользуетесь сервером сами, это не является проблемой, но если пользуются несколько пользователей, до они могут забить все свободное место на диске, что не очень хорошо.
Для начала мы создадим квоту по умолчанию, которая будет распространяться на всех пользователей, а тем, кому нужно предоставить больше места, вы всегда сможете выделить — в индивидуальном порядке.
По умолчанию мы сделаем, стандартную квоту для всех пользователей равную 5Gb, для этого нам нужно добавить запись в:
nano ./seafile-data/seafile.conf
[quota]
#Размер дисковой квоты для всех пользователей 5 Гб
default = 5
И перезапустить сервер:
./seafile.sh restart
./seahub.sh restart
Возвращаемся в админ-панель Seafile, теперь если посмотреть настройки любого пользователя, то вы заметите что у него появилась дисковая квота, равная 5Gb ( на скриншоте подчеркнуто красным)
Ограничиваем размер загружаемых файлов.
Seafile не предусматривает ограничение скорости синхронизации клиентов, что, в принципе, можно отнести к недостаткам.
По умолчанию, пользователи могут загружать файлы любого размера, что в принципе не хорошо, и не плохо, а вот если пользователь залил файлы большого размера, то в случае подключения другого клиентского устройства, все эти файлы начинают закачиваться и на него, что сильно нагружает канал, по этому, размер загружаемых файлов можно ограничить.
Открываем файл:
nano ./seafile-data/seafile.conf
Добавляем туда:
[httpserver]
# Устанавливаем максимальный размер файла для загрузки 200M.
max_upload_size=200
#Устанавливаем максимальный размер директори для скачивания 200M.
max_download_dir_size=200
Настраиваем историю изменений
Можно ввести историю изменений, чтобы можно было восстановить исходный файл, если внесенные изменения вас не устраивают.
Для примера сделаем чтобы история хранилась 30 дней, тогда в:
nano ./seafile-data/seafile.conf
Нужно добавить:
[history]
#Устанавливаем количество дней хранения истории изменений файлов- 30 дней
keey_days =30
Сохраняем изменения и перезапускаем Seafile
./seahub.sh restart
Пользуемся…
На этом позвольте закончить.
За более подробной информацией, для расширения функционала, всегда можно обратиться к сайт разработчиков: seafile.com
Статья является переводом: github.com/haiwen/seafile/wiki/Seafile-server-configuration-options
Для выполнения более тонкой настройки, можно обратиться к рекомендации человека, который использует данную систему в продакшене:howitmake.ru/blog/ubuntu/99.html#comment2232
Русификацию интерфейса можно скачать groups.google.com/forum/#!topic/seafile/C2nK5YKnAtM
LINK-- http://howitmake.ru/blog/ubuntu/99.html#comment2867
|