Краткое описание: Инструкция по установке Collabora Office, настройка с NextCloud. Онлайн: документы, диск, офис, excel, текстовый редактор, хранилище файлов. Действия совершаются в операционной системе: Ubuntu Server 18.04.2 совместно пакетом NextCloud: NextCloud 15.
Поддержи автора статьи, просмотри рекламу ↓↓↓
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>
sudo a2enmod proxy proxy_wstunnel proxy_http ssl sudo systemctl restart apache2
Настройка Collabora Office и NextCloud
Завершающим этапом в установке Collabora Office это настройка NextCloud для работы с онлайн документами, для этого нужно выполнить действия:
Поддержи автора статьи, просмотри рекламу ↓↓↓
Установить пакет Collabora Office в NextCloud
Указать сервер расположения с Collabora Office
Активный чек бокс изменит формат файлов по умолчанию c ods и odt(формат LibreOffice) на более распространённые xlsx и docx.
После этого момента можно создавать документы типа Excel и Word и предоставлять общий доступ с разными функциями(срок действия, возможность редактирования, доступ по группам).
Настройка Nginx и Collabora Office
Входящий трафик по протоколам http и https(порты 80 и 443) проходит через 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.
sudo docker run -t -d -p 127.0.0.1:9980:9980 -e ‘domain=owncloud\\.mydomain\\.ru’ —restart always —cap-add MKNOD collabora/code
Возвращает
docker: invalid reference format.
Есть идеи, что не так? Не может же быть из-за того, что у меня стоит настроенный owncloud, а не nextcloud?
прошу прощения, старая ошибка вместо двух дефисов одно тире. Теперь Bind for 127.0.0.1:9980 failed: port is already allocated.
и действительно
tcp 0 0 127.0.0.1:9980 0.0.0.0:* LISTEN 1327/docker-proxy
Так и должно быть?