Seafile

Материал из ALT Linux Wiki

Установка сервера Seafile из пакетов в репозитории ALT Linux p8

Предисловие

Seafile предполагает, что имеется базовый каталог, от которого всё строится. Выберем в его качестве /var/www/webapps/.

TODO: Нужно переписать инструкцию, чтобы она описывала разворачивание под пользователем.

Команды в инструкции потребуют установленных пакетов eepm и erc:

# apt-get install eepm erc

Установка

Ставим пакеты

# epmi seafile-server seafile-nginx ccnet ccnet-server python-module-gunicorn
# mkdir -p /var/www/webapps/seafile-server
# cd /var/www/webapps/seafile-server

Скачиваем seahub (той же версии, что и пакет seafile-server):

# wget https://github.com/haiwen/seahub/archive/v5.1.4-server.tar.gz -O seahub.tar.gz
# erc seahub.tar.gz
# cd seahub

Дальше нужно установить в thirdpart необходимые модули python. В инструкции дан плохой совет ставить их с помощью

# pip install -r requirements.txt

Эта команда поставит их не в thirdpart, а в систему, перезаписав уже установленные пакеты. (пока сойдёт)

Настройка

# cd /var/www/webapps/
# seafile-admin setup

Он задаст вопрос о названии сервера, домене (порты оставим по умолчанию), месте для хранения файлов:

What is the name of the server?  (3 - 15 letters or digits)
[server name ]  demoseafile

What is the ip of the server?  (For example: www.mycompany.com, 192.168.1.101)
[ip or domain ]  seafile.devel.etersoft.ru

Which port do you want to use for the ccnet server?
[default 10001 ]  

Where do you want to put your seafile data?  (Please use a volume with enough free space)
[default /var/www/webapps/seafile-data ]  

Which port do you want to use for the seafile server?
[default 12001 ]  

Which port do you want to use for the seafile fileserver?
[default 8082 ]  

This is your configuration
------------------------------------------
ccnet conf dir:           /var/www/webapps/ccnet
server name:              demoseafile
server host:              seafile.devel.etersoft.ru
ccnet port:               10001
seafile data dir:         /var/www/webapps/seafile-data
seafile port:             12001
seafile fileserver port:  8082
------------------------------------------
Press ENTER if the config is right, or anything else to re-config 

Generating ccnet configuration...
done
Successly create configuration dir /var/www/webapps/ccnet.
done
Generating seafile configuration...
Done.
done

Создаём пользователя-админа:

# seafile-admin create-admin

Запускаем:

# seafile-admin start
Starting seafile-server...
Starting seahub...
Seahub running on port 8000
Done

Заметки

Рекомендованная схема настройки:

https://seafile.example.com/ -> 127.0.0.1:8000
https://seafile.example.com/webdav -> 127.0.0.1:8082
https://seafile.example.com/seafhttp -> 127.0.0.1:8080

(предложена в пакете seafile-nginx)

Мобильные клиенты будут подключаться только по одному порту (80 или 443).

Старые клиенты для компьютера будут также использовать порты 12001 (seaf-server) и 10001 (ccnet) для синхронизации.

fuse работает только в read-only и не поддерживает шифрованные библиотеки.

webdav не поддерживает шифрованные библиотеки.

conf/seafdav.conf:
[WEBDAV]
enabled = true
port = 8080
fastcgi = true
share_name = /webdav

seahub_settings.py
# do not use separate 8002 port
FILE_SERVER_ROOT = 'https://stog.etersoft.ru/seafhttp'

Чтобы webdav работал с русскими библиотеками, пришлось добавить в код:

class WsgiDAVApp(object):
...
        reload(sys)
        sys.setdefaultencoding("UTF-8");

В /etc/init.d надо пробросить ссылки на seafile.sh и seahub.sh для автозапуска сервисов.


Проблемы

  • Почему-то логи seahub пишутся в /tmp/seahub_django_request.log