В этой статье я покажу как к файловому серверу NextCloud подключить сервер документов Collabora.
Введение
Я уже писал про установку облачного файлового сервера NextCloud — здесь.
А здесь я писал про интеграцию с OnlyOffice.
Collabora это тоже сервер документов, но он использует другой формат файлов в отличии от OnlyOffice:
- OnlyOffice — docx (документ), xlsx (таблица), pptx (презентация);
- Collabora — odt (документ), ods (таблица), odp (презентация).
Официальная страница Collabora — доступна здесь.
Официальные инструкции:
- https://www.collaboraoffice.com/code/linux-packages/ — инструкция по установке на свой сервер;
- https://github.com/CollaboraOnline/online/blob/master/etc/nginx/coolwsd.conf — конфиг для прокси сервера на nginx.
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.
После установки, заходим в «Параметры сервера», и там находим настройки «Офис».

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

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

У меня на сервере дополнительно установлен OnlyOffice, поэтому по 2 пункта меню. OnlyOffice создаёт файлы: docx (текстовый документ), xlsx (таблица), pptx (презентация).
Дополнительно вы сможете войти в админку Collabora можно по ссылке — https://collabora.sysadminium.ru/browser/dist/admin/admin.html.
Не забываем поменять домен на свой. А логин и пароль вы прописывали в конфиге coolwsd.xml.
Лично мне интерфейс OnlyOffice нравиться больше чем Collabora. По скорости работы и функциональности не сравнивал. Возможно позже сравню.
Collabora устанавливается легче, но использует побольше памяти. OnlyOffice вместе с Postgres потребляют меньше ресурсов чем Collabora.
Если понравилась статья, подпишись на мой канал в VK или Telegram.