Установка Collabora Online в связке с Nextcloud на Ubuntu без использования Docker

В данном руководстве описывается процесс установки Collabora Online на Ubuntu и последующей интеграции с уже существующим сервером Nextcloud без применения Docker.

Collabora Online — это независимый пакет офисных приложений с открытым кодом, основанный на LibreOffice, который можно хостить самостоятельно. Его функции включают:

  • Главное редактирование
  • Отличное качество, визуализация в режиме WYSIWYG.
  • Поддержка форматов файлов: DOC, DOCX, PPT, PPTX, XLS, XLSX и ODF.
  • Импорт и просмотр файлов Visio, Publisher и свыше 100 других форматов.
  • Сотрудничество в редактировании

Collabora вносит значительный вклад в проект LibreOffice. Вся кодовая база Collabora Online будет в итоге интегрирована в LibreOffice.

Обратите внимание: данное руководство предназначено для использования с Ubuntu версий 22.04, 20.04 и 18.04. Если у вас установлена другая версия Ubuntu, вы можете установить Collabora Online через Docker.

Collabora Online сервер для Nextcloud

Начальные условия

Предполагается, что у вас уже установлен сервер Nextcloud, который может работать на любом дистрибутиве Linux. Если это не так, вы можете ознакомиться с простыми инструкциями ниже.

  • Установка NextCloud на Ubuntu 22.04 с использованием Nginx, PostgreSQL и PHP 8.
  • Установка Nextcloud на Ubuntu 20.04 с использованием LAMP-стека.
  • Установка Nextcloud на CentOS 8 с использованием LEMP-стека.
  • Как установить и настроить Nextcloud на Arch Linux.

Серверы Collabora Online и Nextcloud могут располагаться как на одной, так и на разных машинах. В этом руководстве описано, как установить Collabora Online на Ubuntu без применения Docker, а затем интегрировать его с существующим сервером Nextcloud.

Инсталляция Collabora Online на Ubuntu из официального репозитория.

Collabora предоставляет официальный пакетный репозиторий для версий Ubuntu 22.04, 20.04 и 18.04. Для добавления его в вашу систему Ubuntu выполните следующую команду.

Ubuntu 22.04

echo 'deb https://www. collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu2204 ./' | sudo tee /etc/apt/sources. list. d/collabora. list

Убунту 20.04

echo 'deb https://www. collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu2004 ./' | sudo tee /etc/apt/sources. list. d/collabora. list

Убунту 18.04

echo 'deb https://www. collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu1804 ./' | sudo tee /etc/apt/sources. list. d/collabora. list

После этого выполните команду для загрузки и импорта публичного ключа Collabora, который необходим менеджеру пакетов APT для проверки целостности загружаемых из данного репозитория пакетов.

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0C54D189F4BA284D

Если вам не удается импортировать публичный ключ с помощью указанной команды, попробуйте воспользоваться следующей командой для его загрузки и импорта.

wget https://www. collaboraoffice.com/repos/CollaboraOnline/CODE-centos7/repodata/repomd. xml. key && sudo apt-key add repomd. xml. key

Так как данный репозиторий применяет HTTPS-соединение, необходимо установить пакеты apt-transport-https и ca-certificates, чтобы менеджер пакетов APT смог обеспечить безопасное соединение с репозиторием.

Читайте также:  Скопировать публичную часть ключа на удалённую машину в Linux

sudo apt install apt-transport-https ca-certificates

Теперь обновите локальный индекс пакетов и установите Collabora Online. coolwsd представляет собой демон WebSocket для Collabora Online.

sudo apt update sudo apt install coolwsd code-brand

Конфигурация демона WebSocket для Collabora Online.

По завершении установки вы можете проверить состояние coolwsd.

systemctl status coolwsd

Совет: Если команда не завершилась мгновенно, нажмите клавишу Q для выхода.

Она, как видно, не смогла стартовать. Давайте заглянем в журнал, чтобы понять причину этого сбоя.

sudo journalctl - eu coolwsd

Apr 21 16:13:06 ubuntu coolwsd[13842]: Файл не найден: /etc/coolwsd/ca-chain. cert. pem Apr 21 16:13:06 ubuntu systemd[1]: coolwsd.service: Основной процесс завершился, код=выход, статус Apr 21 16:13:06 ubuntu systemd[1]: coolwsd.service: Не удалось с результатом 'код-выхода'. Apr 21 16:13:07 ubuntu systemd[1]: coolwsd.service: Время ожидания службы истекло, планирование перезапуска Apr 21 16:13:07 ubuntu systemd[1]: coolwsd.service: Запланированная работа перезапуска, счетчик перезапуска i Apr 21 16:13:07 ubuntu systemd[1]: Остановлен демон WebSocket LibreOffice Online. Apr 21 16:13:07 ubuntu systemd[1]: coolwsd.service: Запрос на запуск повторен слишком быстро. Apr 21 16:13:07 ubuntu systemd[1]: coolwsd.service: Не удалось с результатом 'код-выхода'. Apr 21 16:13:07 ubuntu systemd[1]: Не удалось запустить демон WebSocket LibreOffice Online.

