SCROLL
Среднее время на прочтение: 3 мин.

Установка ONLYOFFICE Docs Community Edition на Debian 12

ONLYOFFICE Docs — это бесплатный программный офисный пакет и экосистема приложений для совместной работы.

Хоть и официальный мануал по установке достаточно хорошо читаем, я все же для себя детально по шагам разберу установку ONLYOFFICE Docs на Debian 12 и настройку связки с Nextcloud.

Установка зависимостей

Для установки пакета — ttf-mscorefonts-installer необходимо включение дополнительных Contrib и Non-Free репозиториев.

echo "deb http://deb.debian.org/debian/ bookworm contrib non-free" | tee -a /etc/apt/sources.list
sudo apt-get update

Устанавливаем необходимые зависимости.

sudo apt-get install libcurl4 libxml2 curl gnupg2 libstdc++6 fonts-dejavu fonts-liberation ttf-mscorefonts-installer fonts-crosextra-carlito fonts-takao-gothic fonts-opensymbol nginx-extras -y

RabbitMQ

RabbitMQ — это брокер сообщений с открытым исходным кодом, который реализует протокол AMQP (Advanced Message Queuing Protocol).

RabbitMQ принимает сообщения от поставщиков, отправляет подтверждение о приёме и перенаправляет сообщение получателям. Получатели подтверждают, что сообщение доставлено, или сигнализируют о неудачной доставке. Во втором случае сообщение остаётся в очереди до тех пор, пока не будет доставлено. После доставки сообщение удаляется из системы.
sudo apt-get install rabbitmq-server -y

PostgreSQL

Установите версию PostgreSQL.

sudo apt-get install postgresql -y

После установки PostgreSQL создайте базу данных и пользователя PostgreSQL.

sudo -Hiu postgres psql -c "CREATE USER onlyoffice WITH PASSWORD 'onlyoffice';"
sudo -Hiu postgres psql -c "CREATE DATABASE onlyoffice OWNER onlyoffice;"
Пользователь базы данных должен называться onlyoffice. Пароль можно задать любой.

Установка ONLYOFFICE Docs

Добавляем GPG-ключ.

mkdir -p -m 700 ~/.gnupg
curl -fsSL https://download.onlyoffice.com/GPG-KEY-ONLYOFFICE | gpg --no-default-keyring --keyring gnupg-ring:/tmp/onlyoffice.gpg --import
chmod 644 /tmp/onlyoffice.gpg
sudo chown root:root /tmp/onlyoffice.gpg
sudo mv /tmp/onlyoffice.gpg /usr/share/keyrings/onlyoffice.gpg

Добавляем репозиторий ONLYOFFICE Docs.

echo "deb [signed-by=/usr/share/keyrings/onlyoffice.gpg] https://download.onlyoffice.com/repo/debian squeeze main" | sudo tee /etc/apt/sources.list.d/onlyoffice.list

Устанавливаем ONLYOFFICE Docs.

apt-get update && apt-get install onlyoffice-documentserver -y
В ходе установки будет запрошен пароль для пользователя onlyoffice в PostgreSQL. Введите пароль onlyoffice, который был задан при настройке PostgreSQL.

По адресу —  http://<server_name> доступна страница приветствия ONLYOFFICE Docs, где приводятся дальнейшие инструкции о том, как интегрировать ONLYOFFICE Docs в веб-приложения и как протестировать работу ONLYOFFICE Docs.

Настройка ONLYOFFICE Docs — HTTPS

Для последующей настройки связки с Nextcloud, необходимо настроить ONLYOFFICE Docs на работу по протоколу HTTPS. Выполним настройку.

Скопируем файл ds-ssl.conf.tmpl в файл ds.conf с помощью следующей команды

cp -f /etc/onlyoffice/documentserver/nginx/ds-ssl.conf.tmpl /etc/onlyoffice/documentserver/nginx/ds.conf

