Развертывание Collabora CODE в Kubernetes с помощью Helm
Установите официальный Helm-диаграмму Collabora, настройте доступ к WOPI и привязку входящего трафика, а также проверьте развертывание на наличие распространенных ошибок настройки.
По состоянию на 10 октября 2026 года в реестре пакетов указана версия диаграммы 1.3.0 как последняя выпущенная версия. Установка диаграммы — лишь часть работающего развертывания. Вам также потребуется общедоступное имя хоста Collabora, действительная запись в списке разрешенных WOPI для хоста хранилища документов и настройка Ingress, которая обеспечивает обработку запросов для каждого документа в одном и том же поде. На момент написания статьи в реестре пакетов указана версия диаграммы 1.3.0; проверьте репозиторий перед установкой, поскольку версия диаграммы Helm и версия образа контейнера CODE — это разные значения.
В этой процедуре используется официальный collabora/collabora-onlineчарт и контроллер NGINX Ingress. В файле README чарта также приведены примеры использования HAProxy; аннотации для Ingress зависят от конкретного контроллера, поэтому используйте пример для вашего установленного контроллера, а не смешивайте разные аннотации.
office.example.com, .Collabora публикует свой график из онлайн-репозитория проекта. Добавьте его, обновите локальный индекс и проверьте метаданные графика и значения по умолчанию перед установкой:
helm repo add collabora https://collaboraonline.github.io/online/
helm repo update
helm show chart collabora/collabora-online
helm show values collabora/collabora-online
Версия диаграммы определяет пакет, а не обязательно тег образа CODE. Проверьте репозиторий образов и тег в значениях релиза, затем закрепите проверенную версию диаграммы для повторных обновлений.
Создайте секрет в пространстве имен, используя утвержденный вами рабочий процесс управления секретами. Значения диаграммы поддерживают существующий секрет и настраиваемые имена ключей; имена ключей по умолчанию — usernameи . Перед установкой passwordубедитесь, что секрет существует в пространстве имен.collabora
Создайте файл my_values.yaml. Замените оба примера имен хостов на ваши фактические общедоступные домены. Значение aliasgroupsидентифицирует клиент WOPI (например, сервер Seafile или Nextcloud). Хост Ingress и server_nameидентифицируют службу Collabora, к которой обращаются браузеры пользователей.
replicaCount: 1
ingress:
enabled: true
className: nginx
annotations:
nginx.ingress.kubernetes.io/upstream-hash-by: "$arg_WOPISrc"
nginx.ingress.kubernetes.io/proxy-body-size: "0"
nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
hosts:
- host: office.example.com
paths:
- path: /
pathType: ImplementationSpecific
autoscaling:
enabled: false
collabora:
aliasgroups:
- host: "https://files.example.com:443"
extra_params: --o:ssl.enable=false --o:ssl.termination=true
server_name: office.example.com:443
existingSecret:
enabled: true
secretName: collabora-admin
usernameKey: username
passwordKey: password
В этом примере используется описанный в документации Collabora шаблон входящего трафика NGINX: запросы хешируются с помощью WOPISrcпараметра, а таймауты чтения и отправки прокси-сервера увеличиваются для сессий документов. Проверьте названия аннотаций в соответствии с вашей версией контроллера входящего трафика. Если вы используете HAProxy, используйте вместо этого аннотации HAProxy и конфигурацию балансировки, описанные в файле README диаграммы.
Параметры ssl.enable=false`and` ssl.termination=trueпредназначены для архитектуры, в которой TLS завершается на входе, а трафик от входа к поду является внутренним. Они не означают, что публичная конечная точка должна использовать HTTP. Сохраняйте имя хоста на входе по протоколу HTTPS и не предоставляйте напрямую доступ к службе пода по протоколу HTTP из интернета. Установите этот параметр, server_nameесли Collabora находится за обратным прокси-сервером или не может напрямую определить свое внешнее имя хоста.
Для нескольких фиксированных реплик установите replicaCountсоответствующие параметры и сохраните привязку сессии. В файле README исходного кода указано, что HPA отключен, поскольку масштабирование может нарушить совместное редактирование и копирование/вставку. Увеличение количества реплик само по себе не обеспечивает корректную маршрутизацию; убедитесь, что ваш входящий трафик отправляет запросы к одному и тому же документу в один и тот же под.
Установите релиз из официального репозитория и дождитесь готовности развертывания:
helm install --create-namespace \
--namespace collabora \
collabora-online collabora/collabora-online \
--values my_values.yaml
kubectl get pods -n collabora
kubectl get ingress -n collabora
При обновлении существующей версии используйте helm upgradeто же имя версии, пространство имен и файл значений, а не создавайте вторую версию. Перед обновлением рабочей версии ознакомьтесь с примечаниями к выпуску диаграммы и внесенными изменениями.
Убедитесь, что под готов и что Ingress сообщает ожидаемый хост и адрес. Если он по-прежнему находится в состоянии ожидания, проверьте события и журналы, прежде чем изменять настройки ресурсов:
kubectl describe pods -n collabora
kubectl logs -n collabora deployment/<deployment-name>
Настройте параметры ЦП и памяти в соответствии с вашей рабочей нагрузкой и мощностью кластера. В файле README приведены примеры запросов и ограничений, но это не гарантирует работоспособность для каждого развертывания. Следите за возможными ограничениями, ошибками нехватки памяти и перезапусками.
После активации DNS и TLS отправьте запрос к конечной точке обнаружения Collabora, используя общедоступное имя хоста:
curl -fsS https://office.example.com/hosting/discovery
В успешном ответе должен содержаться XML-код обнаружения WOPI, а не страница ошибки входящего трафика или предупреждение о сертификате. Затем настройте свой WOPI-клиент, используя тот же общедоступный URL-адрес Collabora, и убедитесь, что Collabora aliasgroupsвключает имя хоста и порт HTTPS этого клиента. Точные настройки клиента зависят от используемого продукта хранения.
Откройте тестовый документ в клиенте WOPI и внесите небольшое изменение. Убедитесь, что редактор загрузился, что можно подключить вторую сессию браузера, если требуется совместная работа, и что изменения сохранены в хранилище. Эта сквозная проверка проверяет работу DNS, входящего TLS, маршрутизации сессий, авторизации хоста WOPI и передачи файлов.
coolwsd_xml_contentзаменяет файл конфигурации по умолчанию и требует полного содержимого файла. Для групп псевдонимов и параметров следует отдавать предпочтение значениям, указанным в диаграмме, если у вас нет полной, совместимой с версией конфигурации XML.Установите официальный Helm-диаграмму Collabora, настройте доступ к WOPI и привязку входящего трафика, а также проверьте развертывание на наличие распространенных ошибок настройки.
Используйте запросы браузера, журналы WOPI и целевые проверки прокси-серверов, чтобы выяснить, почему Collabora открывает пустой документ, и выберите решение, соответствующее полученным данным.
Настройте словари CODE Docker и правильно разметьте фрагменты документа, чтобы проверка орфографии на английском, французском и других поддерживаемых языках выполнялась корректно.
В coolwsd отрегулируйте пороговое значение неактивности для каждого представления и различайте его от затемнения фоновых вкладок, выгрузки документов, автосохранения и истечения срока действия авторизации.
Остановите запланированные проверки обновлений CODE, просмотрите дополнительные удаленные сервисы и используйте исходящие сетевые элементы управления, не нарушая редактирование документов.
Обеспечьте безопасное редактирование документов в Seafile, настроив URL-адрес обнаружения Collabora, HTTPS и доступ WOPI для вашей системы.
Проверьте буфер обмена системы, настройте разрешения браузера и определите, когда для встроенной интеграции Collabora требуется изменение политики iframe.
Смонтируйте файлы шрифтов в Docker и системную панель Collabora, чтобы пользовательские шрифты отображались в редакторе и корректно отображались в документах.
Создайте резервную копию файла coolwsd.xml и его исходных файлов развертывания, безопасно восстановите их и проверьте код, прежде чем пользователи вернутся к редактированию.
Разрешите использование именно Nextcloud или другого источника WOPI в коде, затем проверьте список разрешенных активных хостов и сопоставьте его с ограничением Nextcloud по IP-адресу источника.