avatar Ubuntu 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.
Выглядеть это будет примерно так, то что можно поменять, подчеркнуто красным:


далее у нас спросят где будут храниться данные, по умолчанию это директория 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 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

90 комментариев

avatar
собственный лунопарк с преферансом и куртизанками… )))) Заманчиво
avatar
Вот спасибо! Кашерные куртизанки получились. Так вот вопрос на минуточку… Можно к куртизанкам в лунопарке прикрутить clamav на предмет лишаёв, что б не липли как к пионеркам? Если серьёзно — на сею директорию хранения файлов Clamav завернуть можно? А то был уже случай при использовании ЯДа. 2 месяца назад цепанул жесткий вирус. На машине у себя прихлопнул его, а вот на ЯДе пришлось в службу поддержки обращаться, т.к. он ширился и рос. Те конечно его прихлопнули и даже поблагодарили за внимательность — но час от часу не легче.
avatar
Думаю что прикрутить CalmAV не проблема, весь фокус в том что информация на сервере хранится в виде блоков, а не цельных файлов, как эти блоки Клам будет проверять я ХЗ, проще проверять папку на клиентском ПК, а она потом будет синхронизирована с сервером.
avatar
Да, я заметил эту особенность, вот и спросил потому… На ЯДе похоже так же хранятся данные, но особенность в том, что там и тут при «сборке» или «разборке» блоков создается некий темповый фаил, вот вирусняк там и множился. Причём можно было все прибить, уничтожить и вычистить, начать залив других файлов, а он опять появлялся. Вирус назывался по моему BlackHall 2012 — свеженький… Ладно — это всё лирика. Поздравляю со Светлым праздником Пасхи! Желаю всех благ!!!
P.S. Потихоньку готовлю 100% перевод данного чуда на русский язык. Быстро не будет — загруз жёсткий на данный момент идёт. И кое что в CSS страничек надо подправить, но это уже с Китайскими товарищами пообщаемся…
avatar
Так, как и обещал, полностью русификатор готов. Его пока можно взять здесь :Русификатор из форума. Небольшие изменения будут обязательно и с выходом новой версии в том числе.
Обновить русификатор так:
Steps to apply language changes:
1. cd <seafile-path>/seahub/locale/ru/LC_MESSAGES (сюда закачиваем новый файл)
2. msgfmt --check-format -o django.mo django.po
3. restart seahub by ./seahub.sh restart

Чуть попозже дам ссылку на русификатор со своего сайта — там будут актуальные версии.
Всех благ!
avatar
Вот это круто!
avatar
Добрый день, не подскажите, как сделать, чтобы пользователи приходили по доменному имени, без указания порта? Спасибо.
avatar
Если попадать в WEB интерфейс то перевести на 80й порт, по остальным никак, оставить порты оп умолчанию, тогда клиент сам будет подключаться автоматически.
avatar
Можно. Для этого на сервере должен стоять либо индеец, либо Nginx. Инструкция по установке Здесь. Я настраивал, но пришлось отказаться. Это связано не с работой самого Seafile, а с точки зрения безопасности. У меня на серваке с несколько десятков боевых сайтов стоит, а ребята из Шанхая (разрабы), пока только в процессе отладки WEB интерфейса, так что на Ваше усмотрение. Если нет боевых сайтов, то конечно при Апаче все кашерно работает.
Я единственное что, подключил MySQL к сему чуду — вот это мне ИМХО понравилось. Сам компонент использует sqlite3, что на мой взгляд не сильно производительно, хотя не настаиваю.
Инструкция по прикручиванию MySQL.
И в довесок немного тайн он Шанхайцев; в Seafile встроен проигрыватель, он воспроизводит только файлы не более 30Мб, что бы увеличить порог — в файл seahub_settings.py дописываем
FILE_PREVIEW_MAX_SIZE = 250 * 1024 * 1024

и получаем порог в 250Мб — думаю дальше без комментов…
Вообще детище более чем кашерное, и более крутое чем дропбокс. Одно внутреннее Wiki, которое можно создавать для файлов — это нечто + система сообщений. Все таблы разбираются здесь, только там по английски и по китайски, но в общих чертах понять можно.
avatar
Маленький нюанс… Квоты назначаемые в Seafile не распространяются на учетные записи Ubuntu, т.е. если Вы назначите квоту в 100Мб в Seafile, то пользователь имея тот же email что и в Seafile, может иметь другую квоту назаначаемую в Ubuntu, например для FTP загрузок — это очень удобно кстати.
avatar
Добрый день!
Подскажите какие порты надо открыть для загрузки файлов через web-интерфейс. Я открыл только для веб-интерфейса, но сами файлы не загружаются в хранилище со включенным фаерволом.
avatar
avatar
Наверно я что-то не так делаю, потому как не получается…
*filter
:INPUT DROP [163:15672]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [2649:342161]
:fail2ban-dovecot — [0:0]
:fail2ban-postfix — [0:0]
:fail2ban-roundcube — [0:0]
:fail2ban-ssh — [0:0]
-A INPUT -p tcp -m multiport --dports 80,443,25,587,110,995,143,993,4190 -j fail2ban-postfix
-A INPUT -p tcp -m multiport --dports 80,443,25,587,110,995,143,993,4190 -j fail2ban-dovecot
-A INPUT -p tcp -m multiport --dports 80,443,25,587,110,995,143,993,4190 -j fail2ban-roundcube
-A INPUT -p tcp -m tcp --dport 10023 -j fail2ban-ssh
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 587 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 143 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 10001 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 12001 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8082 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT

-A fail2ban-dovecot -j RETURN
-A fail2ban-postfix -j RETURN
-A fail2ban-roundcube -j RETURN
-A fail2ban-ssh -j RETURN
COMMIT
avatar
пардон.всё работает) просто не на тот ip заходил)
avatar
Семен Семеныч… ;)
avatar
Ещё немного о настройках…
Файл seahub_settings.py Что можно в нем сделать:
# Установите URL seahub сайта. Этот URL-адрес будет содержится в уведомлениях электронной почты.
SITE_BASE = 'http://www.example.com/'

# Установите имя вашего сайта. Это имя будет содержится в уведомлениях электронной почты.
SITE_NAME = 'example.com'

# Установить заголовок seahub сайта
SITE_TITLE = 'Seafile'

# Если вы не хотите запустить seahub сайт из корня вашего сайта, укажите нужный путь.
# например, если указать значение '/seahub/', то seahub будет работать по адресу http://example.com/seahub/.
SITE_ROOT = '/'

# Администратор сайта может сбросить пароль пользователя, начальный пароль 123456.
INIT_PASSWD = '123456'

# Следует ли использовать Django как сервер статических файлов. Установите `False` если развернут behide веб-сервер, по умолчанию `True`
# Примечание: Начиная с версии 1.3.
SERVE_STATIC = True

# Следует ли использовать pdf.js чтобы просматривать PDF файлы в режиме он-лайн. По умолчанию `True`, вы можете отключить эту функцию.
# Примечание: Начиная с версии 1.4.
USE_PDFJS = True

# Включить регистрацию на сайте. По умолчанию `False`.
# Примечание: Начиная с версии 1.4.
ENABLE_SIGNUP = False

# Следует ли отправлять письмо, когда системный администратор добавляет нового пользователя. По умолчанию 'True'.
# Примечание: Начиная с версии 1.4.
SEND_EMAIL_ON_ADDING_SYSTEM_MEMBER = True

# Следует ли отправлять письмо, когда системный администратор cбросил пароль пользователя. По умолчанию `True`.
# Примечание: Начиная с версии 1.4.
SEND_EMAIL_ON_RESETTING_USER_PASSWD = True

# Скрыть вкладку `Сообщество`.
# Если вы хотите, чтобы ваше личный seafile выглядил так же, как https://cloud.seafile.com/, вы можете установить `True`.
# римечание: Начиная с версии 1.7.
CLOUD_MODE = True
avatar
Здорово, с смотрю вы «плотняком» взялись за эту софтину…
Вы используете ее в работе в продакшене?
avatar
Да использую и плотно. Сам сервис не продаю, но вот для нашей артели WEB разработчиков — то что доктор прописал. Выглядит это так: Трое сидят в Москве, двое в Кемерово и один товарищ в Германии. И тут просто сказка начинается. Общие проекты в синхроне, WIKI — описание некоторых компонентов, что б по инету не искать постоянно, мгновенные сообщения на почту… Такого сервиса, я по крайней мере не встречал у монстров облачных сервисов. Потому, кто занят чем то похожем в интернете — рекомендую.
По статистике:
На сервер вгружено порядка 10млн файлов общим объемом 46Гб — это в основном сайты, проекты, движки, компоненты и скрипты (потому так много)
Сервис работает довольно шустро без заметных тормозов, хотя сам сервак не такой уж и мощный и оперативы всего 2 Гб
Тормоза были заметны когда использовался Sqlite3, как только подключил MySQL — все воспрянуло духом.
Так что сервис очень нравится!
avatar
А как альтернативу не пробовали юзать Bittorrent sync, там вообще сервер не нужен
avatar
Пробовали — не понравилось. Есть два минуса. Нет централизованного хранения файлов, т.е. если нет в сети источника изменений, то остальные «курят бамбук». И второе, если работать со «свистков» типа МегаФон, а текущий WEB проект находится естественно в «открытом» (не архивированном) виде — синхронизация занимает ну очень много времени, т.к. в движке такой как Joomla например, 65000 файлов запихано. А тут все проще, изменяется все в реальном времени и только то, что изменялось, и не сверяется новый хэш торрента. С точки зрения производительности — Seafile удобнее ИМХО.
avatar
Спасением был ЯД… Но там 11 Гб и без сервисов, а тут хоть по 100Гб — и с куртизанками)))))
avatar
Понял! Буду знать :)
avatar
Друзья! Вышла новая версия Seafile 1.8.5 в которой уже встроен русский перевод — это радует. Взять можно тут.
Теперь тружусь над переводом клиента — скоро будет готово.
avatar
Очень круто!
avatar
Ребята, всех с Новым годом и Рождеством!!!
Кто активно использует облако, перед установкой хочу для себя понять следующее; к примеру на сервере есть файловая структура с данными (аудио, видео, тексты и т.д.) и к этим всем данным есть доступ из локальной сети через самбу. Есть идея поднять облако для синхронизации некоторых данных с мобильной техникой и отдаче в доступ (ограниченный и нет) также определенным людям через интернет. Вот как быть с уже имеющимися данными, их надо копировать/переносить в структуру облако, либо можно на них ссылки дать и т.д.?
avatar
С точки зрения siafile, на сервере лежат блоки, а не файлы в чистом виде. Так что, те файлы, к которым вы хотите предоставить доступ, копируете в seafile и они будут доступны остальным пользователям вашего сервера- «облака», после синхронизации… :)
avatar
Понятно, т.е. надо либо копировать и иметь по нескольку «копий» одних и тех же данных, либо переносить в облако. Получается вилка: или самба доступ или «облако» доступ. Правильно понял?
avatar
именно.
Ну или 2 копии-если места много.
avatar
А при каком варианте, при остальных равных условиях, скорость копирования (доступа) будет выше и надежность хранения выше? Понятно, что при самбе проще (подмонтиовал, отмонтировал и т.д.) а по качеству?
avatar
Давайте попробуем размышлять логически.
Samba это сетевая служба, которая передает данные по локальной сети, соответственно данные хранятся на сервере.
Какие у нее плюсы:
Нет необходимости копировать данные на ПК клиента.
Нет необходимости устанавливать какой-то доп. софт.

