Seafile: файловое хранилище на своём сервере с S3-бэкендом | Виталий Воробьев
VorobeoffAIВиталий Воробьев

Seafile: файловое хранилище на своём сервере с S3-бэкендом

Seafile — self-hosted альтернатива Google Drive и Dropbox с блочным хранением, версионированием и S3-бэкендом в Pro-редакции. Архитектура, лицензирование, риски и выбор провайдера.

Файловое хранилище на собственном сервере — задача, у которой слишком много решений и слишком мало правильных. Seafile занимает в этом пространстве особое место: быстрее Nextcloud, гибче «голого» S3, полностью под вашим контролем.

Что это

Seafile — self-hosted платформа для работы с файлами: хранение, синхронизация между устройствами, совместный доступ. Роль — та же, что у Google Drive или Dropbox. Разница в одном: данные остаются на вашей инфраструктуре, а не у стороннего облака.

Архитектура Seafile отличается от обычного файлового сервера. Вместо хранения файлов целиком система режет каждый на блоки фиксированного размера, убирает дубликаты и нумерует ревизии. Правите абзац в стомегабайтном документе — по сети уходит не весь файл, а только изменившийся фрагмент. Принцип тот же, что в Git: дельта вместо полной копии, но на уровне файлового хранилища, а не исходного кода.

За разработку отвечает Seafile Ltd. — немецкая компания с китайскими корнями. Платформа на рынке с 2012 года, за это время закрепилась как рабочая альтернатива Nextcloud для тех, кому нужна синхронизация файлов без лишних модулей.

Ключевое правило: блочное хранение с дедупликацией — главная архитектурная деталь Seafile. Файл не перезаливается целиком при правке: передаётся только изменившийся блок. Это определяет скорость синхронизации и экономию трафика.

Зачем нужно

  • Держать файлы на своём сервере — данные не покидают вашу инфраструктуру, нет зависимости от политик облачного провайдера
  • Синхронизировать устройства — десктопные и мобильные клиенты обеспечивают двусторонний обмен файлами в реальном времени
  • Сохранять версии — каждое изменение фиксируется как отдельная ревизия, откат к любой версии доступен в один клик
  • Управлять доступом — библиотеки с разными уровнями видимости, шифрование на клиенте, двухфакторная защита
  • Масштабировать через S3 — в Pro-редакции файловые блоки уходят в объектное хранилище, и локальный диск перестаёт лимитировать объём
Клиент Seafile для синхронизации файлов на компьютере
Клиент Seafile для синхронизации файлов на компьютере

Как устроено

Инсталляция Seafile — четыре слоя, каждый масштабируется отдельно:

СлойНазначениеЧто выбрать
Клиенты
Десктоп, мобильные приложения, веб-интерфейс
Официальные клиенты Seafile для платформ
Reverse proxy
SSL-терминация, проксирование, кеширование статики
Nginx или Caddy
Сервер Seafile
Python/C-приложение, ядро системы
VPS или выделенный сервер, Docker
База данных
Метаданные: структура библиотек, права, пользователи, версии
MySQL или MariaDB
S3-хранилище
Файловые блоки в объектном хранилище (только Pro)
AWS S3, Wasabi, Backblaze B2, MinIO

Серверная часть — приложение на Python и C, запускаемое как сервис. Удобный способ установки — Docker. Базовые требования к серверу: 2 vCPU и 2 ГБ RAM для небольшой команды, 4 vCPU и 4 ГБ RAM для 50+ пользователей. SSD нужен для операционной системы и кеша — сами файлы уйдут в S3, если настроен Pro-бэкенд.

База данных хранит только метаданные: структуру библиотек, права доступа, информацию о пользователях, историю версий. Сами файлы в БД не лежат. Размер базы остаётся небольшим даже при терабайтах файлов — метаданные компактны.

Reverse proxy перед Seafile закрывает три задачи: SSL-терминация через Let’s Encrypt, проксирование запросов к серверу и кеширование статики с ограничением скорости. В документации Seafile есть готовые конфиги для Nginx и Apache.

