Обзор развертывания ONLYOFFICE Workspace на сервере¶
Предварительные требования и базовые условия¶
Для развертывания ONLYOFFICE Workspace требуется Linux-сервер с операционной системой на базе Debian. Для установки и работы приложения необходимы следующие компоненты и права доступа:
-
Операционная система: Дистрибутив на базе Debian (например, Ubuntu, Debian).
-
Права доступа: Требуется доступ root или права
sudoдля установки Docker, управления системными пакетами и настройки сетевых служб. -
Сетевой доступ: Сервер должен иметь исходящий доступ в интернет для загрузки образов Docker, репозиториев Git и SSL-сертификатов.
-
Порты: Порты 80 и 443 должны быть открыты в межсетевом экране (firewall) для обеспечения HTTP и HTTPS трафика обратного прокси-сервера и валидации SSL-сертификатов.
FQDN конечной панели¶
Приложение доступно по полному доменному имени (FQDN) в домене hostkey.in. Формат адреса следующий:
only-docwork<Server ID>.hostkey.in
Где <Server ID> заменяется на уникальный идентификатор экземпляра сервера. Служба слушает порт 80 для перенаправления HTTP и порт 443 для защищенных соединений HTTPS.
Структура файлов и каталогов¶
Развертывание использует определенные директории для исходного кода приложения, файлов конфигурации и хранения данных. Основные расположения:
-
Исходный код приложения:
/opt/Docker-CommunityServer -
Содержит репозиторий Git проекта ONLYOFFICE Docker-CommunityServer.
-
Хостит файл
docker-compose.yml, используемый для оркестрации контейнеров. -
Инициализация базы данных:
/opt/Docker-CommunityServer/config/mysql/docker-entrypoint-initdb.d/ -
Содержит скрипт
onlyoffice-initdb.sqlдля настройки базы данных. -
Конфигурация Nginx:
/data/nginx/user_conf.d/ -
Хранит файл конфигурации виртуального хоста с именем
only-docwork<Server ID>.hostkey.in.conf. -
Секреты и окружение Nginx:
/data/nginx/ -
Содержит файл
nginx-certbot.envи томnginx_secretsдля SSL-сертификатов. -
Директория развертывания Nginx:
/root/nginx/ -
Содержит файл
compose.ymlдля стека Nginx и Certbot.
Процесс установки приложения¶
ONLYOFFICE Workspace развертывается с использованием контейнеров Docker, оркестрируемых через Docker Compose. Процесс установки включает клонирование официального репозитория Docker-CommunityServer и его настройку для конкретной среды.
-
Установка Docker: Система обеспечивает установку Docker Engine, Docker CLI и плагина Docker Compose.
-
Клонирование репозитория: Исходный код приложения клонируется из
https://github.com/ONLYOFFICE/Docker-CommunityServer.gitв/opt/Docker-CommunityServer. -
Конфигурация: Генерируется файл
docker-compose.ymlи размещается в корне репозитория, определяя службы и сети. -
Инициализация базы данных: SQL-скрипт размещается в директории инициализации MySQL для создания необходимых баз данных и пользователей при первом запуске.
-
Развертывание контейнеров: Docker Compose загружает требуемые образы и запускает контейнеры, обеспечивая инициализацию службы MySQL перед запуском основных служб приложения.
Базы данных¶
Приложение использует базу данных MySQL для хранения данных. База данных размещена внутри контейнера Docker с именем onlyoffice-mysql-server.
-
Метод подключения: Внутренняя сетевая коммуникация Docker.
-
Место хранения: Данные сохраняются в томе контейнера Docker.
-
Создаваемые базы данных:
-
onlyoffice: Основная база данных приложения. -
onlyoffice_mailserver: База данных для компонента почтового сервера. -
Набор символов:
utf8с сортировкойutf8_general_ci. -
Пользователи и права доступа:
-
root: Полные права на все базы данных. -
onlyoffice_user: Полные права на все базы данных. -
mail_admin: Полные права на все базы данных.
Контейнеры Docker и их развертывание¶
Стек приложения состоит из нескольких контейнеров, определенных в файле docker-compose.yml, расположенном по адресу /opt/Docker-CommunityServer/docker-compose.yml.
-
Инструмент развертывания: Docker Compose V2.
-
Источник проекта:
/opt/Docker-CommunityServer. -
Ключевые службы:
-
onlyoffice-mysql-server: Бэкенд базы данных. -
onlyoffice-community-server: Основная служба приложения. -
Дополнительные службы, необходимые для стека community server (например, почтовый сервер, документ-сервер), как определено в официальном репозитории.
-
Сеть: Все контейнеры общаются через внешнюю сеть Docker с именем
onlyoffice.
Прокси-серверы¶
Для обработки терминации SSL и маршрутизации трафика к приложению ONLYOFFICE развернут обратный прокси-сервер.
-
ПО прокси-сервера: Nginx (используется образ
jonasal/nginx-certbot:latest). -
Управление SSL: Интегрирован Certbot для автоматического получения и обновления SSL-сертификатов от Let's Encrypt.
-
Конфигурация:
-
Конфигурация Nginx хранится по адресу
/data/nginx/user_conf.d/only-docwork<Server ID>.hostkey.in.conf. -
Прокси слушает порты 80 и 443.
-
HTTP-трафик на порту 80 перенаправляется на HTTPS.
-
HTTPS-трафик проксируется на контейнер
onlyoffice-community-serverна порт 80. -
SSL-сертификаты: Хранятся в
/etc/letsencrypt/live/only-docwork<Server ID>.hostkey.in/. -
Заголовки: Прокси передает заголовки
Host,X-Real-IP,X-Forwarded-For,X-Forwarded-Protoи заголовки обновления WebSocket на бэкенд.
Настройки прав доступа¶
Права доступа к файлам и директориям настроены для обеспечения безопасности и корректной работы служб.
-
Файл Docker Compose:
/opt/Docker-CommunityServer/docker-compose.ymlпринадлежитroot:rootс правами0600. -
Скрипт инициализации БД:
/opt/Docker-CommunityServer/config/mysql/docker-entrypoint-initdb.d/onlyoffice-initdb.sqlпринадлежитroot:rootс правами0644. -
Конфигурация Nginx:
/data/nginx/user_conf.d/only-docwork<Server ID>.hostkey.in.confпринадлежитroot:rootс правами0644. -
Файл Compose для Nginx:
/root/nginx/compose.ymlпринадлежитroot:rootс правами0644. -
Директория Nginx:
/root/nginxпринадлежитroot:rootс правами0755.
Доступные порты для подключения¶
Следующие порты открыты и используются развертыванием:
| Порт | Протокол | Служба | Описание |
|---|---|---|---|
| 80 | TCP | Nginx | HTTP-трафик (перенаправление на HTTPS) и валидация ACME challenge. |
| 443 | TCP | Nginx | HTTPS-трафик для защищенного доступа к приложению. |
| 80 | TCP | ONLYOFFICE | Внутренний порт, используемый контейнером onlyoffice-community-server (не открыт напрямую для публичного доступа). |
Запуск, остановка и обновление¶
Службами управляют с помощью команд Docker Compose, выполняемых из директории проекта.
-
Запуск/Обновление служб:
-
Остановка служб:
-
Перезапуск прокси Nginx:
-
Проверка состояния контейнеров: