Установка Seafiles на Debian 10

Автор: | 21.04.2020

Подготовка Debian

Вкратце опишу свою конфигурацию. Использую Proxmox 5.3-8, на нем контейнер с Nginx, который слушает 80 и 443 порты, далее раскидывает по контейнерам. Запустил контейнер с Debian 10, на него и устанавливал SeaFile.
По правильному после установки нужно создать пользователя и работать из под него, позже я создам пользователя seafile, но пока из под root, мне так удобней …
apt update
apt upgrade

Забегая вперёд, хочу предупредить. После ребута контейнера LXC с Debian 10, машина больше не запустится ))) Об этом я узнал спустя несколько суток после ребута “на всякий случай”. Как я поправил это, напишу.
Кстати, ребутнуть Debian 10 теперь так:
systemctl reboot

Установка MariaDB в Debian 10

Перед установкой в Proxmox в настройках (options) используемого контейнера нужно выставить параметр Features – Nestting, предварительно остановив машину. В противном случае, после установки MariaDB не сможет запуститься.

Устанавливаем серверный пакет MariaDB из официальных репозиториев Debian, выполнив следующую команду, которая установит сервер MariaDB, клиент и все его зависимости.

systemctl status mariadb — проверить работает ли
systemctl start mariadb
systemctl restart mariadb
systemctl stop mariadb
systemctl reload mariadb

Добавим безопасности, запускаем:

mysql_secure_installation

Установки пароля для учетных записей rootзадаём, повторяем
Отключения удаленного входа в систему rootYes
Удаления учетных записей анонимных пользователейYes
Удаления тестовой базы данных, к которой по умолчанию могут обращаться анонимные пользователиYes

По умолчанию root пользователь MariaDB может, собственно, по root и зайти. Мы не сможем ввести root пароль при установке Seafile сервера под пользователем seafile (которого мы чуть позже создадим). Не сможем использовать phpMyAdmin и некоторые другие излишества.

Чтобы исправить эту ситуацию, зайдите на сервер MariaDB:
mysql

Выполним:
ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_root_passwd';
quit

Устанавливаем зависимости для корректной работы SeaFile

apt install python3 python3-setuptools python3-pip -y
apt install python-urllib3 python-requests python-mysqldb ffmpeg

pip3 install –timeout=3600 Pillow moviepy pylibmc captcha jinja2 sqlalchemy psd-tools django-pylibmc django-simple-captcha python3-ldap

Устанавливаем nginx

apt install nginx

Смотрим дышит ли:
systemctl status nginx

rm /etc/nginx/sites-enabled/default
touch /etc/nginx/sites-available/seafile
ln -s /etc/nginx/sites-available/seafile /etc/nginx/sites-enabled/seafile
nano /etc/nginx/sites-available/seafile

Создаём конфиг Nginx. Уже включён блок для WebDav.

Перечитываем конфиг:
systemctl reload nginx

Проверим:
nginx -t

Добавим в автозагрузку:
systemctl enable --now nginx

Установка Seafile

Создаем нового пользователя – seafile и даём права на его папку
$ useradd -m -U -r -d /opt/seafile seafile
$ chmod 750 /opt/seafile

Добавляем пользователя www-data в группу seafile
$ usermod -aG seafile www-data (bash: usermod: command not found, не стал чинить)
$ /usr/sbin/usermod -aG seafile www-data

Переключаемся на пользователя seafile, далее работаем под ним
$ su – seafile

Проверим из под пользователя seafile подключение к БД:
mysql -u root -p

Создаем директорию, куда потом перенесем архив с дистрибутивом
$ mkdir -p /opt/seafile/installed

Переходим в директорию, где будет установлен Sefile
$ cd /opt/seafile/installed

Берём ссылку со свежим дистрибутивом – тут Скачиваем архив, распаковываем его
wget https://download.seadrive.org/seafile-server_7.1.3_x86-64.tar.gz
$ tar xzf seafile-server_7.1.3_x86-64.tar.gz

Перемещаем архив в каталог installed
$ mv seafile-server_7.1.3_x86-64.tar.gz installed

Запускаем установку seafile
$ ./seafile-server-7.1.3/setup-seafile-mysql.sh

Press ENTER to continue
[ server name ] seafile
[ This server's ip or domain ] seafile.example.com
[ default "8082" ] Please choose a way to initialize seafile databases:
[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases
[ 1 or 2 ] --- 1
What is the host of mysql server?
[ default "localhost" ] --- Enter
What is the port of mysql server?
[ default "3306" ] --- Enter
What is the password of the mysql root user?
[ root password ] --- вводим пароль от root BD
verifying password of user root ... done
Enter the name for mysql user of seafile. It would be created if not exists.
[ default "seafile" ] --- Enter
Enter the password for mysql user "seafile":
[ password for seafile ] -- придумываем пароль
Enter the database name for ccnet-server:
[ default "ccnet-db" ] --- Enter
Enter the database name for seafile-server:
[ default "seafile-db" ] --- Enter
Enter the database name for seahub:
[ default "seahub-db" ] --- Enter

Настройки конфигурации seafile

Примечание: Настройки через веб-интерфейс сохраняются в таблице базы данных (seahub-db/constance_config). Они имеют более высокий приоритет, чем настройки в файлах конфигурации.
/opt/seafile/conf/ccnet.conf
/opt/seafile/conf/seafdav.conf
/opt/seafile/conf/seafile.conf
Стартуем

Из под root не получится:
./seafile.sh start
./seahub.sh start

Делаем так, из под пользователя seafile
su – seafile
/opt/seafile/seafile-server-latest/seafile.sh start
/opt/seafile/seafile-server-latest/./seahub.sh start

/opt/seafile/seafile-server-latest/seafile.sh restart
/opt/seafile/seafile-server-latest/./seahub.sh restart

Добавляем в автозагрузку seahub

Создаем файл seafile.service
$ nano /etc/systemd/system/seafile.service
пишем в него:

Создаем файл seahub.service
$ nano /etc/systemd/system/seahub.service
пишем в него:

Создаём скрипт для перезапуска Seafile
$ nano /usr/local/sbin/seafile-server-restart

Выставляем права
$ chmod 700 /usr/local/sbin/seafile-server-restart

Останавливаем службы:
$ su - seafile
$ /opt/seafile/seafile-server-latest/seahub.sh stop
$ /opt/seafile/seafile-server-latest/seafile.sh stop
$ exit

Добавляем службы в автозапуск:
$ systemctl daemon-reload
$ systemctl enable --now seafile
$ systemctl enable --now seahub

Не загружались и скачивались файлы. Пришлось добавить:
nano /opt/seafile/conf/seahub_settings.py
FILE_SERVER_ROOT = ‘http://trudххх.ru:8082’

Используется wsgi, а не …

Можно подключить дополнительные возможности
Изменить внешний вид
Есть API для PHP, Python, WEB
Seafile может работать без Nginx и Apache

Осталось настроить WebDav
Seafile — настраиваем WebDAV

Установка Seafile 7.1.0 + Nginx + Percona на Centos 7
Deploying Seafile under Linux
СИНХРОНИЗАЦИЯ И СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ ФАЙЛОВ С ПОМОЩЬЮ SEAFILE В DEBIAN 9

Очистка истории файлов в Seafile

Созданный пользователь может создавать библиотеки. Если опцию ENABLE_USER_CREATE_ORG_REPO выставить False, – в админке (пишется в БД и имеет высший приоритет, или в конфиг) то чуда не происходит. Оказывается: “If you are using pro version, you can use the Roles and Permissions 6 feather to disable someone to create a library by setting the can_add_repo permission to False”

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.