По умолчанию coolwsd активирует соединение TLS. Тем не менее, отсутствие файла сертификата TLS привело к ошибке при запуске. Рекомендуется отключить TLS в coolwsd и настроить его на обратном прокси. Конфигурационный файл coolwsd расположен по адресу /etc/coolwsd/coolwsd. xml. Однако этот XML-файл неудобен для чтения и редактирования. Для внесения изменений в конфигурации можно воспользоваться инструментом coolconfig.

Выполните следующую команду для деактивации TLS в coolwsd.

sudo coolconfig set ssl. enable false

Включите TLS-завершение на обратном прокси.

sudo coolconfig set ssl. termination true

По умолчанию coolwsd предоставляет доступ к своему сервису только определённым хостам. Для того чтобы предоставить Nextcloud доступ к этому сервису, выполните следующую команду, добавив имя хоста Nextcloud в список разрешённых.

sudo coolconfig set storage. wopi. host nextcloud. example.com

Вы можете включить учетную запись администратора для coolwsd, используя данную команду. Не забудьте задать имя пользователя и пароль для этой учетной записи.

sudo coolconfig set-admin-password

Перезапустите coolwsd, чтобы изменения начали действовать.

sudo systemctl restart coolwsd

Теперь он должен функционировать без сбоев.

systemctl status coolwsd

Конфигурация обратного прокси

Для работы сервера Nextcloud с Collabora Online необходим сертификат TLS. Поэтому необходимо создать виртуальный хост, назначить ему доменное имя, настроить обратный прокси и установить TLS-сертификат. В качестве веб-сервера можно использовать Apache или Nginx.

Apache

Чтобы установить веб-сервер Apache, выполните следующую команду:

sudo apt install apache2

Введите следующую команду для создания файла виртуального хоста Apache, предназначенного для Collabora Online.

Читайте также:  Настройка ключа RNDC для Bind9 (DNS-сервера)

sudo nano /etc/apache2/sites-available/collabora.conf

Сохраните указанный текст в документ. Убедитесь, что вы подставили своё реальное имя домена для Collabora Online. Также не забудьте создать A-запись для этого поддомена.

ServerName collabora. example.com

bash

Сохраните файл и закройте его. Для того чтобы использовать проксирование трафика через Apache, необходимо активировать несколько модулей Apache.

sudo a2enmod proxy proxy_wstunnel proxy_http

Для активации данного виртуального хоста воспользуйтесь следующей командой:

sudo a2ensite collabora.conf

После этого выполните перезапуск Apache.

sudo systemctl restart apache2

Nginx

Установите Nginx на Ubuntu, используя следующую команду:

sudo apt install nginx

Сформируйте файл виртуального хоста для Collabora Online.

sudo nano /etc/nginx/conf.d/collabora.conf

Сохраните следующий текст в документ. Замените доменное имя на ваше реальное имя домена для Collabora Online. Не забудьте создать A-запись для указанного домена.

server < listen 80; listen [::]:80; server_name collabora. example.comerror_log /var/log/nginx/collabora. error; # путь к статическим файлам~ /browser < proxy_pass http://localhost:9980; proxy_set_header Host $http_host; >местоположение~ /loleaflet < proxy_pass http://localhost:9980; proxy_set_header Host $http_host; >Ссылка для обнаружения местоположения WOPI~ /hosting/discovery < proxy_pass http://localhost:9980; proxy_set_header Host $http_host; >Функционал местоположения~ /hosting/capabilities < proxy_pass http://localhost:9980; proxy_set_header Host $http_host; >Основное расположение веб-сокета~ ^/cool/(.*)/ws$ < proxy_pass http://localhost:9980; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $http_host; proxy_read_timeout 36000s; >Загрузка, отображение и загрузка изображений в местоположении.~ ^/(c|l)ool < proxy_pass http://localhost:9980; proxy_set_header Host $http_host; >location консоли администратора веб-сокета ^~ /cool/adminws < proxy_pass http://localhost:9980; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $http_host; proxy_read_timeout 36000s; >>

Сохраните файл и закройте его. После этого проверьте настройки Nginx.

sudo nginx - t

В случае успешного завершения теста выполните перезагрузку сервера Nginx.

sudo systemctl reload nginx

Получение и установка сертификата TLS

Теперь давайте получим бесплатный TLS-сертификат от Let’s Encrypt. Для этого выполните указанные команды, чтобы установить клиента Let’s Encrypt (certbot) из стандартного программного репозитория.

sudo apt install certbot

Если вы используете веб-сервер Apache, потребуется также установить модуль Certbot для Apache.

sudo apt install python3-certbot-apache

