В этой статье вы узнаете, как установить онлайн-сервер Collabora на Ubuntu 16.04, а затем интегрировать его с существующим сервером Nextcloud.
Collabora online — это самоуправляемый и основанный на LibreOffice онлайновый офисный пакет с открытым исходным кодом. Его функции включают в себя:
- Базовое редактирование
- Высокая точность воспроизведения, WYSIWYG-рендеринг
- Поддерживает форматы документов DOC, DOCX, PPT, PPTX, XLS, XLSX, ODF
- Импорт и просмотр Visio, Publisher и более 100 и более
- Совместное редактирование
Как интегрировать сервер Collabora Online с Nextcloud на Ubuntu 16.04
Предполагается, что вы уже настроили сервер Nextcloud, который может находиться в любом дистрибутиве Linux. Если вы используете Ubuntu 16.04 или Arch Linux, вы можете проверить следующие простые для понимания руководства.
Сервер Collabora Online и сервер Nextcloud могут находиться на одной машине или на двух разных компьютерах. В этом учебнике показано, как установить онлайн-сервер Collabora на Ubuntu 16.04, используя изображение Докера, созданное Collabora и Nextcloud. Затем интегрируйте его с существующим сервером Nextcloud.
Шаг 1. Установите Docker на Ubuntu 16.04
Кстати, ранее мы уже писали о том, как настроить iptables на Linux . Возможно это будет вам также интересно, ссылку вы можете найти выше.
Если вам нужна последняя версия Docker, вы можете установить Docker из репозитория APT Docker. Для простоты в этом учебном курсе установите Docker из репозитория программного обеспечения Ubuntu по умолчанию. Запустите окно терминала (CTRL + ALT + T) и выполните следующую команду, чтобы установить Docker из репозитория Ubuntu.
sudo apt update sudo apt install docker.io
После установки Docker должен быть автоматически запущен. Вы можете проверить свой статус:
systemctl status docker

Если он не запущен, запустите его с помощью следующей команды:
sudo systemctl start docker
Включить автозапуск при загрузке:
sudo systemctl start docker
По умолчанию Docker использует AUFS в качестве драйвера хранилища для Debian и Ubuntu. Чтобы он работал в онлайн-офисе Collabora, вам необходимо переключиться на драйвер хранилища карт устройства, следуя приведенным ниже инструкциям.
Создайте следующий каталог.
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://
Сохраните и закройте файл. Затем перезагрузите Systemd и перезапустите Docker deamon.
sudo systemctl daemon-reload sudo systemctl restart docker
Теперь выполните следующую команду, вы увидите, что используемый драйвер хранилища — devicemapper.
sudo docker info
Вывод:
Containers: 1 Running: 1 Paused: 0 Stopped: 0 Images: 1 Server Version: 1.13.1 Storage Driver: devicemapper Pool Name: docker-253:1-515579-pool
Шаг 2. Установка и запуск онлайнового сервера Collabora с Docker
Следующим шагом в руководстве того, как интегрировать сервер Collabora Online с Nextcloud на Ubuntu 16.04 будет установка и запуск Collabora с Docker. Здесь все очень легко. Просто следуйте нашей инструкции. Если возникнут какие-то вопросы то можете писать их в форму комментариев.
Выполните следующую команду, чтобы вытащить последнюю версию Collabora Online Development Edition из концентратора Docker.
sudo docker pull collabora/code

