Краткое описание: Инструкция по установке Collabora Office, настройка с NextCloud. Онлайн: документы, диск, офис, excel, текстовый редактор, хранилище файлов. Действия совершаются в операционной системе: Ubuntu Server 18.04.2 совместно пакетом NextCloud: NextCloud 15.

Нужна консультация или помощь в решении IT вопроса?

    Office онлайн

    У NextCloud есть целый набор дополнительных приложений, которые хочется “пощупать” и внедрить в работу: задачи(Tasks), календарь(Calendar), долгожданный Talk. Но многие приложения вызывают недоверие. Причины разные: плохая синхронизация с android, отсутствуют некоторые важные моменты структурной работы(делегирования\наблюдение\утверждении задач), а также по причине стабильности(Talk может просто зависнуть). Collabora Office к таким приложениям не относится и неплохо дополняет читаемость файлов с открытым доступом.

    Пример работы с Goolge диском

    Онлайн сервис Google Disk применяется в различных направлениях и одно из самых популярных – совместный доступ к документам в режиме онлайн, т.е. Excel и Word онлайн. Это выглядит так:

    Google Disk: пример электронной таблицы типа Excel(xls, xlsx)

    Google Disk: пример документа типа Word(doc, docx)

    а так выглядят документы в Collabora Office

    NextCloud: пример электронной таблицы типа Excel(xls, xlsx)

    NextCloud: пример документа типа Word(doc, docx)

    Это некий симбиоз общего доступа к документу и онлайн программы типа Excel и Word.

    Установка Collabora Office

    Существует два варианта установки: на сервер с NextCloud и на отдельный сервер. Что это может дать? Collabora Office требовательный к системным ресурсам и для разной инфраструктуры отделение такой роли может быть выходом для общей отзывчивости при работе с документами. Первая установка производилась на отдельном сервере, чтобы не так сильно запутаться в связке внешний DNS–Mikrotik–Nginx-revers-proxy–NextCloud(apache)–CollaboraOffice. Везде присутствовала некая адресация, а ещё ведь нужно получить сертификат от LetsEncrypt на конечный узел. На практике это сложности даже не всплыли. Конфигурация внедрялась на одном сервере с NextCloud.

    Стандартный сценарий установки Collabora Office

    sudo apt update
    sudo apt upgrate
    sudo apt install docker.io
    sudo systemctl enable docker
    sudo mkdir /etc/systemd/system/docker.service.d
    sudo nano /etc/systemd/system/docker.service.d/DeviceMapper.conf
    [Service]
    ExecStart=
    ExecStart=/usr/bin/dockerd --storage-driver=devicemapper -H fd://
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    sudo docker pull collabora/code
    sudo docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=nextcloud\\.topnet\\.com\\.ua'\
     --restart always --cap-add MKNOD collabora/code

    Создание первичной конфигурации для получения сертификата

    sudo nano /etc/apache2/sites-available/doc.topnet.com.ua.conf
    VirtualHost *:80
    ServerName doc.topnet.com.ua
    /VirtualHost
    sudo a2ensite doc.topnet.com.ua.conf
    sudo systemctl restart apache2

    Получение сертификата SSL от Lets Encrypt

    sudo certbot --apache -d doc.topnet.com.ua

    Обновление конфигурации Virtual Host для Apache

    sudo nano /etc/apache2/sites-available/doc.topnet.com.ua.conf

    Прошлую конфигурацию нужно заменить на эту:

    <IfModule mod_ssl.c>
    <VirtualHost *:443>
      ServerName doc.topnet.com.ua
      SSLCertificateFile /etc/letsencrypt/live/doc.topnet.com.ua/fullchain.pem
      SSLCertificateKeyFile /etc/letsencrypt/live/doc.topnet.com.ua/privkey.pem
      Include /etc/letsencrypt/options-ssl-apache.conf
    
      AllowEncodedSlashes NoDecode
    
      SSLProxyEngine On
      SSLProxyVerify None
      SSLProxyCheckPeerCN Off
      SSLProxyCheckPeerName Off
    
      ProxyPreserveHost On
    
      ProxyPass /loleaflet https://127.0.0.1:9980/loleaflet retry=0
      ProxyPassReverse /loleaflet https://127.0.0.1:9980/loleaflet
    
      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
    
    </VirtualHost>
    </IfModule>

    После выпуск сертификата добавилась конфигурация для SSL в папку /etc/apache2/sites-enabled. Все лишние конфигурации могут вызывать конфликты!

    sudo a2enmod proxy proxy_wstunnel proxy_http ssl
    sudo systemctl restart apache2

    Настройка Collabora Office и NextCloud

    Завершающим этапом в установке Collabora Office это настройка NextCloud для работы с онлайн документами, для этого нужно выполнить действия:

    Установить пакет Collabora Office в NextCloud

    Установка Collabora Office в NextCloud

    Указать сервер расположения с Collabora Office

    Установка Collabora Office в NextCloud, Xlsx, Docx

    Активный чек бокс изменит формат файлов по умолчанию c ods и odt(формат LibreOffice) на более распространённые xlsx и docx.

    После этого момента можно создавать документы типа Excel и Word и предоставлять общий доступ с разными функциями(срок действия, возможность редактирования, доступ по группам).

    Настройка Nginx и Collabora Office

    Входящий трафик по протоколам http и https(порты 80 и 443) проходит через Nginx reverse proxy.

    Схематически это выглядит так:

    Настройка Nginx reverse proxy, схема сети

    Со стороны Nginx нужно добавить конфигурацию:

    nano /etc/nginx/sites-available/doc.topnet.conf
    server {
    listen 80;
    server_name doc.topnet.com.ua;
    return 301 https://$server_name$request_uri;
    }
    server {
    listen 443 ssl;
    server_name doc.topnet.com.ua;
    ssl_protocols TLSv1.1 TLSv1.2;
    ssl_certificate /etc/nginx/ssl/doc.topnet.com.ua/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/doc.topnet.com.ua/privkey.pem;
    location ^~ /loleaflet {
    proxy_pass https://192.168.5.250;
    proxy_set_header Host $http_host;
    }
    location ^~ /hosting/discovery {
    proxy_pass https://192.168.5.250;
    proxy_set_header Host $http_host;
    }
    location ^~ /lool {
    proxy_pass https://192.168.5.250;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $http_host;
    }
    }

    SSL сертификат скопировать в /etc/nginx/ssl/doc.topnet.com.ua/ с сервера, на котором запущен Collabora Office.

    Нужен Excel онлайн? Wellcome to Collabora Office

    Если у вас есть профессиональный интерес в расширении данной статьи – заполните форму запроса.