Какие минусы:
Сервер ушел в оффлайн, данные не доступны.
Не безопасно использовать через интернет (Samba все таки довольно дырявая).

Seafile, работает по принципу синхронизируемых клиентов т.к. каждый клиент копирует данные к себе на ПК.

Какие плюсы:
Данные хранятся локально и при недоступности сервера ими можно пользоваться
Автоматическая синхронизация изменений

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

Я привел не полный список плюсов и минусов, но вывод напрашивается один.
Это разные системы, с разными задачами и областями применения, в общем вы пытаетесь сравнить теплое с мягким… ;)

З.Ы. Siafile может играть музыку через браузер без необходимости закачки файла на локальный ПК…
avatar
Чуть дополню, с вашего позволения.
Убраны, кстати, недостатки в новой версии:
Необходимость копировать данные каждому клиенту.
— теперь по желанию клиента. Непосредственно из программы-клиента указываешь что копировать, или не копировать. Если не копировать, то можно непосредственно в WEB интерфейсе работать.
Нагрузка на сеть при больших объемах синхронизируемой информации.
— тепреь устанавливается ручками. Правда самим клиентом… Но это уже не плохо. Говорят что с новой версии доведут до ума глобальную настройку сервера по скорости отдачи/приема.

Из плюсов
появилась функция «конфликт-файла» — это когда одним файлом занимаются несколько юзеров одновременно. Он не теряется и не виснет — на каждое изменение создаётся отдельный файл с именем пользователя и датой изменения. Это ИМХО просто супер придумано.

Облако прекрасно работает через lo петлю, потому — что с локалки, что с инета заход один.
В общем много мелких и не очень доработок… ))))

Хотя САМБу никто не отменял. Мы тоже её используем, но на втором серваке, куда сливаются бэкапы сайтов. САМБА проще и быстрее — это как раз тот случай, когда нужно что то восстанавливать на первом сервере и срочно! Тогда уже не до паролей и блоков. Взвизгнули, подскочили и побежали…
avatar
Наконец добрался написать пару слов.
Небольшой отчет по использованию сего чуда за 7 месяцев.
Если в 2-х словах — просто круто!
Система работает нормально. Сбоев не было, ничего до сих пор не потерялось. Китайские товарищи, надо отдать им должное, относятся к своему детищу очень педантично — стараются вылизывать код так, что бы он максимально корректно работал с сервером, а главное быстро и не загружал его, хотя ошибки бывают всегда.
Вчера, кстати, вышла новая версия 2.1.3. Версия уже не только функциональная, но и уже красивая. Куртизанки постепенно приобретают статус светских львиц ))).
Русские переводы можно брать тут.
Всем успехов!
avatar
Очень круто!
avatar
Подумал — решил добавить… Четыре пункта из хелпинга Seafile:
Удаление библиотеки файлов

Для обеспечения безопасности хранения данных и предотвращения удаления библиотек с файлами — на сервере и на вашем компьютере не включайте «синхронизировать автоматически». При этом будут выполняться следующие условия:

* Если библиотека c файлами будет удалена с сервера, то библиотека загруженная на ваш компьютер — останется. И она больше не будет синхронизироваться с сервером.
* Если библиотека с файлами будет удалена на компьютере, то библиотека на сервере останется. В последствии вы можете её снова загрузить на свой компьютер и синхронизировать её с сервером.


Шифрование библиотек

Seafile поддерживает шифрование библиотек для защиты данных. Чтобы зашифровать библиотеку, необходимо установить пароль при её создании.

Пароли на сервере не хранятся! Даже администраторы сервера не могут прочитать ваши данные не введя ваш пароль.

Для того, чтобы скачать и синхронизировать зашифрованную библиотеку на компьютер, необходимо ввести пароль. Клиентская программа Seafile скачает зашифрованные данные и расшифрует их на вашем компьютере.

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

Чтобы поделиться зашифрованной библиотекой с друзьями, вы должны будете предоставить пароль к ней.

Конфликт файлов

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

Может получиться так, что вы и ваши друзья будете редактировать один и тот же файл одновременно. Что бы изменения не конфликтовали друг с другом, Seafile будет сохранять вашу копию файла без изменений, а копии файлов ваших друзей будут сохраняться в виде «конфликт-файла». Имя конфликтного файла будет заканчивается адресом электронной почты автора и текущим временем создания, например, test.txt(name@example.com 2013-10-01-00-12-24).

Не синхронизировать некоторые файлы/папки

Возможно вам потребуется не синхронизировать отдельные файлы и папки внутри библиотеки. Для этого, создайте файл с именем seafile-ignore.txt в корневой папке этой библиотеки. В нём определите, какие файлы и папки, Seafile не должен синхронизировать. Каждая строка, в этом файле, будет определять шаблон исключений. Придерживайтесь следующих правил:

1. Пустая строка не соответствует ни одному из файлов.
2. Строка, начинающаяся с # служит в качестве комментария.
3. Seafile поддерживает групповые (подстановочные) символы в шаблоне. Например, «foo/*» соответствует «foo/1» и «foo/hello». «foo/?» соответствует «foo/1» но не «foo/hello». Обратите внимание, что символ подстановки * рекурсивно соответствует всем путям и подпапкам. Например, «foo/*.html» соответствует «foo/a.html» и «foo/templates/b.html».
4. Если в шаблон добавлен слэш (косая черта), то он будет соответствовать только папке. Другими словами, foo/ будет соответствовать папке «foo» и всем путям в ней, но не будет соответствовать обычному файлу или символической ссылке «foo».
5. Если шаблон не заканчивается слэшем (косой чертой) или подстановочным знаком, то он не будет соответствовать папке. Например, «foo» может соответствовать только регулярному файлу «foo» или символической ссылке, в то время как «foo/» и «foo*» соответствовуют папке и всем путям в ней.

Пример

# a regular file
test-file

# a dir
test-dir/

# wildcard *
test-star1/*
test-star2/*.html

# wildcard ?
test-qu1/?.html
test-qu2/?/


Примечания

Файл seafile-ignore.txt контролирует только те файлы, которые будут исключены из синхронизации со стороны клиента. В любой момент вы можете создать файл в веб-интерфейсе Seafile, который исключит синхронизацию со стороны клиента. При этом:

* Последняя синхронизированная версия файла сохранится на сервере. Однако все последующие локальные изменения в этом файле будут игнорироваться.
* Если файл будет изменён на сервере, то новая версия также будет синхронизирована с клиентом. Если при этом файл в клиенте также был изменён, то будет создан конфликт-файл на сторне клиента.

seafile-ignore.txt будет игнорировать, в соответствии с записями, все перечисленные файлы и папки, которые еще не синхронизированы. Если файл или папка уже существуют и были синхронизированы, а через некоторое время вы добавляете их в список игнорирования, то их уже существующая версия останется на всех локальных клиентах, которые не будут синхронизироваться с сервером.
avatar
Посидел — вспомнил! Решил добавить!

Для тех кто Seafile будет использовать с MySQL. (Внимательно! С SQLite — это не прохиляет!)
Если сделать как написано раньше:
Счастье будет длиться только до перезагрузки системы, ведь вы запускаете 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

то мы получим следующее — после перезагрузки сервера, вроде облако стартует, но на WEB страницу зайти невозможно. Потому руками ещё раз приходится перезапускать облако. Что точно происходит, или точнее не происходит — не знаю, но лечится это так:

Будем использовать init.d для старта сервиса Seahub. Создаём файл:
sudo nano /etc/init.d/seafile-server



#!/bin/sh

# Укажите пользователя Linux, от имени которого устанавливался Seafile 
user=haiwen

# Измените значение "script_path" на свой, указав где установлен Seafile
seafile_dir=/data/haiwen
script_path=${seafile_dir}/seafile-server-2.0.4
seafile_init_log=${seafile_dir}/logs/seafile.init.log
seahub_init_log=${seafile_dir}/logs/seahub.init.log

# Измените значение FastCGI на true, если FastCGI будет использоваться
fastcgi=false
# Установите порт для fastcgi, по умолчанию 8000.
fastcgi_port=8000

case "$1" in
        start)
                sudo -u ${user} ${script_path}/seafile.sh start > ${seafile_init_log}
                if [  $fastcgi = true ];
                then
                        sudo -u ${user} ${script_path}/seahub.sh start-fastcgi ${fastcgi_port} > ${seahub_init_log}
                else
                        sudo -u ${user} ${script_path}/seahub.sh start > ${seahub_init_log}
                fi
        ;;
        restart)
                sudo -u ${user} ${script_path}/seafile.sh restart > ${seafile_init_log}
                if [  $fastcgi = true ];
                then
                        sudo -u ${user} ${script_path}/seahub.sh restart-fastcgi ${fastcgi_port} > ${seahub_init_log}
                else
                        sudo -u ${user} ${script_path}/seahub.sh restart > ${seahub_init_log}
                fi
        ;;
        stop)
                sudo -u ${user} ${script_path}/seafile.sh $1 > ${seafile_init_log}
                sudo -u ${user} ${script_path}/seahub.sh $1 > ${seahub_init_log}
        ;;
        *)
                echo "Usage: /etc/init.d/seafile {start|stop|restart}"
                exit 1
        ;;
esac


Примечание: Если seahub будет использовать FastCGI, просто измените переменную FastCGI на true

Создаём файл /etc/init/seafile-server.conf
sudo nano /etc/init/seafile-server.conf



start on (started mysql
and runlevel [2345])
stop on (stopping mysql
and runlevel [016])

pre-start script
/etc/init.d/seafile-server start
end script

post-stop script
/etc/init.d/seafile-server stop
end script


Ну и ЧМОД:
sudo chmod +x /etc/init.d/seafile-server


Перезагруз и… Ву а ля!!!
avatar
Спасибо за статью, продукт интересный. Но у меня не работает загрузка файлов на сервер через веб-интерфейс, при этом через клиенты пол windows и ubuntu все работает. Выдает ошибку: can not connect the server. Можете что-нибудь порекомендовать?
avatar
Все порты доступны для подключения?
avatar
да, на сервере нет фаервола, я работаю внутри локальной сети
avatar
netstat -anltp | grep «LISTEN»
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 795/smbd
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 5320/python2.7
tcp 0 0 0.0.0.0:12001 0.0.0.0:* LISTEN 5287/seaf-server
tcp 0 0 0.0.0.0:59015 0.0.0.0:* LISTEN 908/rpc.statd
tcp 0 0 127.0.0.1:13418 0.0.0.0:* LISTEN 5284/ccnet-server
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 795/smbd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 855/rpcbind
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 1248/perl
tcp 0 0 0.0.0.0:10001 0.0.0.0:* LISTEN 5284/ccnet-server
tcp 0 0 0.0.0.0:8082 0.0.0.0:* LISTEN 5288/httpserver
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1985/sshd
tcp6 0 0 :::445 :::* LISTEN 795/smbd
tcp6 0 0 :::41759 :::* LISTEN 908/rpc.statd
tcp6 0 0 :::139 :::* LISTEN 795/smbd
tcp6 0 0 :::111 :::* LISTEN 855/rpcbind
tcp6 0 0 :::22 :::* LISTEN 1985/sshd
avatar
Тогда все должно работать.
avatar
Снаружи можно подключиться к портам через telnet?
avatar
можно
avatar
Если даже порты доступны, то все должно работать.
avatar
блин, оно не робит… подскажи, куда sieafile пишет логи? может что полезное найду.
avatar
посмотрите по ссылке:
seacloud.cc/group/3/wiki/
avatar
Проблема решена, была проблема с днс…
avatar
Привет! Поднял, вроде работает, но не как не могу заставить его запускаться автоматом, пробовал по твоему совету, можно более подробно описать. И где поменять, чтоб работал по 80 порту?
avatar
Теперь вообще не подключается, ufw вообще удалил, не помогает…
avatar
Я не знаю как решить данную проблему, думаю, имеет смысл посмотреть документацию.
avatar
А по 80 порту и автозапуску?
avatar
попробуй поменять значение в файле ../seafile/ccnet/ccnet.conf в параметре SERVICE_URL= попробуй задать 80 порт. я этого не пробовал, но если не заработает, то всегда можно вернуть обратно :) после изменения не забудь перезапустить службу.
avatar
Пробую менять на 80, не помогает.
avatar
все победил, спс!
avatar
сейчас проблема при загрузках из браузера за пределами локальной сети, пишет, Ошибка: can not connect the server
avatar
Сервер за фаероввлом, за NAT? Порты из интернета проброшены?
Как клиент находит сервер, по IP или прописано DNS имя?
Из интернета, браузером, можно зайти на сервер?
avatar
Вот здесь обсуждают похожие проблемы:
groups.google.com/forum/#!topic/seafile/CAM8vLJKLmQ
groups.google.com/forum/#!topic/seafile/_rjaABKYX6s
Вчера поставил seafile на домашний сервер Ubuntu (спасибо автору!). Не загружались файлы в браузере из внешки. В указанных ссылках нашел решение.
(да, как уже здесь писали, не забудьте пробросить порты на роутере на сервере).
avatar
"(да, как уже здесь писали, не забудьте пробросить порты на роутере на сервере)" на сервер))
avatar
Подскажите, а где у клиентов настраивается скорость синхронизации с облаком, ну и собственно как она регулируется?)
avatar
Здравствуйте.
Скорость не регулируется, можно ограничить только размер закачиваемых файлов, на мой взгляд это является проблемой, решения которой, я пока не видел.
avatar
И еще интересует, есть ли возможность шифровать файлы на лету, при заливке? Вообще штука огонь!!!
avatar
Есть, когда вы создаете библиотеку, там устанавливаете галку шифровать файлы и указываете пароль, админ сервера не сможет прочитать файлы без пароля, клиент закачивает файлы и расшифровывает их локально.
Подробнее:
seafile.com/en/help/security/
avatar
А где лежит файл БД SQLite? было бы неплохо его бэкапить пару раз в неделю :)
avatar
Нафига, у вас копия файлов хранится минимум в 2х местах-на сервере и на клиенте… :)
avatar
я скачиваю на компьютер не все библиотеки, слишком большие объемы. по-этому хотелось бы делать бэкапы
avatar
посмотрите в /var/lib/sqlite
avatar
нет такого файла или каталога…
avatar
Тогда в директории, откуда запускается seafile, должен лежать файлик бызы.
avatar
Вов… вот это блог! Нашел, все что надо… еще бы статья не помешала бы, как прикрутить к Seafile SSL. Не написали бы?
avatar
Да по сути он там и не нужен, если включить шифрование для библиотеки, то файлы шифруются на клиенте и зашифрованными передаются на сервер, а если шифрование не включено, то и особого смыла использовать SSl нет.
Можно заморочиться, и если очень нужно, включать SSL на WEB серере, для примера можно воспользоваться статьей Балансировка сетевой нагрузки с помощью Nginx под Ubuntu
тогда директива будет иметь примерно следующий вид:
upstream backend {
    server 127.0.0.1:8000;
 }

Думаю вам подойдет.
avatar
Ну как не нужен… как тогда логин через вебинтерфейс без ssl? Пароль без шифровки слать… не не…
avatar
Тогда прикручивайте проксирование запросов, к web интерфейсу, через Nginx и прикручивайте ssl т.к. я в документации к seafile не видел чтобы была возможность прикрутить ssl.
avatar
Есть глупый вопрос: как добавить клиент seafile в автозагрузку ubuntu?
avatar
nano /etc/rc.local

перед строкой exit 0
avatar
Хочу использовать seafile для организации общего доступа к хранилищу документов, с возможностью восстанавливать удаленные или измененные файлы за любой промежуток времени. Пока думаю так: создать несколько пользователей, разбить их на группы, в каждой группе от имени админа создать общие папки (оставить только эти общие библиотеки, а библиотеки пользователя, которые появляются при создании пользователя- удалить, что бы админ мог восстанавливать информацию)
Есть несколько вопросов по работе программы:
1. Возможно ли удаление снимков вручную (желательно с применением фильтра, например, по имени файла, или по пользователю)
2. Если в конфиге установить хранение истории в 30 дней, будет ли очищаться корзина, или будут удалятся только снимки? (С одной стороны хотелось бы иметь полную историю, с другой- место небезгранично, и критично иметь возможность восстановить удаленный файл, скажем годичной давности)
3. Как происходит процесс восстановления файлов в случае сбоя системы? (Например совсем сдох сервер, или частично, но остались файлы в папке seafile) Возможно ли как то восстановить файлы непосредственно с сервера (то, что при этом существует копия на стороне клиента- это и так понятно)
avatar
Лично я, таких подробностей не знаю, но наверняка есть в документации к seafile
avatar
Здрасти.
Не подскажите как быть?
завел облако на nas4free (freebsd)
по инструкции Your text to link...
после перезагрузки сервака не стартует Seafile
Вручную тоже не могу запустить
после команды service seafile start
выдает
nginx does not exist in /etc/rc.d or the local startup directories
(/usr/local/etc/rc.d)
avatar
здравствуйте.
В FreeBSD необходимо прямо разрешать запуск сервиса иначе он не запустится
в файл
/etc/rc.conf

добавьте запись
nginx_enable="YES"
avatar
Спс все ок.
Подскажите WEB интерфейс на англ.
Качал файл русского языка, скопировал по инструкции, интерфейс все равно англ.
Меня это не напрягает, но вот думаю пару юзерам в облако дать места, и им будет не удобно, что все по англ.
Как установить русский язык?
avatar
Честно говоря, я уже и не помню, давно дело было, а сейчас уже и не пользуюсь.
avatar
А чего не пользуетесь, на что ушли?
avatar
Ушел на resilio sync, роскошная штука и поддерживать ничего не надо
avatar
Ясно.
Ну это же несколько другое…
avatar
А расскажите как вы его используете, какой тариф и т.д.
Интересно как вы построили «экосистему» на resilio sync. Правильно я понимаю что у вас задействован и ваш сервер/nas, персональный компьютер/ноутбук и мобильное устройство. Как все это уживается в единой системе?
avatar
есть сервер с большим диском, там включено шифрование, у одной группы людей подключены одни папки, у другой группы, другие папки, сервера нужны чтобы всегда быть на связи, больше ни для чего.
у заинтересованных сотрудников подключены папки которые синкакются в прямом эфире.
в общем, все просто.
avatar
Добрый день. У меня вопрос. Установил server seafile. все отлично работало, но после перезагрузки не могу снова запустить. Даю команду вручную (./seafile.sh start) выдает сообщение что нет файла seafile.ini. В чем может быть проблема?
avatar
Здравствуйте.
приложите текст ошибки из лога.
avatar
/home/.../ccnet/seafile.ini not found. Now quit
avatar
а сам файл есть или нет?
avatar
Искал поиском, но такого файла нет.
avatar
попробуйте запустить командой
./seahub.sh start 8000
Есть что добавить? Регистрируйся и оставляй комментарии!