8.2.14 Развертывание и настройка Seafile на сервере

The Host Banner SeaFile

Seafile — это высокопроизводительная платформа для синхронизации и совместной работы с файлами с открытым исходным кодом. Это решение позволяет вам развернуть собственное облачное хранилище, аналогичное Dropbox или Google Drive, с полным контролем над своими данными.

Преимущества Seafile

  • Высокая производительность с поддержкой крупных файлов;
  • Клиентское и серверное шифрование;
  • Совместная работа и управление правами доступа;
  • Версионность и восстановление файлов;
  • Поддержка клиентов для всех популярных ОС.

Змінні

В статье используются переменные, которые обязательно нужно заменить на Ваши значения.

  • <PASSWORD> – ваш наднадёжный пароль
  • <SEAFILE_SERVER_HOSTNAME> – домен или IP для доступа к веб-интерфейсу
  • INIT_SEAFILE_MYSQL_ROOT_PASSWORD — задайте безопасный пароль
  • SEAFILE_MYSQL_DB_PASSWORD — пароль пользователя seafile
  • SEAFILE_SERVER_HOSTNAME — домен или IP-адрес Вашего сервера
  • JWT_PRIVATE_KEY — сгенерируйте: pwgen -s 40 1
  • INIT_SEAFILE_ADMIN_EMAIL и INIT_SEAFILE_ADMIN_PASSWORD — email и пароль админа

Подготовка сервера

Требования

  • Заказанный Виртуальный или Выделенный сервер;
  • Минимум: 2 CPU, 4 ГБ RAM, 10+ ГБ SSD;
  • Ubuntu 24.04 LTS;
  • sudo права либо root-доступ к серверу.
  • Установленный Docker

Важно: перед началом обязательно установить Docker

Установка Seafile

Создаём каталог, в котором будут находиться конфигурационные файлы:

mkdir /opt/seafile
cd /opt/seafile

Скачиваем переменные окружения и Docker Compose файлы:

wget -O .env https://manual.seafile.com/12.0/repo/docker/ce/env
wget https://manual.seafile.com/12.0/repo/docker/seadoc.yml
wget https://manual.seafile.com/12.0/repo/docker/ce/seafile-server.yml
wget https://manual.seafile.com/12.0/repo/docker/caddy.yml

wget

Настройка переменных окружения

Редактируем файл .env:

nano .env

Укажите значения переменных:

  • INIT_SEAFILE_MYSQL_ROOT_PASSWORD — задайте безопасный пароль
  • SEAFILE_MYSQL_DB_PASSWORD — пароль пользователя seafile
  • SEAFILE_SERVER_HOSTNAME — ваш домен или IP
  • JWT_PRIVATE_KEY — сгенерируйте: pwgen -s 40 1
  • INIT_SEAFILE_ADMIN_EMAIL и INIT_SEAFILE_ADMIN_PASSWORD — email и пароль админа

Обратите внимание: необходимо проверить, чтобы все “обязательные” поля были заполнены.

Настройка Seafile

Запускаем Seafile в фоне:

sudo docker compose up -d

docker_compose_up

Создаются контейнеры:

  • seafile-mysql
  • seafile
  • seafile-caddy (прокси/сертификаты)

По умолчанию пользователь seafile создан только для подключения изнутри контейнера. Чтобы разрешить подключение с любых хостов, необходимо:

sudo docker exec -it seafile-mysql mysql -u root -p

MySQL

Ввести пароль из INIT_SEAFILE_MYSQL_ROOT_PASSWORD, после чего в MySQL выполнить:

CREATE USER 'seafile'@'%' IDENTIFIED BY '<PASSWORD>';
GRANT ALL PRIVILEGES ON *.* TO 'seafile'@'%';
FLUSH PRIVILEGES;
EXIT;

Выйдите из контейнера выполнив команду:

  1. exit

Инициализация Seafile

Войдите в контейнер seafile:

sudo docker exec -it seafile bash

exec_seafile

Перейти в каталог версии:

cd /opt/seafile/seafile-server-12.0.14

Запустить скрипт настройки:

./setup-seafile-mysql.sh

server_conf_seafile

В процессе мастера указать:

  • Имя сервера (любое описание);
  • IP или домен (должен совпадать с SEAFILE_SERVER_HOSTNAME)
  • Порт Seafile (по умолчанию 8082)
  • Хост MySQL: seafile-mysql
  • Порт MySQL: 3306
  • Пользователь MySQL: seafile
  • Пароль MySQL: тот же, что и в INIT_SEAFILE_MYSQL_DB_PASSWORD
  • Выбрать создание новых баз данных (вариант [1])

init_seafile_databases

По завершении вы увидите сообщение об успешном создании баз и конфигурации.

success_installation

Создание администратора и запуск служб

Оставаясь в том же каталоге, выполните:

./seafile.sh start
./seahub.sh start

При первом запуске Seahub будет предложено создать учётную запись администратора:

  1. Ввести email (INIT_SEAFILE_ADMIN_EMAIL)
  2. Ввести пароль администратора (INIT_SEAFILE_ADMIN_PASSWORD)

success_create_admin.png

После успешного создания нажмите Ctrl+C для остановки Seahub (для настройки).

Проверка работы

Для одновременного мониторинга всех журналов Seafile (извне контейнера) запустите команду:

sudo tail -f /opt/seafile-data/seafile.log

Откройте в браузере:

http://<SEAFILE_SERVER_HOSTNAME>/

Seafile welcome

Распространённые ошибки
Проблема Причина Решение
Seafile не запускается Неверные данные в .env или БД Проверить значение переменных, права доступа к томам
502 Bad Gateway Seahub не запущен docker logs seafile-server и повторный запуск
Ограничение размера загрузки Nginx/Caddy client_max_body_size Добавить в конфиг прокси: client_max_body_size 0;
Ошибка SMTP Некорректные почтовые настройки Проверить seahub_settings.py и сетевые соединения