Обзор развертывания 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:
Для остановки сервиса:Контейнер OnlyOffice¶
Для остановки контейнера OnlyOffice:
Для запуска контейнера: Для обновления образа OnlyOffice до новой версии, загрузите новый образ и пересоздайте контейнер: Затем снова запустите команду установки с новым тегом версии.