Частное облако seafile в клетке nas4free с MySQL

Mar 16, 2017 23:58

Seafile - грубо говоря аналог OwnCloud. Только написан на C и Python, что должно быть быстрее PHP и Java. Подробнее см англоязычную вику и там же сравнительную таблицу. А мы будем ставить серверную часть в FreeBSD клетку.

NB. Seafile опирается на СУБД и Web сервер. В качестве СУБД в простейшем варианте используется SQLite. А этот пост про установку с MySQL.

В качестве Web сервера в мануале предлагается настроить Apache или Nginx (сервер gunicorn в настоящее время на FreeBSD не поддерживается). Мне показалось проще настроить Ngnix.

NB. НЕ СПЕШИМ. На момент написания актуальная версия seafile под FreeBSD 6.08. Однако в ней скрипты установки содержат погрешности. Я последние дни тестировал, связывался с разработчиком и он прислал мне исправленные, а заодно и рабочий конфиг Nginx. Архив у меня на Я диске. Выйдет исправленная версия - это примечание уберу.

Seafile с MySQL, установка в FreeBSD jail

1. Создаём клетку, обновляем до актуального состояния, запускаем, смотрим ID командой jls, идём в клетку. Для справки моя версия в момент установки. Ещё раз напомню, я лично предпочитаю под каждую клетку предварительно создать zfs датасет, но это не обязательно.
nas4free ~/ root~$ jexec 2 tcsh
root@seafile:/ # uname -a
FreeBSD seafile.local 11.0-RELEASE-p7 FreeBSD 11.0-RELEASE-p7 #0 r312343M: Tue Jan 17 15:41:49 CET 2017 root@dev.nas4free.org:/usr/obj/nas4free/usr/src/sys/NAS4FREE-amd64 amd64

2. Проверяем доступную версию seafile
root@seafile:/ # pkg search seafile-server
seafile-server-6.0.7 Open Source Cloud Storage (Server)

В примере выше сначала система предложит установить pkg.
2.1 Если доступна версия 6.0.7, то советую установить nano (pkg install nano), а затем отредактировать конфиг
root@seafile:/ # nano /etc/pkg/FreeBSD.conf

Здесь заменить quarterly на latest, а именно
url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly"
на
url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest"

После этого сделать pkg upgrade и вернуться на начало п 2.

2.2 Если доступна версия 6.0.8, то качаем архив по ссылке выше и позже, после установки, заменяем файлы на файлы из архива. Идём к п 3.

2.3 Если 6.0.8_1 - идём к п 3.

3. Установка и настройка MySQL для seafile описана здесь. Вы можете установить MySQL в отдельную клетку и использовать для нескольких применений. Или в ту же, где будет seafile, по вашему выбору. В любом случае для клеток советую для пользователя базы данных IP писать в явном виде, напр seafile@192.168.1.66 А не localhost или %. Создайте три базы данных, как описано, запомните их названия и имя пользователя баз данных.

4 Установка seafile
root@seafile:/ # pkg install seafile-server seahub

5. Запускаем setup
NB если вы качали архив - файл setup-seafile-mysql.py надо взять из него.
root@seafile:/ # cd /usr/local/www/haiwen/seafile-server/
root@seafile:/usr/local/www/haiwen/seafile-server # ./setup-seafile-mysql.sh

5.1 Сетап задаст ряд простых вопросов
Имя сервера, IP или доменное имя, куда помещать файлы данных, номер порта.
Имя сервера задайте по вкусу.
На первый тренировочный раз стоит указать IP нашей клетки. Когда будете ставить для доступа снаружи, предварительно сконфигурируйте DDNS или купите доменное имя - эту инфу и вводите. Место под данные сойдёт стандартное, можно всегда отобразить на любую папку хоста через fstab клетки. Порт оставляем по умолчанию.

5.2 Затем сетап спросит о базах данных: "Please choose a way to initialize seafile databases"
Для клетки/jail следует выбрать [2], использовать существующие. Это связано с тем, что по умолчанию localhost в клетках настроен не так, как в хост оси. Далее, отвечая на вопросы скрипта об IP сообщайте адрес клетки в явном виде, напр. 192.168.1.66 (но НЕ пишите localhost, 127.х.х.х и тп)

Затем сообщите скрипту имена трёх баз данных (в моём примере ccnet_db seafile_db seahub_db) и имя/пароль пользователя (в моём примере seafile и Pa$SwORd)

6. Если всё прошло гладко, запускаем seafile. Обратите внимание, что во FreeBSD это делается иначе, чем описано в мануале для Linux.
root@seafile:/ # sysrc seafile_enable=YES
seafile_enable: -> YES
root@seafile:/ # sysrc seahub_enable=YES
seahub_enable: -> YES
root@seafile:/ # sysrc seahub_fastcgi=1
seahub_fastcgi: -> 1
root@seafile:/ # service seafile start
root@seafile:/ # service seahub start

7. Если всё гладко - создаём административный аккаунт
root@seafile:/ # cd /usr/local/www/haiwen/seafile-server/
root@seafile:/usr/local/www/haiwen/seafile-server # ./reset-admin.sh

Введите ваш e-mail и пароль доступа к серверу. Забудете - точно также можете поменять.

8. Устанавливаем Nginx (или смотрим в мануал как ставить Апач)
root@seafile:/usr/local/www/haiwen/seafile-server # pkg install nginx
root@seafile:/usr/local/www/haiwen/seafile-server # sysrc nginx_enable=YES
nginx_enable: -> YES

9. Конфиг из архива работает для локальной сети и http. Когда будете устанавливать для доступа снаружи - указать доменное имя и настроить https, но это отдельная тема.
Конфиг ngnix /usr/local/etc/nginx/nginx.conf
В нём всё как в Linux мануале, только путь в секции media во FreeBSD по умолчанию другой.
location /media {
root /usr/local/www/haiwen/seafile-server-latest/seahub;
}

10. Запускаем ngnix
root@seafile:/ # service nginx start

И идём в браузере по IP нашей клетки.


Вводим логин-пароль из п 7


Можно потыкать.
Настройка https в мануале
Отдельно планирую разбираться с LetsEnscript. Но это потом.

cloud, jail, nas, nas4free

Previous post Next post
Up