8.2.14 Розгортання та налаштування Seafile на сервері

Seafile — це високопродуктивна платформа з відкритим кодом для синхронізації та спільної роботи з файлами. Вона дозволяє розгорнути власне хмарне сховище, аналогічне Dropbox або Google Drive, з повним контролем над даними.
Переваги Seafile
- Висока продуктивність із підтримкою великих файлів;
- Клієнтське та серверне шифрування;
- Спільна робота та керування правами доступу;
- Версійність і відновлення файлів;
- Підтримка клієнтів для всіх популярних ОС. <$>
<$>[info] [label Змінні які потрібно замінити] У статті використовуються змінні, які обов’язково потрібно замінити на Ваші значення.
<PASSWORD>– ваш надійний пароль<SEAFILE_SERVER_HOSTNAME>– домен або IP для доступу до веб інтерфейсуINIT_SEAFILE_MYSQL_ROOT_PASSWORD– надійний пароль для rootSEAFILE_MYSQL_DB_PASSWORD– пароль для користувачаseafileJWT_PRIVATE_KEY– згенеруйте командоюpwgen -s 40 1INIT_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

Відредагуйте файл .env:
nano .env
Задайте такі значення:
INIT_SEAFILE_MYSQL_ROOT_PASSWORD— надійний пароль для root;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

Контейнери, які будуть створені:
seafile-mysqlseafileseafile-caddy(проксі / TLS-сертифікати)
Типово користувач seafile має доступ лише всередині контейнера. Для доступу ззовні:
sudo docker exec -it seafile-mysql mysql -u root -p

Після введення пароля (із INIT_SEAFILE_MYSQL_ROOT_PASSWORD) виконайте в MySQL:
CREATE USER 'seafile'@'%' IDENTIFIED BY '<PASSWORD>';
GRANT ALL PRIVILEGES ON *.* TO 'seafile'@'%';
FLUSH PRIVILEGES;
EXIT;
Вийдіть із контейнера:
exit
Ініціалізація Seafile
Увійдіть у контейнер Seafile:
sudo docker exec -it seafile bash
Перейдіть у каталог з сервером:
cd /opt/seafile/seafile-server-12.0.14
Запустіть скрипт налаштування:
./setup-seafile-mysql.sh

Під час встановлення вкажіть:
- Ім’я сервера (будь-яке);
- IP/домен (збігається з
SEAFILE_SERVER_HOSTNAME); - Порт Seafile — 8082;
- Хост MySQL:
seafile-mysql; - Порт MySQL: 3306;
- Користувач MySQL:
seafile; - Пароль MySQL: як у
.env; - Створити нові бази (опція
[1]).

Створення адміністратора та запуск служб
У тому ж каталозі виконайте:
./seafile.sh start
./seahub.sh start
При першому запуску буде запропоновано ввести:
- Email адміністратора (
INIT_SEAFILE_ADMIN_EMAIL) - Пароль адміністратора (
INIT_SEAFILE_ADMIN_PASSWORD)

Після створення — натисніть Ctrl+C, щоб зупинити Seahub для подальшого налаштування.
Перевірка роботи
Щоб переглянути журнали Seafile:
sudo tail -f /opt/seafile-data/seafile.log
Відкрийте у браузері:
http://<SEAFILE_SERVER_HOSTNAME>/

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


