Подключите Seafile и Collabora, используя правильный URL-адрес WOPI.
Обеспечьте безопасное редактирование документов в Seafile, настроив URL-адрес обнаружения Collabora, HTTPS и доступ WOPI для вашей системы.
Для подключения Seafile к Collabora Online необходимо включить HTTPS в Seafile, развернуть Collabora и указать в интеграции Seafile с Office конечную точку обнаружения Collabora. Если обе службы работают в одной сети Docker, в текущем руководстве по интеграции Seafile используется внутренний URL-адрес http://collabora:9980/hosting/discovery; если Collabora работает на отдельном хосте, используйте вместо него ее публичный URL-адрес HTTPS.
В текущем руководстве администратора Seafile описана специальная collabora.ymlинтеграция с Compose и соответствующие настройки seahub_settings.py. Точные файлы развертывания могут отличаться в зависимости от версии Seafile, поэтому при адаптации этих примеров используйте руководство, соответствующее вашей установленной версии.
seahub_settings.py.Seafile и Collabora обмениваются данными по протоколу WOPI. Seafile предоставляет информацию для доступа к документу, а Collabora запрашивает файл у Seafile. URL-адрес обнаружения сообщает Seafile, какой сервис Collabora использовать и какие возможности редактора он рекламирует.
Откройте Seafile в браузере и убедитесь, что его обычный адрес начинается с определенного префикса https://, а сертификат действителен. В руководстве по развертыванию Seafile в Docker показано, как настроить HTTPS-соединение SEAFILE_SERVER_PROTOCOL=httpsв .envфайле, а затем завершить настройку HTTPS через настроенный обратный прокси-сервер. Не используйте общедоступную конечную точку Seafile с обычным HTTP.
# In the Seafile deployment .env file
SEAFILE_SERVER_PROTOCOL=https
Храните сам сертификат и закрытый ключ под контролем вашего TLS-прокси или менеджера сертификатов. Эта настройка сама по себе не выдает сертификат и не настраивает обратный прокси; завершите шаги по настройке HTTPS для вашего развертывания, прежде чем включать онлайн-редактирование Office.
Для описанной в документации настройки Docker на одном хосте используйте файл Compose из Collabora, предоставленный Seafile, вместо создания несвязанного определения контейнера. В каталоге развертывания Seafile загрузите файл для соответствующей версии руководства и добавьте его collabora.ymlв существующий COMPOSE_FILEсписок в .env. Сохраните файлы Compose, уже используемые вашей установкой.
# Example for a Seafile 14.0 deployment
wget https://manual.seafile.com/14.0/repo/docker/collabora.yml
Установите переменные Collabora, описанные в Seafile, в следующем формате .env:
COLLABORA_IMAGE=collabora/code
COLLABORA_PORT=6232
COLLABORA_USERNAME=your_admin_username
COLLABORA_PASSWORD=use_a_long_unique_secret
COLLABORA_ENABLE_ADMIN_CONSOLE=true
COLLABORA_ENABLE_FILE_LOGGING=false
Используйте уникальный надежный пароль и ограничьте доступ к .envфайлу, поскольку он содержит учетные данные. Пример порта — это открытый порт в конфигурации интеграции Seafile; не предполагайте, что это публичный порт вашего обратного прокси-сервера. Следуйте инструкциям в соответствующем collabora.ymlфайле и настройкам прокси-сервера для вашей версии.
После добавления сервиса в развертывание запустите или обновите стек Compose, используя обычную процедуру Seafile. Избегайте прямой публикации внутреннего порта Collabora в интернете, если это явно не требуется в вашей системе и вы не защитили конечную точку.
Отредактируйте активный seahub_settings.pyфайл и добавьте параметры интеграции. Для настройки 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_WEB_APP_FILE_EXTENSION = (
'odp', 'ods', 'odt', 'xls', 'xlsb', 'xlsm', 'xlsx',
'ppsx', 'ppt', 'pptm', 'pptx', 'doc', 'docm', 'docx'
)
ENABLE_OFFICE_WEB_APP_EDIT = True
OFFICE_WEB_APP_EDIT_FILE_EXTENSION = (
'odp', 'ods', 'odt', 'xls', 'xlsb', 'xlsm', 'xlsx',
'ppsx', 'ppt', 'pptm', 'pptx', 'doc', 'docm', 'docx'
)
Указанный http://здесь URL — это внутренний адрес между сервисами в документированной сети Docker компании Seafile. Для доступа к сайту Seafile через браузер по-прежнему требуется HTTPS. Не копируйте этот внутренний адрес в развертывание на отдельном хосте.
Для Collabora на другом хосте настройте Collabora за HTTPS на стандартном общедоступном порту, а обратный прокси будет перенаправлять запросы на порт прослушивания Collabora. Установите базовый URL-адрес на фактическое имя вашего общедоступного хоста, например:
OFFICE_WEB_APP_BASE_URL = 'https://office.example.com/hosting/discovery'
Убедитесь, что имя хоста в URL-адресе разрешается и предоставляет действительный сертификат от клиентов, которым необходимо открыть документы. Также настройте список разрешенных хостов WOPI в Collabora так, чтобы он принимал хост сервера Seafile. В официальной документации Docker для Collabora описана переменная aliasgroupсреды для объявления разрешенного хоста WOPI; точно совместите хост и схему, используемые Seafile, и избегайте широкого доступа с использованием подстановочных знаков на производственном сервере.
Перезапустите Seafile, чтобы Seahub загрузил новые настройки Python. Используйте процедуру перезапуска, соответствующую вашему пакету, стеку Compose или настройке Kubernetes; имена служб и команды различаются в зависимости от развертывания. Если вы добавили новый файл Compose, убедитесь, что контейнер Collabora запущен, прежде чем тестировать рабочий процесс в браузере.
Откройте поддерживаемый документ Office через веб-интерфейс Seafile. Файл должен открыться в редакторе Collabora, отобразить свое содержимое и сохранить небольшое тестовое изменение обратно в Seafile. Успешное открытие документа более полезно, чем просто проверка страницы обнаружения, поскольку оно проверяет браузер, Seafile, Collabora и передачу файлов WOPI.
OFFICE_WEB_APP_BASE_URLдоступен из службы Seafile. Используйте внутреннее имя службы Docker только в том случае, если оба контейнера используют эту сеть.OFFICE_WEB_APP_FILE_EXTENSIONи OFFICE_WEB_APP_EDIT_FILE_EXTENSION. Ограничьте эти списки форматами, необходимыми вашим пользователям и поддерживаемыми вашей системой Collabora.seahub_settings.pyи перезапустили правильную службу Seafile.Для автономного узла Collabora Seafile специально направляет администраторов к документации по развертыванию Collabora, а не к встроенному файлу collabora.yml. Встроенный файл предназначен для той же конфигурации хоста/сети Docker, описанной выше.
Обеспечьте безопасное редактирование документов в Seafile, настроив URL-адрес обнаружения Collabora, HTTPS и доступ WOPI для вашей системы.
Проверьте буфер обмена системы, настройте разрешения браузера и определите, когда для встроенной интеграции Collabora требуется изменение политики iframe.
Смонтируйте файлы шрифтов в Docker и системную панель Collabora, чтобы пользовательские шрифты отображались в редакторе и корректно отображались в документах.
Создайте резервную копию файла coolwsd.xml и его исходных файлов развертывания, безопасно восстановите их и проверьте код, прежде чем пользователи вернутся к редактированию.
Разрешите использование именно Nextcloud или другого источника WOPI в коде, затем проверьте список разрешенных активных хостов и сопоставьте его с ограничением Nextcloud по IP-адресу источника.
Проанализируйте соединения Collabora с браузером, WOPI и WebSocket, чтобы выяснить, почему документ не открывается, а затем примените исправление, соответствующее вашей настройке Nextcloud.
Разверните реплики Collabora CODE с помощью Helm, разместите каждый документ в отдельном поде с помощью привязки WOPI и проверьте входящий трафик, размещение узлов и редактирование в Nextcloud.
Проследите за ошибкой установления соединения между браузером и coolwsd, затем сопоставьте маршрут обратного прокси с вашей версией Collabora, включая изменение Apache в коде 26.04.
Обнаруживайте причины сбоев подтверждения WOPI в Collabora, такие как несоответствие ключей, устаревшие данные обнаружения, смещение времени или изменения URL-адресов прокси-сервера, — без ослабления проверки.
Сбросьте масштаб браузера, протестируйте чистую сессию и определите, когда меню с некорректным размером требует обновления сервера Collabora.