Файловое хранилище на собственном сервере — задача, у которой слишком много решений и слишком мало правильных. Seafile занимает в этом пространстве особое место: быстрее Nextcloud, гибче «голого» S3, полностью под вашим контролем.
Что это
Seafile — self-hosted платформа для работы с файлами: хранение, синхронизация между устройствами, совместный доступ. Роль — та же, что у Google Drive или Dropbox. Разница в одном: данные остаются на вашей инфраструктуре, а не у стороннего облака.
Архитектура Seafile отличается от обычного файлового сервера. Вместо хранения файлов целиком система режет каждый на блоки фиксированного размера, убирает дубликаты и нумерует ревизии. Правите абзац в стомегабайтном документе — по сети уходит не весь файл, а только изменившийся фрагмент. Принцип тот же, что в Git: дельта вместо полной копии, но на уровне файлового хранилища, а не исходного кода.
За разработку отвечает Seafile Ltd. — немецкая компания с китайскими корнями. Платформа на рынке с 2012 года, за это время закрепилась как рабочая альтернатива Nextcloud для тех, кому нужна синхронизация файлов без лишних модулей.
Ключевое правило: блочное хранение с дедупликацией — главная архитектурная деталь Seafile. Файл не перезаливается целиком при правке: передаётся только изменившийся блок. Это определяет скорость синхронизации и экономию трафика.
Зачем нужно
- Держать файлы на своём сервере — данные не покидают вашу инфраструктуру, нет зависимости от политик облачного провайдера
- Синхронизировать устройства — десктопные и мобильные клиенты обеспечивают двусторонний обмен файлами в реальном времени
- Сохранять версии — каждое изменение фиксируется как отдельная ревизия, откат к любой версии доступен в один клик
- Управлять доступом — библиотеки с разными уровнями видимости, шифрование на клиенте, двухфакторная защита
- Масштабировать через S3 — в Pro-редакции файловые блоки уходят в объектное хранилище, и локальный диск перестаёт лимитировать объём
Как устроено
Инсталляция 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 отличается от альтернатив
| Критерий | Seafile | Google Drive | Dropbox | Nextcloud | Прямой 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 как хранилище для блоков, а поверх держит весь пользовательский контур — веб-интерфейс, десктопные и мобильные клиенты, систему прав, версионирование.
Лицензирование 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-бэкенд не работает, даже если код установлен.
Ссылки
Ссылки
- Официальный сайт: seafile.com
- Документация: manual.seafile.com
- GitHub (Community Edition): github.com/haiwen/seafile
- Тарифы: seafile.com/en/pricing
- Форум сообщества: forum.seafile.com