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.