Seafile

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

Для p8

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

Установка

  1. В качестве базового каталога задействуем /var/www/webapps/:
    mkdir -p /var/www/webapps/seafile-server
    cd /var/www/webapps/seafile-server
    
  2. Поставим пакеты:
    apt-get install ccnet ccnet-server python-module-gunicorn seafile-server seafile-nginx
    
  3. Скачаем seahub той же версии, что и seafile-server:
    wget https://github.com/haiwen/seahub/archive/v5.1.4-server.tar.gz -O seahub.tgz
    tar -xvf seahub.tgz
    
  4. Установим необходимые модули 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

Заметки

Рекомендованная схема настройки (предложена в пакете seafile-nginx):

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

Мобильные клиенты будут подключаться только по одному порту (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 для автозапуска сервисов.

Проблемы

  • Вывод логов задаётся опцией запуска --error-logfile= (по умолчанию в /tmp/gunicorn-error.log, по другим сведениям — в /tmp/seahub_django_request.log).

Для p11

  1. Поставить демона, менеджер хранилища, вебку и веб-сервер:
    epmi seafile seafile-fuse seafile-seahub angie
  2. Добавить модули:
    epmi python3-module-{dateutil,future,gunicorn,jwt,openpyxl,Pillow,pymysql,pycryptodome,qrcode,requests,tinycss2,django{restframework,-{picklefield,recaptcha,tools}}}
    
  3. Дополнить их через pip:
    pip install django-formtools django-post_office django-statici18n django-webpack_loader