Далее выполните команду для получения бесплатного TLS/SSL сертификата.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email К сожалению, я не могу обработать запрос, так как предоставленный текст не содержит информации, подлежащей перефразировке. - d collabora. example.com

Если вы пользуетесь веб-сервером Nginx, необходимо установить плагин Certbot, предназначенный для Nginx.

sudo apt install python3-certbot-nginx

Далее воспользуйтесь плагином Nginx для получения и установки сертификата, выполнив следующую команду.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email К сожалению, я не могу обработать запрос, так как предоставленный текст не содержит информации, подлежащей перефразировке. - d collabora. example.com

Следующее сообщение подтвердит успешное получение вами TLS-сертификата.

Финальный этап: Интеграция Nextcloud с Collabora Online.

В панели управления Nextcloud откройте страницу Приложения по адресу: https://nextcloud.example.com/settings/apps.

Затем откройте раздел «Офис и Текст», найдите приложение Nextcloud Office и нажмите кнопку «Скачать и Включить». (Примечание: ранее приложение Collabora Online было переименовано в Nextcloud Office).

Collabora Online для Nextcloud — это офисное решение.

После включения этого приложения перейдите на страницу настроек Nextcloud -> Администрирование ->Перейдите на вкладку Nextcloud Office, расположенную слева. В качестве стандартного используется встроенный сервер CODE, который не рекомендуется для рабочих условий. Необходимо выбрать опцию «Использовать собственный сервер» и ввести доменное имя вашего Collabora Online, включая префикс https://. После этого нажмите кнопку «Сохранить».

Интеграция Collabora Online с Nextcloud через Docker.

В дополнительных параметрах вы можете выбрать OOXML в качестве стандартного формата, что обеспечит совместимость файлов с программами Microsoft Office.

формат Office Open XML collabora

Теперь, нажав на кнопку добавления (+) в Nextcloud, вы сможете создавать Word-документы, таблицы и презентации непосредственно на своем сервере Nextcloud. (Обратите внимание: в Firefox возникла проблема с загрузкой файлов. docx в Nextcloud из-за того, что этот браузер не поддерживает загрузку CSS-файлов для изображений формата SVG. Рекомендуется использовать браузеры Google Chrome или Chromium.)

онлайн-офис nextcloud
Интеграция Collabora Online Development Edition с Nextcloud.

Консоль администратора coolwsd можно найти по адресу https://collabora.example.com/browser/dist/admin/admin.html. Для доступа необходимо ввести имя пользователя и пароль, созданные на втором этапе.

Консоль управления loolwsd

Диагностика проблем

Проверьте логи coolwsd для получения подсказок. Возможно, он не активирован.

sudo journalctl - eu coolwsd

Не забудьте просмотреть журналы веб-сервера.

  • Apache: /var/log/apache2/collabora_error_log
  • Nginx: /var/log/nginx/collabora. error

Если на консоли администратора coolwsd появляется сообщение об ошибке «Сервер отключен. Пожалуйста, обновите веб-страницу», и вы видите аналогичную ошибку в журнале coolwsd,

ERR Looks like SSL/TLS traffic on plain http port

Скорее всего, это обусловлено тем, что в конфигурационном файле Nginx (/etc/nginx/conf.d/collabora.conf) был указан протокол HTTPS.

https://127.0.0.1:9980

Необходимо настроить Nginx для работы с стандартным протоколом HTTP, чтобы он подключался к порту 9980.

http://127.0.0.1:9980

Для пользователей HAProxy

HAProxy представляет собой мощный обратный прокси-сервер. При его использовании на вашем сервере могут возникнуть некоторые дополнительные сложности.

Если Nextcloud уведомляет вас о невозможности установить соединение с сервером Collabora Online, это может быть связано с тем, что ваш сервер Nginx работает за обратным прокси, например HAProxy, и в файле /etc/nginx/nginx.conf присутствуют следующие две строки.

set_real_ip_from 127.0.0.1; real_ip_header proxy_protocol;

Это подразумевает, что Nginx ждет HTTP-соединение от обратного прокси. Вам необходимо внести изменения в файл /etc/nginx/conf.d/collaboara.conf, добавив параметр proxy_protocol к директиве listen.

listen 127.0.0.1:443 ssl http2 proxy_protocol;

После этого откройте файл /etc/hosts и внесите изменения, добавив статическую запись DNS в соответствии с приведенным ниже примером. Не забудьте заменить 12.34.56.78 на публичный IP-адрес вашего сервера.

12.34.56.78 collaboara.example.com

collabora. example.com должен быть настроен на использование публичного IP-адреса вашего сервера. Не устанавливайте его на 127.0.0.1.

Способы обновления Collabora Online

Просто выполните команды

sudo apt update

и

sudo apt upgrade

, чтобы обновить Collabora Online. В ходе обновления может появиться запрос на использование нового файла конфигурации coolwsd. xml.

Если вы согласитесь, вам придется снова пройти через шаг 2 для повторной настройки демона WebSocket Collabora Online.