Пятница, 21.07.2017, 19:39
# FreeBSD ГлавнаяРегистрацияВход
Приветствую Вас Гость | RSS
Меню сайта
Категории раздела
Мои статьи [167]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
 Каталог статей 
Главная » Статьи » Мои статьи

Seafile собственный аналог Dropbox на Ubuntu

Все с 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:
seafile установка

Запустится проверка установленных компонентов в системе, также у нас спросят имя сервера (доменное имя или IP) на котором он будет работать, в тестовых целях имя сервера у нас будет testserver, доменное имя example.org ну и порт для подключения, по умолчанию 10001.
Выглядеть это будет примерно так, то что можно поменять, подчеркнуто красным: 
http://howitmake.ru/uploads/images/00/00/01/2013/04/18/2de9fb.png

далее у нас спросят где будут храниться данные, по умолчанию это директория seafile-data которая находится внутри папки seafile, тогда путь к ней будет иметь вид:
 

/home/username/seafile/seafile-data/


Где:
username-имя домашней директории пользователя
В любом случае нужно указывать тот раздел на котором много свободного места!

После этого у нас спросят указать порты для работы и проверить конфигурацию, все порты оставляем по умолчанию.
Еще раз проверяем конфигурацию и жмем Enter:
http://howitmake.ru/uploads/images/00/00/01/2013/04/18/6a704e.png
Далее все оставляем как есть и указываем email администратора и пароль- все просто, в конце нам выдаст:
http://howitmake.ru/uploads/images/00/00/01/2013/04/18/339d4d.png

По завершению установки получаем следующее:
http://howitmake.ru/uploads/images/00/00/01/2013/04/18/585610.png

Установка завершена, запустим систему:
 

./seafile.sh start
./seahub.sh start



переходим по адресу:
 

httр://example.org:8000/



При входе в систему и указываем email и пароль котрый вы указали при установке:
http://howitmake.ru/uploads/images/00/00/01/2013/04/18/8dd261.png

После этого попадаем в систему:
http://howitmake.ru/uploads/images/00/00/01/2013/04/18/796294.png

 

2-Настройка клиентов

Переходим к клиентскому ПК, нам нужно установить клиент который будет выполнять синхронизацию с нашим сервером. Для начала настроим клиента под Windows, переходим на сайт разработчика и качаем версию под винду и ставим на ПК, после чего, в трее, появится значок, что клиент Seafile установлен( на скриншоте подчеркнут красным):
http://howitmake.ru/uploads/images/00/00/01/2013/04/18/22d777.png
Но просто так он не захочет синхронизироваться, потому что для начала нужно создать библиотеку, назовем ее Files ну и ее описание, если требуется шифрование, ставим галку и указываем пароль
http://howitmake.ru/uploads/images/00/00/01/2013/04/18/d0e1d1.png

Теперь нам необходимо скачать библиотеку:
http://howitmake.ru/uploads/images/00/00/01/2013/04/18/6f6a7e.png

Я работаю через Opera а в ней по непонятным причинам сервер не видит клиентское ПО и выдаст ошибку (а вот через Chrome, все в порядке), что он его не видит, но это не является проблемой, жмем на ссылку.
http://howitmake.ru/uploads/images/00/00/01/2013/04/18/072eaf.png

В конце указываем куда сохранить, у меня все это лежало на диске E:\
http://howitmake.ru/uploads/images/00/00/01/2013/04/18/c3dc47.png

В результате на диске Е:\ по пути:
 

E:\seafile\Files


появилась папка, где все располагается по имени библиотеки- чтобы не было путаницы!
На остальных ПК проделываем туже операцию, по установке клиента, теперь если забросить файл в папку E:\seafile\Files, то содержимое папки Files будет синхронизировано с сервером, а через Web интерфейс также будет доступно в библиотеке Files и остальными ПК. Кстати, mp3 можно слушать прямо через броузер!
При синхронизации заначек трее изменится:
http://howitmake.ru/uploads/images/00/00/01/2013/04/18/3b6b92.png

Ну и на остальных устройствах указанная папка будет синхронизирована автоматически. Клиентские приложения есть, почти, под все платформы, ссылки на них можно посмотреть на странице загрузки 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 disk quota

 

Ограничиваем размер загружаемых файлов.

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

Категория: Мои статьи | Добавил: Admin (04.06.2014)
Просмотров: 1697 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2017Сделать бесплатный сайт с uCoz