В Pro-редакции файловые блоки можно держать в S3-совместимом объектном хранилище. При настройке Seafile создаёт три бакета:

  • seafile-blocks — блоки файлов
  • seafile-commits — метаданные коммитов
  • seafile-fs — структура файловой системы

Важно: при подключении S3-бэкенда поднимите memcached или Redis на минимум 128 МБ. Seafile кеширует объекты из S3 — без слоя кеширования каждое чтение файла уходит в объектное хранилище, и задержка складывается.

Редакции: Community Edition и Professional Edition

Две редакции Seafile, и выбор между ними задаёт архитектуру всего решения.

Community Edition (CE) — open-source, бесплатная лицензия. Для личного использования и небольших команд. Включает:

  • Синхронизацию файлов между устройствами (клиенты для Windows, macOS, Linux, iOS, Android)
  • Версионирование файлов
  • Публичные и приватные библиотеки
  • Шифрование на стороне клиента
  • WebDAV
  • REST API
  • Двухфакторную аутентификацию

Professional Edition (Pro) — расширенная версия с корпоративными функциями, закрытый код, коммерческая лицензия. Дополнительно к CE:

  • S3-совместимый бэкенд для хранения файлов (AWS S3, MinIO, Wasabi и другие)
  • Кластерную установку и высокую доступность
  • Полнотекстовый поиск по содержимому файлов
  • Аудит действий пользователей
  • Антивирусную проверку файлов на сервере
  • Управление отделами и организационную структуру
  • LDAP/AD синхронизацию групп
  • Онлайн-просмотр документов (Office, PDF)
  • Расширенные правила совместного доступа
  • Метаданные файлов с автоматической генерацией свойств
  • Гибкие представления: таблица, галерея, канбан, карта

Внимание: S3-совместимый бэкенд доступен только в Professional Edition. Community Edition хранит файлы только на локальном диске сервера — подключить объектное хранилище нельзя.

Чем Seafile отличается от альтернатив

КритерийSeafileGoogle DriveDropboxNextcloudПрямой S3
Где данные
Ваш сервер
Google Cloud
AWS
Ваш сервер
Облако провайдера
Синхронизация
Блочная, быстрая
Пофайловая
Блочная
Пофайловая, медленнее
Нет
Версионирование
Встроенное
Да
Да
Да
Только S3 versioning
Офисные документы
Через Collabora/OnlyOffice
Нативно
Через интеграции
Через Collabora/OnlyOffice
Нет
Производительность
Высокая
Высокая
Высокая
Средняя
Зависит от клиента
Контроль данных
Полный
Нет
Нет
Полный
Частичный
Расширяемость
API, WebDAV
API
API
Плагины, API
S3 API
Сложность эксплуатации
Средняя
Нулевая
Нулевая
Высокая
Низкая

Seafile и Nextcloud сравнивают чаще всего. Nextcloud претендует на роль «всё в одном»: календари, контакты, чаты, доски задач. Seafile делает одно — хранит и синхронизирует файлы. Узкая специализация даёт выигрыш в трёх направлениях: надёжность, скорость, простота обслуживания.

Seafile и «голый» S3 решают разные задачи. S3 подходит для бэкапов и статических файлов, но не предоставляет интерфейса, клиентских приложений и управления правами. Seafile закрывает этот пробел: берёт S3 как хранилище для блоков, а поверх держит весь пользовательский контур — веб-интерфейс, десктопные и мобильные клиенты, систему прав, версионирование.

Веб-интерфейс Seafile: боковое меню, папки, список файлов и меню загрузки
Веб-интерфейс Seafile: боковое меню, папки, список файлов и меню загрузки

Лицензирование Professional Edition

Seafile Pro работает по модели годовой подписки. Официальные цены актуальны на момент публикации; проверяйте на сайте.

ПользователейСтоимость в год (USD)
До 3
Бесплатно
До 9
$100 фиксировано
10–249
$48 за пользователя
250–499
$44 за пользователя
500–749
$40 за пользователя
750–999
$35 за пользователя
1000+
По запросу

Для образовательных учреждений — скидка 50%. Для государственных организаций — 25%.

Бесплатная лицензия Pro на 3 пользователя включает S3-бэкенд и все корпоративные функции. Для фрилансера или микрокоманды этого достаточно — связка Seafile + S3 обойдётся в $0 за лицензию, оплачивать нужно только S3-хранилище.

