Ранее мы рассматривали установку облачного хранилища 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.

Проверяем.

Все работает!

Установка Collabora Online на сервер Nextcloud с помощью Docker
Метки:             

2 мыслей о “Установка Collabora Online на сервер Nextcloud с помощью Docker

  • 02.09.2021 в 14:02
    Постоянная ссылка

    Привет. Спасибо за статью! =)
    Есть одна проблема. В Nextcloud Collabora Online не открывается если в iptables закрыты входящие. (C Chain INPUT (policy ACCEPT) Collabora работает на отлично). Ниже настройки iptables. Все настраивал по инструкции (https://admin812.ru/ustanovka-oblachnogo-hranilishha-nextcloud.html и https://admin812.ru/ustanovka-collabora-online-na-server-nextcloud-s-pomoshhyu-docker.html)
    =============================================================
    root@bhey388ei3h:~# iptables -t filter -L -v
    Chain INPUT (policy DROP 0 packets, 0 bytes)
    pkts bytes target prot opt in out source destination
    0 0 ACCEPT udp — virbr0 any anywhere anywhere udp dpt:domain
    0 0 ACCEPT tcp — virbr0 any anywhere anywhere tcp dpt:domain
    0 0 ACCEPT udp — virbr0 any anywhere anywhere udp dpt:bootps
    0 0 ACCEPT tcp — virbr0 any anywhere anywhere tcp dpt:bootps
    6628 475K ACCEPT tcp — enp1s1 any anywhere anywhere tcp dpt:http
    251M 4G ACCEPT tcp — enp1s1 any anywhere anywhere tcp dpt:https
    99M 1G ACCEPT all — lo any anywhere anywhere
    82M 5278M ACCEPT all — any any anywhere anywhere ctstate RELATED,ESTABLISHED
    0 0 ACCEPT all — lo any anywhere anywhere
    0 0 ACCEPT all — DOCKER any anywhere anywhere
    0 0 ACCEPT tcp — enp1s1 any anywhere anywhere tcp dpt:9980

    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target prot opt in out source destination
    546 44655 DOCKER-USER all — any any anywhere anywhere
    546 44655 DOCKER-ISOLATION-STAGE-1 all — any any anywhere anywhere
    261 25939 ACCEPT all — any docker0 anywhere anywhere ctstate RELATED,ESTABLISHED
    9 500 DOCKER all — any docker0 anywhere anywhere
    276 18216 ACCEPT all — docker0 !docker0 anywhere anywhere
    0 0 ACCEPT all — docker0 docker0 anywhere anywhere
    0 0 ACCEPT all — any virbr0 anywhere 192.168.122.0/24 ctstate RELATED,ESTABLISHED
    0 0 ACCEPT all — virbr0 any 192.168.122.0/24 anywhere
    0 0 ACCEPT all — virbr0 virbr0 anywhere anywhere
    0 0 REJECT all — any virbr0 anywhere anywhere reject-with icmp-port-unreachable
    0 0 REJECT all — virbr0 any anywhere anywhere reject-with icmp-port-unreachable

    Chain OUTPUT (policy ACCEPT 5 packets, 532 bytes)
    pkts bytes target prot opt in out source destination
    0 0 ACCEPT udp — any virbr0 anywhere anywhere udp dpt:bootpc

    Chain DOCKER (1 references)
    pkts bytes target prot opt in out source destination
    9 500 ACCEPT tcp — !docker0 docker0 anywhere 172.17.0.2 tcp dpt:9980

    Chain DOCKER-ISOLATION-STAGE-1 (1 references)
    pkts bytes target prot opt in out source destination
    276 18216 DOCKER-ISOLATION-STAGE-2 all — docker0 !docker0 anywhere anywhere
    546 44655 RETURN all — any any anywhere anywhere

    Chain DOCKER-ISOLATION-STAGE-2 (1 references)
    pkts bytes target prot opt in out source destination
    0 0 DROP all — any docker0 anywhere anywhere
    276 18216 RETURN all — any any anywhere anywhere

    Chain DOCKER-USER (1 references)
    pkts bytes target prot opt in out source destination
    571 45777 RETURN all — any any anywhere anywhere
    =========================================================
    Настройки сети —

    ip a
    1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
    valid_lft forever preferred_lft forever
    2: enp1s1: mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:00:00:00:00:ed brd ff:ff:ff:ff:ff:ff
    inet 222.222.222.222/24 brd 222.222.222.255 scope global enp1s1
    valid_lft forever preferred_lft forever
    inet6 0000::0000:0000:0000:4700/64 scope link
    valid_lft forever preferred_lft forever
    3: enp1s2: mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:00:00:00:00:bf brd ff:ff:ff:ff:ff:ff
    inet 172.18.0.24/24 scope global enp1s2
    valid_lft forever preferred_lft forever
    inet6 0000::0000:0000:0000:0000/64 scope link
    valid_lft forever preferred_lft forever
    4: virbr0: mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 00:00:00:00:00:de brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
    valid_lft forever preferred_lft forever
    5: virbr0-nic: mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
    link/ether 00:00:00:00:00:de brd ff:ff:ff:ff:ff:ff
    6: docker0: mtu 1500 qdisc noqueue state UP group default
    link/ether 00:00:00:00:00:ee brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
    valid_lft forever preferred_lft forever
    inet6 0000::00:0000:0000:24ee/64 scope link
    valid_lft forever preferred_lft forever
    12: veth8586d67@if11: mtu 1500 qdisc noqueue master docker0 state UP group default
    link/ether 00:00:00:00:00:ae brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 0000::0000:0000:0000:79ae/64 scope link
    valid_lft forever preferred_lft forever
    ===================================================
    Я новичок в этой теме, не могу понять куда копать

    Ответ
  • 21.01.2022 в 17:29
    Постоянная ссылка

    ДОбрый день. Nextcloud установлен в докере, и там же был collabora. Выявил баги, да и читал что это больше тестовая версия. Установил по вашему ману в отдельный докер до секции про Nginx. Прописываю в строке настроек в Nextcloud https://192.168.0.33:9980. Работает. Но недоверенный сертификат…
    Не могу через NPM получить сертификат.
    По вашему ману секция «Настроим nginx как обратный прокси» настраивается на nextcloud если нет Nginx Proxy Manager( он установлен тоже в докере)?
    Т.е. изначально через NPM получались сертификаты и на Nextcloud и на другие сервисы, а тут затык.

    Ответ

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

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