Seafile — сервис для развёртывания на собственном сервере (self-hosted), хранения, синхронизации и совместного использования файлов. Community Edition подходит для базовой односерверной установки, а Professional Edition добавляет S3-бэкенд, расширенные права и кластерные сценарии.
Оглавление
- Что такое Seafile и основные возможности — библиотеки, синхронизация, совместный доступ и API.
- Community Edition и Professional Edition — различия редакций и системные требования.
- Архитектура установки — компоненты односерверной и кластерной конфигурации.
- Подключение S3-бэкенда в Seafile 13 — переменные окружения, конфигурационный файл, IAM Role и SSE-C.
- Права доступа — библиотеки, режимы доступа и разрешения подкаталогов.
- Полезные сценарии — личное хранилище и командная установка с S3.
- Проверка результата — минимальный сквозной тест.
- Риски перед внедрением и официальные ссылки — ограничения, резервное копирование и документация.
Что такое Seafile
Seafile организует файлы в библиотеки. У каждой библиотеки есть владелец, который может открыть доступ отдельным пользователям или группам в режиме только чтения (read-only) либо чтения и записи (read-write).
Библиотеку с доступом только для чтения можно синхронизировать с настольным клиентом. Локальные изменения при этом не отправляются на сервер; команда повторной синхронизации возвращает содержимое к серверной версии.
Для работы предусмотрены веб-интерфейс и настольная синхронизация. В официальной документации также описаны Web API, административный API, WebDAV и интеграции с офисными пакетами.
Основные возможности
- хранение файлов в библиотеках и синхронизация с настольными клиентами;
- совместный доступ пользователям и группам в режимах только чтения или чтения и записи;
- Web API, административный API и WebDAV;
- интеграции с офисными пакетами;
- в Professional Edition — S3-бэкенд, расширенный поиск, разрешения подкаталогов и кластерное развёртывание.
Community Edition и Professional Edition
Community Edition
Community Edition подходит для односерверной установки и базовых сценариев хранения и синхронизации. В стандартное Docker-развёртывание входят Seafile, Redis, MariaDB, SeaDoc и Caddy.
Минимальные требования ниже приведены по актуальной документации Seafile; источник проверен 8 сентября 2026 года:
- 2 ядра CPU с рекомендуемой частотой выше 2 ГГц;
- 2 ГБ оперативной памяти;
- не менее 10 ГБ свободного места, рекомендуется более 50 ГБ.
Эти значения относятся к самому сервису и встроенным компонентам. Для OnlyOffice и других дополнительных систем потребуются дополнительные ресурсы.
Professional Edition
Professional Edition предназначена для сценариев, где нужны объектное хранилище, расширенный поиск, детальные права или кластерное развёртывание.
Для стандартной Docker-установки Pro документация рекомендует:
- 4 ядра CPU;
- 4 ГБ оперативной памяти;
- более 50 ГБ дискового пространства.
Требования можно снизить до 2 ядер и 2 ГБ памяти в двух вариантах: использовать SeaSearch вместо Elasticsearch либо разместить существующий Elasticsearch на другой машине или узле.
Архитектура установки
Упрощённая схема типовой односерверной конфигурации выглядит так:
flowchart LR
A["Клиенты"] --> B["Caddy или обратный прокси-сервер"]
B --> C["Seafile Server"]
C --> D["MariaDB"]
C --> E["Redis"]
C --> F["Локальный диск или S3-бэкенд (Pro)"]
C --> G["Поисковый индекс<br/>(Pro: Elasticsearch или SeaSearch)"]Сервер приложений
Официальная документация поддерживает Docker-развёртывание. Для бинарной установки перечислены Ubuntu 22.04, Ubuntu 24.04, Debian 11 и Debian 12.
Стандартная Docker-конфигурация включает Caddy. В документации также есть отдельные разделы про HTTPS и использование другого обратного прокси-сервера.
База данных и кеш
Стандартная Docker-конфигурация предусматривает MariaDB и Redis. Для S3-бэкенда документация рекомендует включить кеш объектов и выделить для Redis или memcached не менее 128 МБ памяти.
Кластер
Кластерный режим относится к Professional Edition. Минимальная конфигурация состоит из двух узлов, но документация рекомендует более трёх. При одном узле следует использовать обычную односерверную установку.
Для кластера документация предполагает отдельное размещение Redis или memcached, MariaDB, поискового индекса и S3-подобного объектного хранилища. На каждом узле должны выполняться требования Professional Edition.
Подключение S3-бэкенда в Seafile 13
S3-бэкенд позволяет хранить объекты Seafile в AWS S3 или совместимом объектном хранилище. Официальная документация приводит примеры для AWS, Exoscale, Hetzner и самостоятельно развёрнутых систем на базе MinIO, Ceph RADOS Gateway или OpenStack Swift.
Совместимость стороннего провайдера нельзя считать автоматической: Seafile прямо предупреждает, что универсальная конфигурация может работать не со всеми реализациями S3 API.
Для одного S3-бэкенда нужно подготовить как минимум три бакета:
S3_COMMIT_BUCKET— объекты коммитов;S3_FS_BUCKET— объекты структуры файлов;S3_BLOCK_BUCKET— блоки файлов.
Названия бакетов выбирает администратор. Они должны соответствовать правилам именования S3; в частности, документация рекомендует не использовать заглавные буквы.
Конфигурация через переменные окружения
Начиная с Seafile 13, рекомендуемый способ настройки — переменные окружения. Пример:
# Тип хранения объектов
SEAF_SERVER_STORAGE_TYPE=s3
# Три бакета для разных типов объектов
S3_COMMIT_BUCKET=my-commit-objects
S3_FS_BUCKET=my-fs-objects
S3_BLOCK_BUCKET=my-block-objects
# Учётные данные S3 через секреты среды выполнения
S3_KEY_ID=your-key-id
S3_SECRET_KEY=your-secret-key
S3_USE_V4_SIGNATURE=true
S3_USE_HTTPS=true
S3_AWS_REGION=eu-central-1Для провайдера, отличного от AWS, задайте адрес конечной точки (S3_HOST). Многие самостоятельно развёрнутые хранилища требуют запросы в формате пути (path-style):
S3_HOST=object-storage.example.com
S3_PATH_STYLE_REQUEST=trueНе помещайте ключи доступа в репозиторий. Передавайте их через секреты среды выполнения или другой предназначенный для этого механизм.
Конфигурация через seafile.conf
Второй поддерживаемый способ — секции commit_object_backend, fs_object_backend и block_backend в seafile.conf:
[commit_object_backend]
name = s3
bucket = my-commit-objects
key_id = your-key-id
key = your-secret-key
use_v4_signature = true
aws_region = eu-central-1
use_https = true
[fs_object_backend]
name = s3
bucket = my-fs-objects
key_id = your-key-id
key = your-secret-key
use_v4_signature = true
aws_region = eu-central-1
use_https = true
[block_backend]
name = s3
bucket = my-block-objects
key_id = your-key-id
key = your-secret-key
use_v4_signature = true
aws_region = eu-central-1
use_https = trueДля не-AWS-хранилища добавьте host. Для самостоятельно развёрнутого S3 обычно также указывают path_style_request = true.
Доступ через IAM Role
Начиная с Seafile Pro 13.0.6, сервер на AWS EC2 может получать временные учётные данные S3 через IAM Role. В этом режиме постоянные access_key и secret_key не требуются.
Перед включением проверьте три условия:
- Seafile работает на AWS EC2;
- к экземпляру подключена IAM Role;
- роль имеет права на нужные бакеты.
S3_USE_IAM_ROLE=true
S3_IAM_ROLE_NAME=your-role-nameШифрование объектов через SSE-C
Начиная с Pro 11.0, Seafile поддерживает серверное шифрование S3 ключом, предоставленным клиентом (SSE-C). Для него необходимы HTTPS, подпись V4 и 32-символьный ключ.
Права доступа
Базовый уровень доступа в Seafile — библиотека. Владелец может поделиться ею с пользователем или группой и назначить режим read-only либо read-write.
Professional Edition поддерживает каскадные права и отдельные разрешения для подкаталогов. Например, группе можно дать чтение всей библиотеки, а нескольким пользователям — запись в конкретный подкаталог.
Разрешение на подкаталог не действует, если пользователь не получил доступ к этому каталогу или одному из его родителей. Документация также не рекомендует одновременно выдавать пользователю доступ read-only к библиотеке и отдельно делиться подкаталогом в режиме read-write: в интерфейсе появятся два общих объекта. Для такого сценария используйте именно разрешения подкаталогов.
Полезные сценарии
Личное хранилище или небольшая команда
Задача: синхронизировать рабочие файлы между устройствами и делиться библиотеками с несколькими людьми.
Начните с Community Edition на одном сервере. После установки создайте библиотеку, загрузите тестовый файл, подключите настольный клиент и проверьте синхронизацию на втором устройстве.
Наблюдаемый результат: файл появляется в той же библиотеке на другом клиенте, а назначенный пользователь видит её с заданным уровнем доступа.
Ограничение: если требуются S3-бэкенд, кластер или права на отдельные подкаталоги, понадобится Professional Edition.
Командное хранилище с S3
Задача: отделить сервер приложений от основного объёма файлов и использовать объектное хранилище.
Подготовьте три бакета, Redis или memcached, учётные данные S3 с минимально необходимыми правами и Professional Edition. Настройте бэкенд через переменные окружения либо seafile.conf, затем выполните тестовую загрузку.
Наблюдаемый результат: библиотека и файл доступны через Seafile, а в трёх бакетах появляются объекты commit, fs и block.
Ограничение: конфигурацию конкретного S3-совместимого провайдера нужно проверять до переноса рабочих данных.
Проверка результата
После установки или смены бэкенда выполните минимальный сквозной тест:
- Создайте отдельную тестовую библиотеку.
- Загрузите небольшой файл через веб-интерфейс.
- Скачайте его и сравните содержимое с оригиналом.
- Подключите библиотеку в настольном клиенте и дождитесь синхронизации.
- Измените файл на клиенте с правом записи и проверьте, что изменение синхронизировалось и отображается в веб-интерфейсе.
- Откройте библиотеку пользователем с доступом только для чтения и убедитесь, что его изменения не отправляются на сервер.
- Для S3 проверьте появление объектов во всех трёх бакетах.
- Проверьте журналы Seafile, Redis и базы данных на наличие ошибок.
Проверка, описанная здесь, основана на официальной документации и не заменяет испытание выбранной версии Seafile с вашим S3-провайдером и схемой резервного копирования.
Риски перед внедрением
S3 не заменяет резервную копию
Хранение рабочих объектов в S3 само по себе не создаёт отдельную резервную копию. Предусмотрите резервное копирование базы данных, конфигурации и объектов, а также регулярно проверяйте восстановление.
Задержки и ресурсы
Размещайте сервер и объектное хранилище с учётом сетевой задержки. Выделите кешу не менее рекомендованных 128 МБ и измерьте работу на типичных размерах файлов до запуска.
Миграция и шифрование
Смена бэкенда и включение SSE-C требуют заранее описанной процедуры миграции. Не изменяйте шифрование существующих бакетов без проверки совместимости данных и процедуры возврата.
Изменяемые тарифы
Стоимость лицензии, хранения, запросов и исходящего трафика зависит от актуальных условий поставщиков. Рассчитывайте её по официальным калькуляторам непосредственно перед выбором архитектуры.
API и официальные ссылки
Официальное руководство Seafile указывает новую документацию Web API и административного API на seafile-api.readme.io. При интеграции сверяйте конечные точки (endpoints) и авторизацию с документацией вашей версии сервера.
- Управление правами доступа
- Настройка S3 в Seafile 13
- Актуальные системные требования
- Новая документация Web API и административного API
- Web API V2.1, версия документации
- Официальный сайт
- GitHub Community Edition
- Тарифы
- Форум сообщества
Следующий шаг
Если основная архитектура уже понятна, сравните доступные площадки и ограничения объектного хранения: Как выбрать управляемое S3-хранилище: российские и зарубежные варианты.
Выбор между локальным диском и S3 лучше делать вместе с расчётом нагрузки, резервного копирования и будущего роста команды.
Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov


