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
– пароль для користувачаseafile
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
Відредагуйте файл .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-mysql
seafile
seafile-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 та мережу |