Зададим параметры для конфигурации ds.conf

  • SERVERNAME — Указываем DNS имя вашего экземпляра ONLYOFFICE Docs.
  • SSL_CERT — Путь к файлу сертификата.
  • SSL_PKEY — Путь к файлу закрытого ключа сертификата.
export SERVERNAME=<dns_server_name>
export SSL_CERT=/etc/ssl/fullchain.pem
export SSL_PKEY=/etc/ssl/privkey.pem

sed -i "s/server_name _;/server_name $SERVERNAME;/g; s|{{SSL_CERTIFICATE_PATH}}|$SSL_CERT|g; s|{{SSL_KEY_PATH}}|$SSL_PKEY|g" /etc/onlyoffice/documentserver/nginx/ds.conf

Запустим следующий скрипт, для того чтобы внести необходимые правки в файл ds.conf

bash /usr/bin/documentserver-update-securelink.sh

Проверим статус службы и состояние сервера:

systemctl status ds-docservice
systemctl status ds-converter

bash /usr/bin/documentserver-jwt-status.sh
Your JWT settings:
JWT enabled -  true
JWT secret  -  TuFVcNHa2YJzBciUh6lXqIbFAnTM5HpR
JWT header  -  Authorization
Данные JWT secret + JWT header, необходимы для подключения ONLYOFFICE Docs к внешним системам, таким как Nextcloud.

Настройка ONLYOFFICE Docs в Nextcloud

Теперь можно использовать сервер ONLYOFFICE Docs в Nextcloud.

Где:

  • Адрес ONLYOFFICE Docs — указываем DNS имя сервера которое задавали в файле ds.conf в директиве server_name
  • Секретный ключ — указываем secret полученный при выполнении /usr/bin/documentserver-jwt-status.sh

Дополнительно (дополняемая)

Ниже буду дописывать какие то моменты которые могут пригодится в обслуживании ONLYOFFICE Docs.

Как изменить секретный ключ

В файле /etc/onlyoffice/documentserver/local.json в секциях secret — {inbox, outbox, session} в полях string указываем желаемый секретный ключ (должен быть одинаковый во всех трех строках).

/etc/onlyoffice/documentserver/local.json
  "secret": {
    "inbox": {
      "string": "DbNCGPIT9Vqv53hmuAMuMIhl9m8PsEAiey54u7zX"
    },
    "outbox": {
      "string": "DbNCGPIT9Vqv53hmuAMuMIhl9m8PsEAiey54u7zX"
    },
    "session": {
      "string": "DbNCGPIT9Vqv53hmuAMuMIhl9m8PsEAiey54u7zX"
    }

После внесения изменений, необходимо перезапустить службу ds-docservice

systemctl restart ds-docservice

Корректное отключение пользователей ONLYOFFICE Docs

Чтобы избежать потери данных, при необходимости остановить ONLYOFFICE Docs в случаях обновления приложения, перезагрузки сервера и т.п. необходимо принудительно отключить пользователей ONLYOFFICE Docs.

bash /usr/bin/documentserver-prepare4shutdown.sh

Чтобы все заработало обратно, в случае если не было перезагрузки системы, то просто перезапускаем службы ONLYOFFICE Docs.

systemctl status ds-docservice
systemctl status ds-converter

Отключение страницы приветствия

Если необходимо отключить страницу приветствия, то нужно в файле — /etc/onlyoffice/documentserver/nginx/includes/ds-docservice.conf закоментировать отмеченную строку и добавить ниже следующие:

/etc/onlyoffice/documentserver/nginx/includes/ds-docservice.conf
#welcome page
#rewrite ^/$ $the_scheme://$the_host$the_prefix/welcome/ redirect;
rewrite ^/welcome $the_scheme://$the_host redirect;

location = / {
  return 404;
}

После внесения изменений, перезапускаем nginx — systemctl reload nginx

Обсуждение

0 комментариев

Нет комментариев.