В этой статье я покажу как к файловому серверу NextCloud подключить сервер документов Collabora.

Введение

Я уже писал про установку облачного файлового сервера NextCloud — здесь

А здесь я писал про интеграцию с OnlyOffice.

Collabora это тоже сервер документов, но он использует другой формат файлов в отличии от OnlyOffice:

  • OnlyOffice — docx (документ), xlsx (таблица), pptx (презентация);
  • Collabora — odt (документ), ods (таблица), odp (презентация).

Официальная страница Collabora — доступна здесь.

Официальные инструкции:

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

Установка

Как по мне, установка Collabora намного легче.

Перейдём в каталог с ключами репозиториев и скачаем в него необходимый ключ:

# cd /usr/share/keyrings
# wget https://collaboraoffice.com/downloads/gpg/collaboraonline-release-keyring.gpg

Пропишем репозиторий, обновим кеш пакетов и установим необходимые пакеты:

# nano /etc/apt/sources.list.d/collaboraonline.sources
Types: deb
URIs: https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-deb
Suites: ./
Signed-By: /usr/share/keyrings/collaboraonline-release-keyring.gpg

# apt update 
# apt install coolwsd code-brand

Настройка

Для настройки используется конфиг coolwsd.xml. Конфиг очень большой, и разобраться с ним будет не просто. Здесь опишу только те опции, которые я поменял:

# nano /etc/coolwsd/coolwsd.xml
<allowed_languages>en_US ru</allowed_languages>
<server_name>collabora.sysadminium.ru</server_name>
<net desc="Network settings">
    <host desc="nextcloud">192\.168\.0\.64</host>
    <host desc="nextcloud">nc\.sysadminium\.ru</host>
<ssl desc="SSL settings">
    <enable>false</enable>
    <termination>true</termination>
<storage desc="Backend storage">
    <host desc="Regex pattern of hostname to allow or deny." allow="true">192\.168\.0\.64</host>
    <host desc="Regex pattern of hostname to allow or deny." allow="true">nc\.sysadminium\.ru</host>
<admin_console desc="Web admin console settings.">
    <enable>true</enable>
    <enable_pam>false</enable_pam>
    <username>admin</username>
    <password>adminpass</password>
</admin_console>

Из языков я оставил поддержку только Русского и Английского. Указал имя сервера. Указал разрешённые сети, то есть подключаться к Collabora сможет только сервер NextCloud.

После настройки запустим службу и проверим её статус:

# systemctl start coolwsd
# systemctl status coolwsd

Если служба не запустилась, то посмотрим ошибки:

# journalctl -u coolwsd

У меня, например, была ошибка в конфиге, и я это заметил благодаря предыдущей команде.

Прокси сервер на Nginx

NextCloud не сможет напрямую обращаться к сервису coolwsd, поэтому нужно вначале сделать прокси сервер.

Создадим конфиг для nginx, в котором запросы приходящие на collabora.sysadminium.ru будем перенаправлять службе coolwsd:

# nano /etc/nginx/sites-available/collabora
server {
    listen      443 ssl;
    server_name  collabora.sysadminium.ru;

    ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
    ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;

    # static files
    location ^~ /browser {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # WOPI discovery URL
    location ^~ /hosting/discovery {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # Capabilities
    location ^~ /hosting/capabilities {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # main websocket
    location ~ ^/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;
    }

    # download, presentation and image upload
    # we accept 'lool' to be backward compatible
    location ~ ^/(c|l)ool {
        proxy_pass http://localhost:9980;
        proxy_set_header Host $http_host;
    }

    # Admin Console websocket
    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 мог работать:

# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt

Включим сайт:

# ln -s /etc/nginx/sites-available/collabora /etc/nginx/sites-enabled/

Проверим конфигурацию nginx:

# nginx -t

И получим сертификат от let’s encrypt:

# certbot certonly --nginx

После этого в конфиге поменяем пути к сертификату и ключу:

# nano /etc/nginx/sites-available/collabora
ssl_certificate /etc/letsencrypt/live/collabora.sysadminium.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/collabora.sysadminium.ru/privkey.pem;

Перезапустим nginx:

# systemctl reload nginx.service

И так этот Collabora установлен на том же хосте что и NextCloud, то в файл hosts я добавляю запись:

# nano /etc/hosts
127.0.0.1 collabora.sysadminium.ru

Подключение NextCloud к Collabora

Дальше идём в web интерфейс NextCloud и добавляем приложение «Nextcloud Office». Это и есть коннектор для подключения к серверу Collabora.

После установки, заходим в «Параметры сервера», и там находим настройки «Офис».

Меню "Параметры сервера" в NextCloud

В настройках нажимаем галочку «Использовать собственный сервер», а в стоке подключения вводим адрес подключения:

Подключение NextCloud к Collabora

Теперь вы сможете создавать офисные документы в форматах: odt (текстовый документ), ods (таблица), odp (презентация).

Создание документов Collabora в NextCloud

У меня на сервере дополнительно установлен OnlyOffice, поэтому по 2 пункта меню. OnlyOffice создаёт файлы: docx (текстовый документ), xlsx (таблица), pptx (презентация).

Дополнительно вы сможете войти в админку Collabora можно по ссылке — https://collabora.sysadminium.ru/browser/dist/admin/admin.html.

Не забываем поменять домен на свой. А логин и пароль вы прописывали в конфиге coolwsd.xml.

Итог

Лично мне интерфейс OnlyOffice нравиться больше чем Collabora. По скорости работы и функциональности не сравнивал. Возможно позже сравню.

Collabora устанавливается легче, но использует побольше памяти. OnlyOffice вместе с Postgres потребляют меньше ресурсов чем Collabora.

Сводка
NextCloud — интеграция с Collabora
Имя статьи
NextCloud — интеграция с Collabora
Описание
В этой статье я покажу как к файловому серверу NextCloud подключить сервер документов Collabora

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *