Як інтегрувати LibreOffice з Nextcloud

LibreOffice давно зарекомендував себе як провідне безкоштовне рішення для офісних інструментів в середовищі Linux. Проте, стандартна локальна версія LibreOffice має певні обмеження, особливо коли мова йде про онлайн-роботу, ефективність, як у Google Workspace, та спільну роботу на кшталт Google Drive.

Саме тут на сцену виходить Collabora. Це модифікований варіант LibreOffice Online, який пропонує широкий спектр функцій, що можуть конкурувати з багатьма комерційними офісними онлайн-інструментами. Найпривабливішим є те, що це програмне забезпечення можна інтегрувати безпосередньо у різні хмарні рішення, розміщені на власному сервері. Далі розглянемо, як інтегрувати LibreOffice з Nextcloud.

Налаштування Collabora може здатися дещо складним, але воно варте витрачених зусиль, особливо для тих, хто прагне мати власне офісне рішення на базі Linux.

Зверніть увагу: для роботи з Collabora потрібен Docker-сервер Nextcloud з чинним SSL-сертифікатом. На жаль, сервер Nextcloud, встановлений через Snap, не підійде.

Налаштування Nextcloud на сервері Ubuntu

Використання Collabora в Nextcloud починається з розгортання сервера Nextcloud за допомогою Docker. Для початку встановіть Docker та завантажте останній контейнер Nextcloud з Docker Hub.

Варто зазначити, що налаштування Collabora найкраще працює на сервері Ubuntu, тому інструкція буде орієнтована саме на цю систему. Проте, якщо ви використовуєте іншу ОС, не хвилюйтеся, інструкції будуть схожі для більшості систем.

sudo docker pull undeadhunter/nextcloud-letsencrypt

Завантаження контейнера Nextcloud Docker нагадує встановлення через Snap. Тут не потрібні додаткові налаштування. Після завантаження вийдіть з-під root та перейдіть до звичайного користувача.

Примітка: щоб мати доступ до Collabora з-за меж вашої локальної мережі, необхідно налаштувати SSL за допомогою Nextcloud та Docker. Зверніться до офіційної документації, щоб дізнатися, як це зробити.

sudo docker run -it --name nextcloud --hostname nextcloud-letsencrypt -e CERTBOT_DOMAIN="nextcloud-letsencrypt" -e CERTBOT_EMAIL="email" -p 80:80 -p 443:443 undeadhunter/nextcloud-letsencrypt

Якщо команда виконана успішно, Nextcloud має бути запущений. Щоб отримати доступ, скористайтеся веб-браузером:

https://ip.address:8080

Виконайте кроки для налаштування Nextcloud у контейнері Docker. Після завершення відкрийте нову вкладку та згенеруйте новий SSL-сертифікат за допомогою LetsEncrypt.

sudo docker exec -it nextcloud-crypt /certbot.sh

Налаштування Collabora

Тепер, коли сервер Nextcloud Docker запущений, настав час налаштувати сервер Collabora для взаємодії з Nextcloud та плагіном Collabora Office.

Як і Nextcloud, Collabora також потребує запуску в контейнері Docker. Завантажте останню версію серверного програмного забезпечення Collabora за допомогою команди docker pull:

sudo docker pull collabora/code

Для коректної роботи Collabora потрібна взаємодія з Nextcloud. Запустіть сервер за допомогою команди docker run. Не забудьте відредагувати команду, замінивши “адреса_сервера_nextcloud” на фактичну адресу вашого сервера.

Примітка: не видаляйте символи зворотної косої риски!

sudo docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=nextcloudserveraddress' --restart always --cap-add MKNOD collabora/code

Зворотний проксі Apache

Для ефективної роботи Collabora потрібен зворотний проксі-сервер. Для цього використовується Apache2. Переконайтеся, що він вже встановлений на сервері. В Ubuntu Apache2 можна легко встановити за допомогою:

sudo apt install lamp-server^

Після встановлення Apache2, активуйте проксі-модулі за допомогою a2enmod. Ці модулі є критично важливими для роботи зворотного проксі.

sudo a2enmod proxy
sudo a2enmod proxy_wstunnel
sudo a2enmod proxy_http
sudo a2enmod ssl

Після активації модулів створіть новий файл віртуального хосту. У терміналі скористайтеся командою touch для створення нового файлу конфігурації.

sudo touch /etc/apache2/sites-available/your-collabora-site.com.conf

Для роботи проксі-сервера та Collabora потрібен SSL-сертифікат. Найшвидше це можна зробити за допомогою LetsEncrypt. Виконайте наступну команду в терміналі, щоб отримати сертифікат LetsEncrypt для Apache2.

sudo apt install letsencrypt python-letsencrypt-apache
sudo letsencrypt --apache --agree-tos --email email-address -d collabora-server-ip-or-domain.com

Відкрийте файл віртуального хосту за допомогою Nano.

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

Вставте наступний код в Nano:



ServerName office.your-domain.com

SSLCertificateFile /etc/letsencrypt/live/collabora-server-ip-or-domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/collabora-server-ip-or-domain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf

# Необхідно дозволити закодовані косі риски
AllowEncodedSlashes NoDecode

# Контейнер використовує унікальний непідписаний сертифікат
SSLProxyEngine on
SSLProxyVerify None
SSLProxyCheckPeerCN Off
SSLProxyCheckPeerName Off

# зберегти хост
ProxyPreserveHost On

# статичний html, js, зображення тощо, які подаються з loolwsd
# loleaflet є клієнтською частиною LibreOffice Online
ProxyPass /loleaflet https://127.0.0.1:9980/loleaflet retry=0
ProxyPassReverse /loleaflet https://127.0.0.1:9980/loleaflet

# URL-адреса виявлення WOPI
ProxyPass /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0
ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery

# Основний веб-сокет
ProxyPassMatch “/lool/(.*)/ws$” wss://127.0.0.1:9980/lool/$1/ws nocanon

# Веб-сокет консолі адміністратора
ProxyPass /lool/adminws wss://127.0.0.1:9980/lool/adminws

# Операції завантаження як, повноекранної презентації та завантаження зображень
ProxyPass /lool https://127.0.0.1:9980/lool
ProxyPassReverse /lool https://127.0.0.1:9980/lool

Натисніть Ctrl + O для збереження, а потім перезапустіть Apache 2:

sudo systemctl restart apache2

Інтеграція LibreOffice з Nextcloud

Усі необхідні налаштування для запуску Collabora завершено. Залишилося тільки інтегрувати LibreOffice з Nextcloud. Щоб це зробити, відкрийте веб-інтерфейс Nextcloud, перейдіть до значка шестерні та оберіть “Програми”.

Знайдіть у списку додатків “Collabora” та натисніть кнопку для його встановлення. Потім поверніться до інтерфейсу адміністратора Nextcloud, виберіть “Адміністрування”, а потім “Collabora Online”.

У розділі “Collabora Online” інтерфейсу адміністратора введіть IP-адресу вашого сервера Collabora Online та натисніть кнопку “Застосувати” для збереження налаштувань.

Відтепер будь-хто зможе використовувати Nextcloud Collabora з будь-якого комп’ютера через веб-інтерфейс Nextcloud.