Установка и настройка OnlyOffice Server на Ubuntu, а также интеграция его с Nextcloud

Обновлено и опубликовано Опубликовано:

Используемые термины: Nextcloud, Ubuntu.

OnlyOffice является платформой для совместной работы с офисными документами. Сервис позиционируется как облачный, но есть возможность установки на собственное оборудование. Разработчик предлагает разные варианты развертывания от docker до ручного развертывания компонентов системы. Мы рассмотрим последний, а также настроим интеграцию с Nextcloud. Подразумевается, что у нас уже развернут сам Nextcloud (ссылки на соответствующие инструкции приведены ниже).

Установка компонентов для OnlyOffice

Для работы OnlyOffice необходимы сервер баз данных PostgreSQL и брокер сообщений rabbitmq. В документации на официальном сайте можно найти список системных требований для развертывания приложения. Особое внимание стоит обратить на версии программных компонентов.

PostgreSQL

На момент обновления инструкции, для OnlyOffice требовался PostgreSQL версии 12.9 и выше. Подключаем репозиторий:

echo "deb [arch=amd64] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/postgresql.list

Устанавливаем ключ репозитория:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -

Обновляем кэш пакетов:

apt update

Устанавливаем postgresql:

apt install postgresql-13

* в нашем примере будет установлен postgresql версии 13.

Зайдем в sql-оболочку под пользователем posgrtes:

sudo -u postgres psql

Создадим базу данных и пользователя, который будет иметь к ней полный доступ:

=# CREATE DATABASE onlyoffice;

=# CREATE USER onlyoffice WITH password 'onlyoffice123';

=# GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;

=# quit

* в нашем примере мы создадим базу данных onlyoffice и одноименного пользователя с полными к ней привилегиями. В качестве пароля пользователя используем onlyoffice123. 

RabbitMQ

Для его установки достаточно ввести одну команду:

apt install rabbitmq-server

Установка и настройка OnlyOffice

Установим ключ, необходимый для проверки подписей пакетов в репозитории OnlyOffice:

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv CB2DE8E5

Добавим сам репозиторий:

echo "deb https://download.onlyoffice.com/repo/debian squeeze main" > /etc/apt/sources.list.d/onlyoffice.list

Обновим кэш пакетов:

apt update

Установим набор шрифтов Microsoft:

apt install ttf-mscorefonts-installer

* установщик попросит принять лицензионное соглашение — отвечаем Yes.

Устанавливаем сам onlyoffice сервер:

apt install onlyoffice-documentserver

Установщик запросит пароль для подключения к базе данных — вводим тот, что указали при создании пользователя (onlyoffice123).

Также будет установлен веб-сервер nginx с базовой конфигурацией для запуска onlyoffice. Нам необходимо внести правки:

vi /etc/nginx/conf.d/ds.conf

Приводим опции к виду:

  ...
  listen 0.0.0.0:443 ssl;
  server_tokens off;
  server_name onlyoffice.dmosk.ru;
  ssl_certificate /etc/ssl/onlyoffice/cert.crt;
  ssl_certificate_key /etc/ssl/onlyoffice/cert.key;
  ...

* где:

  • listen — адрес и порт, на которых слушает веб-сервер. По умолчанию он работает на порту 80, но для интеграции с Nextcloud нам нужен https. При желании, мы можем изменить порт на нестандартный.
  • server_name — доменное имя, для которого данная настройка будет работать. Вам необходимо заменить имя на свое. Она позволит разграничить запросы к nginx — только при обращении по имени onlyoffice.dmosk.ru запросы пойдут к OnlyOffice.
  • ssl_certificate — путь до сертификата, открытого ключа.
  • ssl_certificate_key — путь до сертификата, закрытого ключа.

Создадим каталог для хранения сертификатов:

mkdir /etc/ssl/onlyoffice

И сгенерируем их:

openssl req -x509 -days 1461 -nodes -newkey rsa:2048 -sha256 -keyout /etc/ssl/onlyoffice/cert.key -out /etc/ssl/onlyoffice/cert.crt -subj "/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=onlyoffice.dmosk.ru/CN=onlyoffice"

* в данном примере мы получим сертификат на доменное имя onlyoffice.dmosk.ru.

Для тестовых целей нам достаточно сформировать самоподписанный сертификат. Но для продуктивной среды лучше использовать внутренний сертификационный центр или Let's Encrypt.

Проверяем корректность конфигурации и перезапускаем nginx:

nginx -t && systemctl restart nginx

Откроем конфигурационный файл:

vi /etc/onlyoffice/documentserver/default.json

Приведем опцию rejectUnauthorized к виду:

"rejectUnauthorized": false

* данная опция позволяет использовать не валидный сертификат (в нашем случае, самоподписанный).

Сервис OnlyOffice должен иметь возможность ответить Nextcloud, обратившись к нему по доменному имени. На практике это значит, что если у нас последнее разрешается во внешний IP, который находится за одним и тем же NAT с OnlyOffice, наш облачный офис работать не будет. Чтобы решить проблему, отредактируем файл hosts:

vi /etc/hosts

127.0.0.1 localhost cloud.dmosk.ru

* предположим, что мой nextcloud работает на доменном имени cloud.dmosk.ru и находится на одном сервере с OnlyOffice. Таким образом мы указываем, что cloud.dmosk.ru — это 127.0.0.1. Если у вас это разные серверы, которые находятся в одной локальной сети, необходимо будет указать внутренний адрес.

Перезапускаем сервисы onlyoffice:

supervisorctl restart all

Проверить ответ от onlyoffice можно командой:

curl -k https://127.0.0.1/welcome/

* где 127.0.0.1 будет адресом onlyoffice (в моем случае, это локальный сервер). Данная должна вернуть html-страницу приветствия.

Офис онлайн готов к работе.

Настройка Nextcloud

Посмотрим секретный ключ, который был сгенерирован при установке onlyoffice:

cat /etc/onlyoffice/documentserver/local.json | grep string

Фиксируем значение — оно нам понадобиться позже.

Устанавливаем и разрешаем на Nextcloud расширение onlyoffice:

sudo -u www-data php /var/www/nextcloud/occ app:enable onlyoffice

Переходим в настройки на веб-панели:

Переходим в настройки Nextcloud

В меню слева кликаем по ONLYOFFICE:

Переходим в настройки OnlyOffice

Вносим настройки:

Заполняем форму с настройками интеграции Nextcloud с OnlyOffice

* где:

  • Адрес ONLYOFFICE Docs — внешний адрес сервера с OnlyOffice.
  • Секретный ключ — ключ, который был сгенерирован при установке офиса. Его мы посмотрели в начале раздела.
  • Адрес ONLYOFFICE Docs для внутренних запросов сервера — внутренний адрес OnlyOffice сервера. В нашем случае это тот же сервер, что и Nextcloud, поэтому указываем адрес локальной петли.
  • Адрес сервера для внутренних запросов ONLYOFFICE Docs — внешний адрес сервера Nextcloud.

 Также мы используем самоподписанный сертификат, поэтому ставим галочку Отключить проверку сертификата (небезопасно).

Кликаем по Сохранить — ниже появятся дополнительные настройки, который мы можем задействовать при работе с OnlyOffice:

Сохраняем настройки nextcloud

Настройка завершена. Можно попробовать открыть офисный документ.

Читайте также

Данные инструкции могут быть также полезны:

1. Установка и настройка Nextcloud + NGINX на Ubuntu.

2. Установка и настройка Nextcloud + Apache на Ubuntu.

3. Установка и настройка локального сервера Collabora и его связка с Nextcloud/Owncloud.

# Серверы # Ubuntu
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет