Ранее мы рассматривали установку облачного хранилища Nextcloud. В продолжение этой статьи рассмотрим, как установить онлайн-сервер Collabora на Ubuntu с помощью Docker и интегрировать его с настроенным сервером Nextcloud.
Collabora Online – это автономный офисный сервер на основе LibreOffice . Его особенности включают:
- Базовое редактирование
- Высокая точность, WYSIWYG-рендеринг
- Поддерживает формат документов DOC, DOCX, PPT, PPTX, XLS, XLSX, ODF
- Импорт и просмотр Visio, Publisher и еще более 100 форматов
- Совместное редактирование
Основой онлайн-офиса является сервер Collabora Online, который берет на себя визуализацию и редактирование документа. Будем запускать этот сервер из Docker-контейнера, который содержит все необходимое для работы.
Подготовка
Для начала установим Docker
sudo apt update
sudo apt install docker.io
После установки демон Docker должен запуститься автоматически. Вы можете проверить его статус с помощью:
systemctl status docker
Если он не запущен, запустите демон с помощью этой команды:
sudo systemctl start docker
И включите автозапуск при загрузке:
sudo systemctl enable docker
Установим и запустим Collabora Online Server с Docker
docker run -t -d -p 9980:9980 -e "domain=cloud.admin812.ru" --restart always --cap-add MKNOD collabora/code
Проверим, что контейнер запущен
sudo netstat -lnpt | grep docker
Настроим nginx как обратный прокси
Так как контейнер Docker, который мы используем в качестве сервера Collabora Online, не имеет действительных сертификатов для вашего домена, мы будем использовать nginx в качестве обратного прокси-сервера, который предоставит сертификат ssl для подключения нашего браузера.
nano /etc/nginx/sites-available/nextcloud
Добавим в в конфигурацию nginx в секцию server
.............................................................
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name cloud.admin812.ru;
#
# Use Mozilla's guidelines for SSL/TLS settings
# https://mozilla.github.io/server-side-tls/ssl-config-generator/
# NOTE: some settings below might be redundant
ssl_certificate /etc/letsencrypt/live/cloud.admin812.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/cloud.admin812.ru/privkey.pem;
.......................................................
следующий блок:
# static files
location ^~ /loleaflet {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}
# WOPI discovery URL
location ^~ /hosting/discovery {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}
# main websocket
location ~ ^/lool/(.*)/ws$ {
proxy_pass https://localhost:9980;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_read_timeout 36000s;
}
# Capabilities
location ^~ /hosting/capabilities {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}
# download, presentation and image upload
location ~ ^/lool {
proxy_pass https://localhost:9980;
proxy_set_header Host $http_host;
}
# Admin Console websocket
location ^~ /lool/adminws {
proxy_pass https://localhost:9980;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_read_timeout 36000s;
}
Проверяем на ошибки nginx:
nginx -t
и если все в порядке – перегружаем
systemctl restart nginx
Теперь подключаемся к нашему серверу Nextcloud через браузер.
Проверяем, что присутствует компонента Collabora Online. Если ее нет – устанавливаем.
Следующим шагом подключаем Collabora к Nextcloud.
Проверяем.
Все работает!
ДОбрый день. Nextcloud установлен в докере, и там же был collabora. Выявил баги, да и читал что это больше тестовая версия. Установил по вашему ману в отдельный докер до секции про Nginx. Прописываю в строке настроек в Nextcloud https://192.168.0.33:9980. Работает. Но недоверенный сертификат…
Не могу через NPM получить сертификат.
По вашему ману секция “Настроим nginx как обратный прокси” настраивается на nextcloud если нет Nginx Proxy Manager( он установлен тоже в докере)?
Т.е. изначально через NPM получались сертификаты и на Nextcloud и на другие сервисы, а тут затык.