Перейти к содержанию

Обзор развертывания OnlyOffice

Предварительные требования и базовые условия

Для развертывания OnlyOffice Document Server на сервере необходимо выполнить следующие требования:

  • Операционная система: Ubuntu (совместимая с Docker engine).

  • Права доступа: Требуется доступ root или права sudo для управления сервисами Docker и настройки прокси-сервера.

  • Доменная зона: Развертывание использует зону hostkey.in.

  • Порты:

  • Порт 8080: Порт внутренней связи для приложения OnlyOffice.

  • Порт 443: Внешний порт для HTTPS-трафика, управляемый прокси-сервером Nginx.

FQDN конечной точки

Приложение доступно по следующему формату полностью указанного доменного имени (Fully Qualified Domain Name, FQDN): only-docs{Server ID}.hostkey.in:443

В этом формате {Server ID} представляет уникальный идентификатор, присвоенный экземпляру сервера.

Структура файлов и директорий

Развертывание использует следующую структуру директорий для управления конфигурацией, данными и сертификатами:

  • /root/nginx/: Содержит файл Docker Compose для прокси-сервера.

  • compose.yml: Файл конфигурации для контейнеров Nginx и Certbot.

  • /data/nginx/:

  • user_conf.d/: Хранилище конкретных файлов конфигурации Nginx для домена (например, only-docs{Server ID}.hostkey.in.conf).

  • nginx-certbot.env: Файл переменных окружения, содержащий настройки для сервиса Nginx-Certbot.

  • /etc/letsencrypt/: Точка монтирования для SSL-сертификатов, управляемых томом (volume) nginx_secrets.

Процесс установки приложения

OnlyOffice Document Server устанавливается с помощью Docker. Развертывается конкретная версия 9.3, использующая официальный образ из реестра OnlyOffice.

  • Имя образа: onlyoffice/documentserver:9.3

  • Имя контейнера: onlyoffice-docs

  • Политика перезапуска: always

Контейнер сконфигурирован со следующими переменными окружения:

  • JWT_ENABLED: Установлено значение true для включения аутентификации JSON Web Token.

  • JWT_SECRET: Установлено значение-заглушка (change_me), которое в продакшн-среде следует заменить на надежный секретный ключ.

Контейнеры Docker и их развертывание

Развертывание состоит из двух основных групп контейнеров, управляемых через Docker.

OnlyOffice Document Server

Контейнер приложения запускается с использованием модуля docker_container со следующими спецификациями:

  • Имя: onlyoffice-docs

  • Образ: onlyoffice/documentserver:9.3

  • Маппинг портов: 127.0.0.1:8080:80 (Связан с localhost на хосте для предотвращения прямого внешнего доступа).

  • Окружение: Включена аутентификация JWT.

Nginx Proxy и Certbot

Обратный прокси-сервер развертывается с использованием Docker Compose.

  • Расположение файла compose: /root/nginx/compose.yml

  • Имя сервиса: nginx

  • Образ: jonasal/nginx-certbot:latest

  • Режим сети: host

  • Тома (Volumes):

  • nginx_secrets (внешний том) отображен в /etc/letsencrypt.

  • /data/nginx/user_conf.d отображен в /etc/nginx/user_conf.d для пользовательской конфигурации.

  • Окружение:

  • CERTBOT_EMAIL: Настроен как hkadm@hostkey.com.

  • Файл переменных окружения: /data/nginx/nginx-certbot.env.

Прокси-серверы

В качестве обратного прокси-сервера используется Nginx с интеграцией Certbot для обработки терминации SSL и маршрутизации трафика на приложение OnlyOffice.

  • Место расположения конфигурации: /data/nginx/user_conf.d/only-docs{Server ID}.hostkey.in.conf

  • Proxy Pass: Трафик пересылается с внешнего домена на http://127.0.0.1:8080.

  • SSL/Сертификат: Управляется автоматически контейнером jonasal/nginx-certbot. Сертификаты хранятся в томе nginx_secrets.

  • Пользовательский домен: Прокси-сервер настроен на прием трафика для конкретного FQDN only-docs{Server ID}.hostkey.in.

Настройки прав доступа

К следующим критическим директориям применяются следующие права доступа:

  • /root/nginx/:

  • Владелец: root

  • Группа: root

  • Режим: 0755 (Чтение и выполнение для всех, запись для владельца).

  • /root/nginx/compose.yml:

  • Владелец: root

  • Группа: root

  • Режим: 0644 (Только чтение для группы и других пользователей).

Расположение файлов конфигурации и данных

Файлы конфигурации и хранилище данных расположены следующим образом:

  • Docker Compose для прокси: /root/nginx/compose.yml

  • Конфиг виртуального хоста Nginx: /data/nginx/user_conf.d/only-docs{Server ID}.hostkey.in.conf

  • Окружение Certbot: /data/nginx/nginx-certbot.env

  • SSL-сертификаты: /etc/letsencrypt (через том Docker).

Доступные порты для подключения

Сервер открывает следующие порты для подключений клиентов:

  • Порт 443: Единственный внешний порт, доступный для безопасного HTTPS-доступа к интерфейсу OnlyOffice.

  • Порт 8080: Ограничен локальным циклом (127.0.0.1) и используется внутренне прокси-сервером Nginx для взаимодействия с контейнером OnlyOffice.

Запуск, остановка и обновление

Управление сервисами осуществляется с помощью стандартных команд Docker.

Сервис Nginx Proxy

Для запуска или перезапуска сервиса прокси-сервера Nginx и Certbot:

cd /root/nginx
docker compose up -d
Для остановки сервиса:
cd /root/nginx
docker compose down

Контейнер OnlyOffice

Для остановки контейнера OnlyOffice:

docker stop onlyoffice-docs
Для запуска контейнера:
docker start onlyoffice-docs
Для обновления образа OnlyOffice до новой версии, загрузите новый образ и пересоздайте контейнер:
docker pull onlyoffice/documentserver:<new-version>
docker stop onlyoffice-docs
docker rm onlyoffice-docs
Затем снова запустите команду установки с новым тегом версии.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×