Затем запустите этот контейнер докера. Замените \.your-domain\.com
на ваш домен сервера nextcloud (с сохранением обратного слэша).
sudo docker run -t -d -p 127.0.0.1:9980:9980 -e 'domain=nextcloud\.your-domain\.com' --restart always --cap-add MKNOD collabora/code
Онлайновый сервер Collabora будет прослушивать порт 9980 localhost (127.0.0.1), как это можно показать, выведя следующую команду:
sudo netstat -lnpt
Шаг 3. Настройка обратного прокси
Серверу Nextcloud требуется сертификат TLS / SSL на онлайн-сервере Collabora, поэтому нам нужно будет создать виртуальный хост, предоставить виртуальному хосту имя домена, установить TLS / SSL-сертификат и настроить обратный прокси-сервер. Для достижения этой цели мы можем использовать либо Apache, либо Nginx.
Сначала давайте посмотрим, как это сделать с Apache.
Настройка виртуального хоста Apache
Установите веб-сервер Apache с помощью следующей команды:
sudo apt install apache2
Выполните следующую команду, чтобы создать файл виртуального хоста Apache. Замените имя домена на фактическое имя домена для онлайн-сервера Collabora. Не забудьте создать запись A для этого доменного имени.
sudo nano /etc/apache2/sites-available/office.your-domain.com.conf
Поместите следующий текст в файл.
<VirtualHost *:80> ServerName office.your-domain.com </VirtualHost>
Сохраните и закройте файл. Включите этот виртуальный хост с помощью следующей команды:
sudo a2ensite office.your-domain.com.conf
Затем перезапустите Apache.
sudo systemctl restart apache2
HTTPS помогает нам предотвратить атаку «человек в середине» и разнюхать пароль. Мы можем получить бесплатный TLS / SSL-сертификат от Let’s Encrypt CA. Сначала давайте установим клиента certbot. Клиент по-прежнему называется letnecrypt в репозитории Ubuntu. Следующая команда установит клиент и плагин apache.
sudo apt install letsencrypt python-letsencrypt-apache
Теперь выполните следующую команду, чтобы получить бесплатный сертификат TLS / SSL. Замените текст красного цвета фактическими данными.
sudo letsencrypt --apache --agree-tos --email your-email-address -d office.your-domain.com
Вас попросят выбрать легкий или безопасный. Рекомендуется выбрать безопасный, чтобы все http-запросы были перенаправлены на https.

Как только вы нажмете кнопку OK, бесплатный сертификат TLS / SSL будет получен и установлен на виртуальном хосте Apache.
Настройка обратного прокси-сервера Apache
Чтобы иметь возможность прокси трафик с помощью Apache, выполните следующие команды, чтобы включить каждый из этих модулей Apache.
sudo a2enmod proxy proxy_wstunnel proxy_http ssl
Затем выполните следующую команду для редактирования нового файла виртуального хоста, созданного клиентом Let’s Encrypt (certbot).
sudo nano /etc/apache2/sites-enabled/office.your-domain.com-le-ssl.conf
Добавьте зеленый текст в этот файл, чтобы он выглядел следующим образом.
<IfModule mod_ssl.c> <VirtualHost *:443> ServerName office.your-domain.com SSLCertificateFile /etc/letsencrypt/live/office.your-domain.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/office.your-domain.com/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf # Encoded slashes need to be allowed AllowEncodedSlashes NoDecode # Container uses a unique non-signed certificate SSLProxyEngine On SSLProxyVerify None SSLProxyCheckPeerCN Off SSLProxyCheckPeerName Off # keep the host ProxyPreserveHost On # static html, js, images, etc. served from loolwsd # loleaflet is the client part of LibreOffice Online ProxyPass /loleaflet https://127.0.0.1:9980/loleaflet retry=0 ProxyPassReverse /loleaflet https://127.0.0.1:9980/loleaflet # WOPI discovery URL ProxyPass /hosting/discovery https://127.0.0.1:9980/hosting/discovery retry=0 ProxyPassReverse /hosting/discovery https://127.0.0.1:9980/hosting/discovery # Main websocket ProxyPassMatch "/lool/(.*)/ws$" wss://127.0.0.1:9980/lool/$1/ws nocanon # Admin Console websocket ProxyPass /lool/adminws wss://127.0.0.1:9980/lool/adminws # Download as, Fullscreen presentation and Image upload operations ProxyPass /lool https://127.0.0.1:9980/lool ProxyPassReverse /lool https://127.0.0.1:9980/lool </VirtualHost> </IfModule>
Сохраните и закройте файл. Затем перезапустите веб-сервер Apache.
sudo systemctl restart apache2
Теперь давайте посмотрим, как достичь тех же результатов с Nginx.
Настройка виртуального хоста Nginx
Установите Nginx на Ubuntu 16.04 с помощью следующей команды:
sudo apt install nginx
Создайте файл виртуального хоста. Замените имя домена на фактическое имя домена для онлайн-сервера Collabora. Не забудьте создать запись A для этого доменного имени.
sudo nano /etc/nginx/conf.d/office.your-domain.com.conf
Поместите следующий текст в файл.
server { listen 80; server_name office.your-domain.com; root /usr/share/nginx/office; }
Сохраните и закройте файл. Создайте каталог для этого виртуального хоста.
sudo mkdir /usr/share/nginx/office
И пусть владелец Nginx (www-data) будет владельцем этого каталога.
sudo chown www-data:www-data /usr/share/nginx/office -R
Перезагрузите сервер Nginx.
sudo systemctl reload nginx
Теперь давайте получим бесплатный сертификат TLS от Let’s encrypt. Установить клиент certbot с:
sudo apt install letsencrypt
Затем используйте плагин webroot для получения сертификата. Замените красный текст на фактические данные.
sudo letsencrypt certonly --webroot --email your-email-address -d office.your-domain.com -w /usr/share/nginx/office/
Вы увидите следующий текст, указывающий, что вы успешно получили сертификат TLS. Ваш сертификат и цепочка были сохранены в каталоге /etc/letsencrypt/live/office.your-domain.com/.
Настройка обратного прокси Nginx
Отредактируйте файл виртуального хоста.
sudo nano /etc/nginx/conf.d/office.your-domain.com.conf
Измените конфигурацию на следующее.
server { listen 443 ssl; server_name office.your-domain.com; root /usr/share/nginx/office; ssl_protocols TLSv1.1 TLSv1.2; ssl_certificate /etc/letsencrypt/live/office.your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/office.your-domain.com/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; } # websockets, download, presentation and image upload location ^~ /lool { proxy_pass https://localhost:9980; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; } }
Сохраните и закройте файл. Затем проверьте конфигурацию nginx и перезагрузите Nginx.
sudo nginx -t sudo systemctl reload nginx
Заключительный шаг: подключите Nextcloud к серверу Collabora Online
Чтобы подключить сервер Nextcloud к онлайн-серверу Collabora, сначала нужно включить экспериментальные приложения в Nextcloud.
В вашей панели инструментов Nextcloud перейдите в Приложения,

Затем нажмите на значок шестеренки в левом нижнем углу и установите флажок Включить экспериментальные приложения.

Затем перейдите на вкладку «Производительность» слева, найдите приложение Connabora Online connector и нажмите кнопку «Включить».

Обновление: Nextcloud мог бы изменить интерфейс приложений. Если вы не можете найти вкладку «Производительность», перейдите на вкладку «Не включено», найдите и включите приложение Connector Online Connector. Приложение Connabora Online connector также может изменить свое имя на Collabora Online.
Наконец, перейдите на страницу администрирования Nextcloud. Перейдите на вкладку Дополнительные настройки слева. Прокрутите вниз до раздела Collabora Online и введите имя домена вашего онлайн-сервера Collabora, включая префикс https: //. Не забудьте нажать кнопку «Применить».

Теперь вы должны увидеть новое приложение Office из раскрывающегося меню.

И вы можете создавать документы Word, таблицы и презентации прямо с сервера Nextcloud.

Перевод из отличного английского ресурса LinuxBabe .
Готово! Надеюсь, этот урок помог вам установить, запустить онлайн-сервер Collabora на Ubuntu 16.04 и интегрировать его с Nextcloud. Как всегда, если вы нашли этот пост полезным, подпишитесь на нашу бесплатную рассылку и поделитесь ссылкой в Google+, Twitter или, например, на нашей странице в Facebook. Давайте развивать лучшее Linux сообщество вместе!
Если у вас остались вопросы по теме «Как интегрировать сервер Collabora Online с Nextcloud на Ubuntu 16.04» то можете писать их в форму комментариев на нашем сайте.