Как установить и настроить облако Seafile на VPS
Своё облако Seafile на VPS — это личный аналог Dropbox без чужих глаз, лимитов на объём и абонентской платы за место. Вы держите файлы на собственном сервере, синхронизируете их между устройствами и раздаёте ссылки коллегам. Ниже — рабочая установка облака Seafile с базой данных, веб-панелью и HTTPS, проверенная на Ubuntu 22.04/24.04.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Что такое Seafile и когда он оправдан
Seafile — это файловый сервер с клиентской синхронизацией. В отличие от Nextcloud, он делает упор именно на надёжную и быструю передачу файлов: движок хранит данные блоками, дедуплицирует их и отдаёт клиенту только изменившиеся куски. Для больших папок с тысячами мелких файлов это заметно быстрее.
Облако Seafile на VPS оправдано, когда вам нужно: держать рабочие документы вне публичных сервисов, синхронизировать проект между ноутбуком и десктопом, отдавать клиентам файлы по ссылке с паролем и сроком жизни. Если задача — только бэкапы без синхронизации, хватит и обычного FTP или rsync. Но как только появляется живая работа с файлами на нескольких машинах, Seafile окупается.
Минус честно: у бесплатной Community-редакции нет полнотекстового поиска по содержимому и онлайн-редактирования документов из коробки. Для личного и командного хранилища это редко критично.
Ещё одна сильная сторона Seafile — так называемые библиотеки. Каждая библиотека это отдельное зашифрованное или открытое хранилище со своей историей версий и своими правами доступа. Вы можете завести библиотеку «Бухгалтерия» для узкого круга, «Проекты» для всей команды и личную библиотеку, которая не видна никому. Для библиотек с включённым сквозным шифрованием пароль не хранится на сервере в открытом виде, и даже администратор не прочитает содержимое без него — это удобно для действительно чувствительных документов, но помните: забытый пароль такой библиотеки восстановить нельзя.
Сравнивая Seafile с публичными облаками, держите в голове главную выгоду своего сервера: вы не платите за гигабайты и не упираетесь в тариф. Стоимость хранилища равна стоимости диска на VPS, а лимит на размер файла вы задаёте сами. Для команды, которая гоняет тяжёлые макеты, видео или дампы баз, это принципиальная разница по деньгам.
Требования к серверу и подготовка
Для десятка пользователей и хранилища до нескольких сотен гигабайт достаточно скромного VPS: 2 ядра, 2 ГБ RAM, диск под ваши данные. Seafile сам по себе нетребователен, основную нагрузку создаёт база и веб-часть. Если планируете сотни аккаунтов, берите 4 ГБ RAM и SSD.
Начните с обновления системы и создания отдельного пользователя, под которым будет работать сервис — запускать облако от root небезопасно.
apt update && apt upgrade -y
apt install -y python3 python3-pip python3-setuptools python3-venv \
libmysqlclient-dev mariadb-server nginx
adduser --system --group --home /opt/seafile seafile
Заранее решите, по какому домену будет доступно хранилище. Направьте A-запись домена на IP вашего VPS — это понадобится для сертификата HTTPS. Дальше все команды выполняйте от пользователя seafile, кроме установки пакетов и настройки Nginx.
Отдельно подумайте о дисковой раскладке. Каталог с данными Seafile со временем растёт: он хранит не только текущие версии файлов, но и историю изменений, и корзину удалённых объектов. Если данных ожидается много, разумно вынести каталог хранилища на отдельный диск или том и смонтировать его в постоянную точку, например /srv/seafile-data. Тогда вы сможете расширять место, не трогая систему, и переносить данные между серверами простым перемонтированием тома. На старте достаточно проверить, что свободного места вдвое больше, чем предполагаемый объём файлов — запас нужен под историю версий и служебные операции.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPSУстановка базы данных MariaDB
Seafile использует три базы: для ядра, для истории и для веб-панели Seahub. Сначала защитите сервер MariaDB и создайте пользователя.
mysql_secure_installation
mysql -u root -p
В консоли MariaDB создайте пользователя и выдайте права:
CREATE USER 'seafile'@'localhost' IDENTIFIED BY 'СИЛЬНЫЙ_ПАРОЛЬ';
GRANT ALL PRIVILEGES ON `ccnet_db`.* TO 'seafile'@'localhost';
GRANT ALL PRIVILEGES ON `seafile_db`.* TO 'seafile'@'localhost';
GRANT ALL PRIVILEGES ON `seahub_db`.* TO 'seafile'@'localhost';
FLUSH PRIVILEGES;
Сами базы создаст установщик Seafile, важно лишь заранее дать пользователю права. Запишите пароль — он спросится в мастере настройки.
Установка и первичная настройка Seafile
Скачайте актуальную сборку сервера с официального сайта и распакуйте в каталог пользователя. Версию берите из раздела загрузок — здесь показан принцип.
cd /opt/seafile
wget https://download.seadrive.org/seafile-server_11.0.13_x86-64.tar.gz
tar -xzf seafile-server_11.0.13_x86-64.tar.gz
pip3 install django==4.2.* future mysqlclient pillow captcha \
jinja2 sqlalchemy psd-tools pyjwt pymysql
cd seafile-server-11.0.13
./setup-seafile-mysql.sh
Мастер спросит имя сервера, IP или домен, порт и данные подключения к MariaDB. Выберите вариант с уже существующим пользователем базы, введите пароль. После завершения появятся каталоги conf, ccnet, seafile-data и seahub-data. В каталоге conf лежат три ключевых файла: ccnet.conf с идентификацией сервера, seafile.conf с настройками движка хранения и seahub_settings.py с параметрами веб-панели. Именно их вы будете править при тонкой настройке, поэтому запомните расположение.
Разберём, что стоит поправить сразу. В seafile.conf в секции [fileserver] полезно задать max_upload_size и max_download_dir_size, если хотите ограничить аппетиты пользователей. В seahub_settings.py кроме адреса сервиса имеет смысл включить более строгую политику паролей и время жизни сессии. Не меняйте всё разом — сначала добейтесь того, чтобы облако вообще работало по HTTPS, а тюнинг оставьте на потом, иначе будет сложно понять, какая правка что сломала.
Запустите сервисы вручную первый раз, чтобы убедиться, что всё поднимается:
./seafile.sh start
./seahub.sh start 8000
При первом старте Seahub попросит создать администратора — укажите email и пароль. Веб-панель станет доступна на порту 8000.
Nginx как обратный прокси и HTTPS
Отдавать облако наружу напрямую с порта 8000 не стоит. Поставьте Nginx перед Seafile: он завершает HTTPS, отдаёт статику и проксирует запросы. Создайте конфиг сайта /etc/nginx/sites-available/seafile.conf:
server {
listen 80;
server_name cloud.example.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 0;
}
location /seafhttp {
rewrite ^/seafhttp(.*)$ Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS
Установка базы данных MariaDB
Seafile использует три базы: для ядра, для истории и для веб-панели Seahub. Сначала защитите сервер MariaDB и создайте пользователя.
mysql_secure_installation
mysql -u root -p
В консоли MariaDB создайте пользователя и выдайте права:
CREATE USER 'seafile'@'localhost' IDENTIFIED BY 'СИЛЬНЫЙ_ПАРОЛЬ';
GRANT ALL PRIVILEGES ON `ccnet_db`.* TO 'seafile'@'localhost';
GRANT ALL PRIVILEGES ON `seafile_db`.* TO 'seafile'@'localhost';
GRANT ALL PRIVILEGES ON `seahub_db`.* TO 'seafile'@'localhost';
FLUSH PRIVILEGES;
Сами базы создаст установщик Seafile, важно лишь заранее дать пользователю права. Запишите пароль — он спросится в мастере настройки.
Установка и первичная настройка Seafile
Скачайте актуальную сборку сервера с официального сайта и распакуйте в каталог пользователя. Версию берите из раздела загрузок — здесь показан принцип.
cd /opt/seafile
wget https://download.seadrive.org/seafile-server_11.0.13_x86-64.tar.gz
tar -xzf seafile-server_11.0.13_x86-64.tar.gz
pip3 install django==4.2.* future mysqlclient pillow captcha \
jinja2 sqlalchemy psd-tools pyjwt pymysql
cd seafile-server-11.0.13
./setup-seafile-mysql.sh
Мастер спросит имя сервера, IP или домен, порт и данные подключения к MariaDB. Выберите вариант с уже существующим пользователем базы, введите пароль. После завершения появятся каталоги conf, ccnet, seafile-data и seahub-data. В каталоге conf лежат три ключевых файла: ccnet.conf с идентификацией сервера, seafile.conf с настройками движка хранения и seahub_settings.py с параметрами веб-панели. Именно их вы будете править при тонкой настройке, поэтому запомните расположение.
Разберём, что стоит поправить сразу. В seafile.conf в секции [fileserver] полезно задать max_upload_size и max_download_dir_size, если хотите ограничить аппетиты пользователей. В seahub_settings.py кроме адреса сервиса имеет смысл включить более строгую политику паролей и время жизни сессии. Не меняйте всё разом — сначала добейтесь того, чтобы облако вообще работало по HTTPS, а тюнинг оставьте на потом, иначе будет сложно понять, какая правка что сломала.
Запустите сервисы вручную первый раз, чтобы убедиться, что всё поднимается:
./seafile.sh start
./seahub.sh start 8000
При первом старте Seahub попросит создать администратора — укажите email и пароль. Веб-панель станет доступна на порту 8000.
Nginx как обратный прокси и HTTPS
Отдавать облако наружу напрямую с порта 8000 не стоит. Поставьте Nginx перед Seafile: он завершает HTTPS, отдаёт статику и проксирует запросы. Создайте конфиг сайта /etc/nginx/sites-available/seafile.conf:
server {
listen 80;
server_name cloud.example.com;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 0;
}
location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
proxy_pass http://127.0.0.1:8082;
client_max_body_size 0;
proxy_request_buffering off;
}
}
Активируйте сайт и получите сертификат Let's Encrypt:
ln -s /etc/nginx/sites-available/seafile.conf /etc/nginx/sites-enabled/
apt install -y certbot python3-certbot-nginx
certbot --nginx -d cloud.example.com
nginx -t && systemctl reload nginx
Параметр client_max_body_size 0 снимает ограничение на размер загружаемого файла — иначе большие файлы будут обрываться. В файле conf/seahub_settings.py пропишите SERVICE_URL = "https://cloud.example.com" и адрес для передачи файлов, затем перезапустите Seahub.
Автозапуск через systemd
Чтобы облако Seafile поднималось после перезагрузки VPS, оформите два юнита systemd. Создайте /etc/systemd/system/seafile.service:
[Unit]
Description=Seafile Server
After=network.target mariadb.service
[Service]
Type=forking
User=seafile
Group=seafile
ExecStart=/opt/seafile/seafile-server-latest/seafile.sh start
ExecStop=/opt/seafile/seafile-server-latest/seafile.sh stop
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Аналогичный юнит seahub.service с зависимостью After=seafile.service запускает веб-часть командой seahub.sh start. Включите оба:
systemctl daemon-reload
systemctl enable --now seafile seahub
Теперь сервер сам стартует после ребута. Проверьте systemctl status seahub — активный статус означает, что панель работает. Для эксплуатации настройте бэкап каталога seafile-data и дампы баз через mysqldump, а также следите за местом на диске: история версий со временем разрастается.
Развернуть облако Seafile удобно на VPS у MAATRIX: локация на выбор (RU для минимального пинга, US или UK для зарубежной аудитории), чистый IP под ваш домен и оплата из России картой, СБП или криптой. Сервер поднимается за несколько минут — останется только пройти шаги выше.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS break;
proxy_pass http://127.0.0.1:8082;
client_max_body_size 0;
proxy_request_buffering off;
}
}
Активируйте сайт и получите сертификат Let's Encrypt:
ln -s /etc/nginx/sites-available/seafile.conf /etc/nginx/sites-enabled/
apt install -y certbot python3-certbot-nginx
certbot --nginx -d cloud.example.com
nginx -t && systemctl reload nginx
Параметр client_max_body_size 0 снимает ограничение на размер загружаемого файла — иначе большие файлы будут обрываться. В файле conf/seahub_settings.py пропишите SERVICE_URL = "https://cloud.example.com" и адрес для передачи файлов, затем перезапустите Seahub.
Автозапуск через systemd
Чтобы облако Seafile поднималось после перезагрузки VPS, оформите два юнита systemd. Создайте /etc/systemd/system/seafile.service:
[Unit]
Description=Seafile Server
After=network.target mariadb.service
[Service]
Type=forking
User=seafile
Group=seafile
ExecStart=/opt/seafile/seafile-server-latest/seafile.sh start
ExecStop=/opt/seafile/seafile-server-latest/seafile.sh stop
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Аналогичный юнит seahub.service с зависимостью After=seafile.service запускает веб-часть командой seahub.sh start. Включите оба:
systemctl daemon-reload
systemctl enable --now seafile seahub
Теперь сервер сам стартует после ребута. Проверьте systemctl status seahub — активный статус означает, что панель работает. Для эксплуатации настройте бэкап каталога seafile-data и дампы баз через mysqldump, а также следите за местом на диске: история версий со временем разрастается.
Развернуть облако Seafile удобно на VPS у MAATRIX: локация на выбор (RU для минимального пинга, US или UK для зарубежной аудитории), чистый IP под ваш домен и оплата из России картой, СБП или криптой. Сервер поднимается за несколько минут — останется только пройти шаги выше.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPSОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Чем облако Seafile лучше Nextcloud?
Seafile быстрее синхронизирует большие папки с множеством мелких файлов за счёт блочного хранения и дедупликации, но у него меньше встроенных офисных функций. Для чистого файлового хранилища он предпочтительнее.
Сколько нужно RAM для Seafile на VPS?
Для личного использования и небольшой команды хватает 2 ГБ. Основную память съедают MariaDB и Seahub; при десятках активных пользователей берите 4 ГБ.
Обязателен ли HTTPS?
Да. Без TLS пароли и файлы идут по сети открытым текстом. Сертификат Let's Encrypt бесплатен и ставится одной командой certbot.
Как перенести Seafile на другой сервер?
Скопируйте каталоги ccnet, conf, seafile-data, seahub-data и восстановите дампы баз через mysqldump. После правки домена в настройках облако запустится на новом VPS без потери данных.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.