Свой облачный сервер за пять минут с Seafile Cloud Server

Привет, недавно в Твиттере увидел пост про новый опен-соурсовский облачный проект. И тут же заинтересовался. Когда-то у меня работал полноценный клауд на ownCloud, но это было давно и аппликация для Android часто сбоила, как и сам интерфейс, хотя нареканий нет. ownCloud отличный открытый проект с огромными возможностями и пожалуй разберемся с ним в следующей статье. Итак Seafile это Next-generation Open Source Cloud Storage как уверяют разработчики предназначенный для дома, офиса или даже крупного предприятия. Как всегда весь упор делается на то, что это приватное облако (например внутри компании, на серверах компании) т.е. вся информация вроде как в облаке, но в своем собственном. Это удобно, это дешево, это просто, стоит признать.

Структура платформы Seafile

Ccnet daemon – сетевой демон. Выполняет роль перегона всего трафика между клиентом и сервером.
Seafile daemon – информационный демон.
Seahub – это фронт-энд, или вебморда в народе.
HttpServer – отвечает за загрузку\закачку всех данных через Seahub.
Controller – контроллер. Мониторит ccnet и seafile демонов и при необходимости рестартует их.

Схема клиент-сервер:
seafile-sync-arch

Установка за 5-ть минут

Установка и настройка сервера у меня заняла ровно три минуты и это с перерывом на кофе. К слову у них отличная документация и они позаботились об админах. Там все понятно.

Итак, берем ОС Ubuntu 12.04 32bit за пример. Сначала идем на страничку загрузки сервера. На сервер делаем так.
1) Смотрим какая у вас архитектура:

uname -m
uname -m

2) Качаем 32-бит:

wget http://seafile.googlecode.com/files/seafile-server_{version}_i386.tar.gz
wget http://seafile.googlecode.com/files/seafile-server_{version}_i386.tar.gz

3) или 64-бита:

wget http://seafile.googlecode.com/files/seafile-server_{version}_x86-64.tar.gz
wget http://seafile.googlecode.com/files/seafile-server_{version}_x86-64.tar.gz

Теперь распаковываем:

tar xvf seafile-server_2.1.3_i386.tar.gz
tar xvf seafile-server_2.1.3_i386.tar.gz

Переходим в каталог с установочными скриптами:

cd seafile-server
cd seafile-server

Смотрим из любопытства на содержимое:

root@alexLinux:/home/booch# tree -L 1 seafile-server-2.1.3/
seafile-server-2.1.3/
├── reset-admin.sh
├── runtime
├── seaf-fuse.sh
├── seafile
├── seafile.sh
├── seahub
├── seahub.sh
├── setup-seafile-mysql.py
├── setup-seafile-mysql.sh
├── setup-seafile.sh
└── upgrade
[email protected]:/home/booch# tree -L 1 seafile-server-2.1.3/
seafile-server-2.1.3/
├── reset-admin.sh
├── runtime
├── seaf-fuse.sh
├── seafile
├── seafile.sh
├── seahub
├── seahub.sh
├── setup-seafile-mysql.py
├── setup-seafile-mysql.sh
├── setup-seafile.sh
└── upgrade

Для удачного запуска и работы установочного скрипта необходимо доставить некоторые пакеты в систему:

  • python 2.6 or 2.7
  • python-setuptools
  • python-simplejson
  • python-imaging
  • sqlite3
apt-get update
apt-get install python2.7 python-setuptools python-simplejson python-imaging sqlite3
apt-get update
apt-get install python2.7 python-setuptools python-simplejson python-imaging sqlite3

Теперь когда все готово, запускаем скрипт установки:

./setup-seafile.sh
./setup-seafile.sh

И отвечаем на очень-очень простые вопросы:
server-setup

С чистой душой запускаем сервер:

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

Логично, что останавливаем сервер вот так:

./seahub.sh stop
./seafile.sh stop
./seahub.sh stop
./seafile.sh stop

Если в системе есть файрвол, не забываем открыть порты:
UFW:

ufw allow 8000
ufw allow 8082
ufw allow 12001
ufw allow 10001
ufw allow 8000
ufw allow 8082
ufw allow 12001
ufw allow 10001

IPTABLES:

iptables -A INPUT -p tcp -m tcp -s 0/0 --dport 8000 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -s 0/0 --dport 8082 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -s 0/0 --dport 12001 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -s 0/0 --dport 10001 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -s 0/0 --dport 8000 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -s 0/0 --dport 8082 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -s 0/0 --dport 12001 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -s 0/0 --dport 10001 -j ACCEPT

В браузере переходим туда, куда указали:
<my_domain:8000>
<my_ip_address:8000>

Ввоодим логин и пароль которые указали во время установки. Профит!
Screenshot from 2014-01-20 18:08:54

Для Cloud Server Seafile так же имеется отличный клиент для Android который можно свободно скачать в Google Play и подключить к вашему личному облаку Seafile. Вот пара скриншотов мобильного клиента подключенного к моему серваку:
Screenshot_2014-01-20-17-44-37

И собственно сама библиотека:
Screenshot_2014-01-20-18-13-36

У Seafile в Вики есть несколько вариантов установки сервера, мы использовали более простой с sqlite3, есть еще версия с MySQL. Подробная и очень внятная документация на английском языке тут – https://github.com/haiwen/seafile/wiki