Seafile может открывать поддерживаемые офисные файлы в Collabora Online через WOPI — протокол, позволяющий серверу хранения и онлайн-редактору обмениваться информацией о документах и содержимым файлов. Оптимальный вариант развертывания зависит от того, где вы используете Seafile, как управляете HTTPS и обратными прокси-серверами, а также от того, хотите ли вы разместить Collabora в той же сети Docker или на отдельном сервере.
Данное руководство соответствует инструкциям по интеграции с Collabora из текущего руководства администратора Seafile (документация Seafile 14.0, проверено 6 октября 2026 г.). Точные файлы Docker Compose и теги образов могут меняться, поэтому используйте файлы для установленной вами версии Seafile, а не копируйте полную конфигурацию Compose из более старого руководства.
Какой вариант развертывания следует выбрать?
| Вариант | Наилучший вариант | Главный компромисс |
| Контейнер Collabora рядом с Seafile | Одноузловая установка Docker с использованием файлов Compose, предоставленных Seafile. | Кратчайший путь и внутренняя сеть именования служб, но обе службы используют общий процессор, память и окно обслуживания одного хоста. |
| Collabora на отдельном хосте | Существующая служба Collabora, отдельное планирование мощностей или развертывание на нескольких хостах. | Масштабирование и обновления независимы, но требуют наличия общедоступной HTTPS-точки доступа, обратного прокси-сервера и надежного сетевого соединения между Collabora и Seafile. |
Для нового развертывания Docker на одном узле начните с предоставленного Seafile пакета collabora.yml. Для существующего автономного сервера Collabora или кластера используйте собственные инструкции по установке Collabora и установите URL-адрес обнаружения Seafile на внешний адрес Collabora. В руководстве по интеграции Seafile требуется HTTPS для Seafile, и отмечается, что отдельный узел Collabora должен использовать HTTPS на стандартном порту 443, с обратным проксированием к сервису Collabora на порту 9980. См. руководство по онлайн-интеграции Seafile Collabora и документацию по установке Collabora .
Прежде чем начать
- Убедитесь, что ваш сервер Seafile доступен по протоколу HTTPS с использованием действительного сертификата. В руководстве Seafile для этой интеграции явно указано требование использования HTTPS.
- Укажите тип развертывания: текущая одноузловая установка Docker, бинарная установка или многохостовая/кластерная конфигурация. Имена файлов .compose и маршрутизация через прокси зависят от выбранного варианта.
- Выберите имя хоста Collabora, например
office.example.com, , если доступ к Collabora будет осуществляться независимо браузерами пользователей. Перед настройкой Seafile убедитесь, что DNS и TLS-сертификат Collabora работают.
- Имейте права администратора для доступа к файлам Seafile
seahub_settings.pyи Docker .env, если применимо. Храните пароль администратора Collabora в защищенном файле среды и не публикуйте его в скриншотах, логах или общедоступном репозитории.
В документации Seafile описаны шаги развертывания Docker на том же хосте для поддерживаемой структуры Compose. Если ваш обратный прокси-сервер, проект Compose или сеть отличаются, используйте приведенные ниже примеры значений в качестве отправной точки и проверьте имена служб и маршруты в собственном развертывании.
Вариант А: Добавить Collabora в развертывание Docker в Seafile.
1. Добавьте официальный файл Collabora Compose.
Из каталога, где находится ваш конфигурационный файл Seafile Compose, загрузите файл Collabora для той версии Seafile, которую вы используете. Для пути к Seafile 14.0, указанного в текущем руководстве:
wget https://manual.seafile.com/14.0/repo/docker/collabora.yml
Откройте .envи добавьте данные collabora.ymlв существующий COMPOSE_FILEсписок. Сохраните все текущие записи; например, в системе, которая уже содержит файлы сервера Seafile, Caddy и SeaDoc, файл Collabora будет добавлен, а не заменен в списке:
COMPOSE_FILE='seafile-server.yml,caddy.yml,seadoc.yml,collabora.yml'
Ваш фактический список может отличаться. Не удаляйте текущий обратный прокси или другие службы только для того, чтобы соответствовать этому примеру. Файл Compose устанавливает параметры контейнера и сети, ожидаемые при развертывании Seafile.
2. Установите значения параметров среды Collabora.
Добавьте переменные, описанные в Seafile, в тот же .envфайл. В текущем примере используется collabora/codeимя образа с плавающей загрузкой; командам, которым необходимы воспроизводимые обновления, следует выбрать поддерживаемый их средой тег выпуска Collabora и закрепить его. Перед внесением изменений в работающую службу редактора ознакомьтесь с примечаниями к выпуску и протестируйте обновления.
COLLABORA_IMAGE=collabora/code
COLLABORA_PORT=6232
COLLABORA_USERNAME=admin
COLLABORA_PASSWORD=replace-with-a-long-random-secret
COLLABORA_ENABLE_ADMIN_CONSOLE=true
COLLABORA_REMOTE_FONT=
COLLABORA_ENABLE_FILE_LOGGING=false
Значение порта — это порт, используемый в примере Compose от Seafile; Collabora прослушивает порт 9980 внутри контейнера. Держите административную консоль в приватном режиме или ограничьте доступ через прокси-сервер/брандмауэр. Приведенные выше имя пользователя и пароль — это примеры; выберите уникальные учетные данные и защитите файл. Если вашей организации не нужна административная консоль, следуйте настройкам поддерживаемых параметров шаблона Compose, чтобы отключить ее.
3. Настройте WOPI-соединение Seafile.
Отредактируйте seahub_settings.pyи добавьте настройки интеграции с Collabora. Для контейнеров в одной сети Compose в текущем примере Seafile используется внутреннее имя службы collabora:
OFFICE_SERVER_TYPE = 'CollaboraOffice'
ENABLE_OFFICE_WEB_APP = True
OFFICE_WEB_APP_BASE_URL = 'http://collabora:9980/hosting/discovery'
WOPI_ACCESS_TOKEN_EXPIRATION = 30 * 60
OFFICE_PREVIEW_MAX_SIZE = 30 * 1024 * 1024
ENABLE_OFFICE_WEB_APP_EDIT = True
OFFICE_WEB_APP_FILE_EXTENSION = (
'odp', 'ods', 'odt', 'xls', 'xlsb', 'xlsm', 'xlsx',
'ppsx', 'ppt', 'pptm', 'pptx', 'doc', 'docm', 'docx'
)
OFFICE_WEB_APP_EDIT_FILE_EXTENSION = (
'odp', 'ods', 'odt', 'xls', 'xlsb', 'xlsm', 'xlsx',
'ppsx', 'ppt', 'pptm', 'pptx', 'doc', 'docm', 'docx'
)
Внутренний URL-адрес обнаружения предназначен для связи Seafile с Collabora в общей сети Docker. Браузеры пользователей также должны иметь возможность получить доступ к адресу Collabora, который им предоставляет интеграция. Следуйте официальному файлу Compose и настройте прокси-сервер, чтобы маршрут, доступный из браузера, был опубликован безопасно; имя хоста, доступное только для контейнера и разрешающееся только внутри Docker, не является пригодным для использования публичным URL-адресом в браузере.
Ограничивайте списки расширений файлов только теми форматами, которые необходимы вашим пользователям и которые поддерживает ваша сборка Collabora. Показанное выше значение параметра preview-size соответствует 30 МиБ в текущем примере Seafile; для документов большего размера может потребоваться целенаправленное изменение ограничения с учетом соответствующего влияния на память и производительность.
4. Запустите или обновите службы.
Проверьте конфигурацию Compose, затем запустите стек из каталога проекта:
docker compose config
docker compose up -d
В руководстве Seafile указано, что после внесения изменений необходимо перезапустить Seafile seahub_settings.py. При развертывании в Docker docker compose up -dприменяется обновленная настройка Compose; если изменения настроек не вступают в силу, перезапустите службу Seafile, используя метод, подходящий для вашего релиза. Избегайте широких изменений, docker compose downесли только вы не собираетесь остановить весь стек.
Вариант B: Направить Seafile на Collabora на другом хосте.
Установите и настройте Collabora, используя официальные инструкции по развертыванию и обратному прокси. Используйте HTTPS на обычном общедоступном порту и перенаправляйте запросы на внутренний порт Collabora 9980. Убедитесь, что хост Seafile может связаться с Collabora, и что Collabora может связаться с HTTPS-адресом Seafile; оба направления важны для загрузки документов WOPI.
Сохраните остальные настройки Seafile из предыдущего раздела, но измените параметр обнаружения на реальное имя хоста Collabora:
OFFICE_WEB_APP_BASE_URL = 'https://office.example.com/hosting/discovery'
Используйте фактическое имя хоста и сертификат. Не указывайте внутреннее имя службы Docker, если Seafile и Collabora действительно не используют общую сеть, в которой это имя разрешается. Отдельный хост обеспечивает независимый контроль над ресурсами и обслуживанием, но добавляет работу DNS, брандмауэра, сертификатов и обратного прокси. Для кластера Seafile следуйте схеме прокси и обнаружения служб кластера, а не предполагайте, что применима одноузловая сеть Compose.
Как убедиться, что соединение работает
- Откройте
https://office.example.com/hosting/discoveryв браузере, если используете отдельный хост. Для настройки на одном хосте проверьте общедоступный маршрут Collabora, опубликованный вашим прокси-сервером. Успешный ответ подтверждает доступность конечной точки обнаружения, хотя сам по себе он не доказывает работоспособность редактирования WOPI.
- Войдите в Seafile и откройте небольшой, не содержащий конфиденциальной информации
.docxфайл .xlsx, .odtвключенный в настроенные вами списки расширений.
- Убедитесь, что файл открывается в Collabora, внесите безобидные изменения, дождитесь завершения сохранения и закройте редактор.
- Откройте файл в Seafile и убедитесь, что изменения сохранились. Для более тщательной проверки загрузите копию и подтвердите ожидаемое содержимое.
Протестируйте файл, который вы можете безопасно изменять. Видимый редактор без успешного сохранения — это лишь частичный успех: WOPI должен иметь возможность получить файл и вернуть отредактированную версию в Seafile.
Распространённые неисправности и с какой стороны следует проверять.
| Симптом | Первые проверки |
| Компания Seafile сообщает, что онлайн-офис недоступен. | Проверьте URL-адрес обнаружения и убедитесь OFFICE_SERVER_TYPE, ENABLE_OFFICE_WEB_APPчто Seahub был перезапущен после изменения настроек. |
| Поиск работает с сервера, но в браузере отображается пустой редактор. | Убедитесь, что браузер может получить доступ к общедоступному имени хоста Collabora по протоколу HTTPS и что пути прокси и сертификаты TLS указаны правильно. Внутреннее имя хоста Docker не является автоматически доступным для браузера пользователя. |
| Редактор загружается, но файл не может быть загружен или сохранен. | Проверьте журналы Collabora и Seafile, их взаимный доступ к сети, доверие к HTTPS-сертификатам и запросы WOPI. Seafile документирует последовательность запросов следующим образом: Seahub создает iframe, браузер загружает Collabora, а Collabora запрашивает содержимое файла у Seahub. |
| Открыты только некоторые офисные файлы. | Проверьте кортежи расширений предварительного просмотра и редактирования, ограничение размера предварительного просмотра в Seafile, а также форматы, поддерживаемые установленной сборкой Collabora. |
Для просмотра логов Docker используйте документы Seafile docker logs seafile-collabora. Проверьте логи Seafile/Seahub вместе с выводом Collabora и сопоставьте запросы на прокси-сервере. Не включайте подробное логирование или логирование файлов постоянно, если это раскрывает URL-адреса документов или другие конфиденциальные операционные данные. В официальном руководстве по устранению неполадок Collabora приведены дополнительные проверки на наличие сбоев на стороне Collabora.
Какой вариант кажется наиболее разумным?
Выбирайте встроенный контейнер, если ваша установка Seafile представляет собой один хост Docker, вам необходима поддерживаемая структура Compose, и допустимо совместное использование ЦП и памяти с Seafile. Выбирайте отдельный хост Collabora, если вы уже используете его, нуждаетесь в независимой мощности или графиках обновлений, или интегрируете многохостовую архитектуру и можете надежно поддерживать HTTPS и сетевую маршрутизацию. В любом случае следуйте документации, соответствующей вашей версии Seafile, обеспечьте безопасность конечных точек, доступных через браузер, и проверяйте открытие и сохранение документов, прежде чем предлагать пользователям использовать онлайн-редактирование.