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

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

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

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

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

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

PostgreSQL

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

apt update

apt install curl

Загрузим gpg-ключ репозитория:

curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /usr/share/keyrings/postgresql-keyring.gpg

И подключим сам репозиторий:

echo "deb [signed-by=/usr/share/keyrings/postgresql-keyring.gpg] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/postgresql.list

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

apt update

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

apt install postgresql-15

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

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

sudo -u postgres psql

Создадим пользователя onlyoffice и одноименную базу данных:

=# CREATE USER onlyoffice WITH password 'onlyoffice123';

=# CREATE DATABASE onlyoffice OWNER onlyoffice;

=# quit

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

RabbitMQ

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

apt install rabbitmq-server

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

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

curl -fsSL https://download.onlyoffice.com/GPG-KEY-ONLYOFFICE | gpg --dearmor -o /usr/share/keyrings/onlyoffice.gpg

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

echo "deb [signed-by=/usr/share/keyrings/onlyoffice.gpg] 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).

Загрузим в базу данных начальный набор данных:

psql -h localhost -U onlyoffice -W -d onlyoffice -f /var/www/onlyoffice/documentserver/server/schema/postgresql/createdb.sql

* также при запросе пароля вводим тот, что указали при создании пользователя (в нашем примере 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 можно командой:

curl -k https://127.0.0.1/welcome/

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

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

Настройка ownCloud / Nextcloud

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

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

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

Переходим в каталог, где развернуто облачное приложение и устанавливаем приложение onlyoffice. Для ownCloud или Nextcloud это будут разные действия.

Пути до каталога портала могут отличаться в вашей инфраструктуре.

а) Для ownCloud:

cd /var/www/owncloud

sudo -u www-data php ./occ market:install onlyoffice

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

* где /var/www/owncloud — каталог, где развернут owncloud.

б) Для nextcloud:

cd /var/www/nextcloud

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

* где /var/www/nextcloud — каталог, где развернут owncloud.

После устрановки приложения можно настраивать привязку.

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

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

* примеры скриншотов для Nextcloud (процесс для ownCloud схож).

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

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

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

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

* где:

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

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

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

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

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

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

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

1. Настройка сервера ownCloud + Apache на Ubuntu.

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

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

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

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

Да            Нет