Почему S3 доступен только в Pro

В Community Edition код для работы с S3 физически отсутствует. Драйвер S3 — часть проприетарного кода Professional Edition, реализованная через библиотеку boto3. Это осознанное решение разработчиков: S3-бэкенд — ключевая функция масштабирования, и она вынесена в коммерческую редакцию.

Но бесплатная лицензия Pro на 3 пользователя снимает эту проблему для персональных сценариев. S3-бэкенд доступен без затрат на лицензию — оплачивать нужно только объектное хранилище у провайдера.

S3-совместимые провайдеры

ПровайдерХранениеEgressОсобенности
AWS S3
~$0.023/ГБ/мес
$0.09/ГБ
Эталон S3-совместимости, широкая сеть регионов
Wasabi
$0.0069/ГБ/мес
Бесплатно до объёма хранения
Минимум 1 ТБ оплаты, 90 дней минимального хранения
Backblaze B2
$0.006/ГБ/мес
Бесплатно до 3× хранимого
S3-совместимый API, бесплатный egress через Cloudflare
Hetzner Object Storage
€0.005/ГБ/мес
Бесплатно в пределах тарифа
Европейские дата-центры, GDPR
MinIO (self-hosted)
Стоимость дисков
Бесплатно
Полный контроль, open-source, нужен свой сервер
Selectel (Россия)
~₽1.27/ГБ/мес
Платный
Дата-центры в РФ, S3-совместимый API

Совет: для большинства сценариев оптимальны Wasabi или Backblaze B2 — цена в 3–4 раза ниже AWS при достаточной совместимости с S3 API. Если критично хранение в Европе — Hetzner. Если в России — Selectel.

Когда использовать

СитуацияПодходитПочему
Нужен «свой Google Drive» для команды
Да
Полный контроль над данными, синхронизация, версионирование
Файлы растут, локальный диск переполняется
Да (Pro)
S3-бэкенд снимает ограничение локального диска
Нужен только бэкап в S3
Нет
Проще использовать S3 напрямую, без файлового слоя
Нужен календарь, чат, доска задач
Нет
Это к Nextcloud — Seafile не делает «всё в одном»
1–3 пользователя, нужен S3
Да (Pro Free)
Бесплатная лицензия Pro на 3 пользователя
Команда 50+ человек
Да (Pro)
Кластеризация, аудит, LDAP/AD, полнотекстовый поиск
Нужен доступ на уровне отдельных файлов
С оговоркой
Права — на уровне библиотек, внутри гранулярность ниже

Пример

Минимальная конфигурация Seafile Pro с S3-бэкендом для микрокоманды:

# Docker Compose: Seafile Pro + MariaDB + Memcached
# Файлы уходят в S3-совместимое хранилище (Wasabi/Backblaze B2)

# 1. Создайте три бакета в S3-провайдере:
#    seafile-blocks, seafile-commits, seafile-fs

# 2. В seaf.conf укажите S3-бэкенд:
# [storage_backend]
# name = s3
# bucket = seafile-blocks
# key_id = YOUR_KEY
# key = YOUR_SECRET
# region = eu-central-1
# host = s3.wasabi.com

# 3. Запустите контейнеры:
docker compose up -d

Лицензия Pro Free на 3 пользователя оформляется на сайте seafile.com. После установки файлы автоматически уходят в S3, локальный диск используется только для кеша.

Ограничения

ПунктПояснение

Только локальный диск в CE — Community Edition не поддерживает S3 или другие объектные хранилища.

Файлы лежат на диске сервера, и при росте объёма единственный путь — Pro. Если хранилище нужно сразу, CE не подойдёт.

S3-бэкенд медленнее локального SSD — первое обращение к файлу всегда идёт в объектное хранилище.

Memcached или Redis смягчают проблему для повторных обращений, но холодный доступ упирается в латентность S3. Если сервер в Европе, а бакет в Вирджинии — задержка ощутимая. Держите бакет в том же регионе, что и сервер.

Права доступа на уровне библиотек — Seafile управляет правами через библиотеки (аналог папок верхнего уровня).

Внутри библиотеки гранулярность ограничена. Если нужен контроль на уровне отдельных файлов — это не сильная сторона Seafile, продумывайте структуру библиотек заранее.

Миграция занимает часы и дни — переход с локального диска на S3 и обратно — нетривиальная операция.

Утилиты миграции существуют, но на больших объёмах процесс идёт часами, во время миграции сервис недоступен. Планируйте архитектуру хранения до запуска.

Бесплатная лицензия Pro ограничена 3 пользователями — четвёртая учётная запись означает покупку лицензии на 9.

Пользователь в терминологии Seafile — это аккаунт, а не параллельная сессия. Деактивированные аккаунты не возвращают слот обратно до истечения срока лицензии.

Не все S3-провайдеры одинаково совместимы — Seafile использует boto3 и ожидает стандартный S3 API.

Проверяйте поддержку multipart upload, корректную работу с presigned URL и совместимость с версией API вашей версии Seafile. Backblaze B2 исторически имел нюансы совместимости — прогоняйте тестовый сценарий перед продакшеном.

Антипаттерны

ПунктПояснение

Держать бакет и сервер в разных регионах — когда сервер Seafile стоит в Европе, а S3-бакет в США, каждый запрос к файлу пересекает Атлантику.

Латентность вырастает в разы, memcached бессилен для холодных обращений. Провайдера S3 выбирайте с дата-центром рядом с сервером Seafile.

Считать только цену хранения S3 — Seafile генерирует много PUT/GET-операций из-за блочного хранения: каждый файл дробится на блоки, каждый блок — отдельный запрос.

Egress при активной синхронизации тоже существенный. Wasabi взимает плату минимум за 1 ТБ, даже если фактически храните меньше. Считайте полную стоимость: хранение + операции + исходящий трафик.

Не настраивать бэкап MySQL-базы — S3 хранит файловые блоки, но метаданные (права, пользователи, структура библиотек) лежат в MySQL.

Если база повреждается — файлы в S3 есть, но Seafile не может их прочитать. Регулярный дамп MySQL обязателен. S3 — не бэкап: настройте версионирование в S3, кросс-региональную репликацию и отдельный дамп базы.

Запускать CE и надеяться подключить S3 потом — S3-драйвер отсутствует в коде CE.

Миграция с CE на Pro на работающей системе — отдельный проект с переустановкой. Если S3 нужен — сразу ставьте Pro, бесплатная лицензия на 3 пользователя решает вопрос.

Чеклист

ПунктПояснение

Регион S3-бакета совпадает с регионом сервера — latency между сервером и хранилищем определяет скорость работы.

Проверьте пинг от сервера до S3-эндпоинта: всё, что выше 50 мс, будет ощутимым для пользователей.

Memcached или Redis настроен с минимум 128 МБ — Seafile активно кеширует объекты из S3.

Без слоя кеширования каждое обращение к файлу уходит в объектное хранилище, и задержка складывается.

Три бакета созданы в S3 до запуска — seafile-blocks, seafile-commits, seafile-fs.

Seafile не создаёт их автоматически, запуск без бакетов падает с ошибкой.

Тестовый сценарий S3-провайдера пройден — загрузка, скачивание, удаление, sync.

Особенно для Backblaze B2 и других провайдеров с историческими нюансами совместимости.

Дамп MySQL-базы настроен и проверен — метаданные в базе не менее важны, чем файлы в S3.

Восстановление из дампа проверено хотя бы один раз.

Лицензия Pro активирована — даже для бесплатных 3 пользователей нужна активная лицензия.

Без неё S3-бэкенд не работает, даже если код установлен.

Ссылки

Продолжить тему

Материалы, которые связаны с этим разбором

Подборка учитывает тему, редкие теги и смысл заголовка с описанием материала.

Открыть материалы по теме ↗

Обсудить задачу

Есть задача, которую хотите усилить с помощью ИИ?

Опишите процесс, что уже пробовали и какой результат хотите получить. Я помогу понять, где ИИ и автоматизация действительно дадут эффект, и предложу понятный следующий шаг.

Для первого сообщения достаточно пары абзацев — готовое техническое задание не требуется.