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

Обзор развертывания 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 и его настройку для конкретной среды.

  1. Установка Docker: Система обеспечивает установку Docker Engine, Docker CLI и плагина Docker Compose.

  2. Клонирование репозитория: Исходный код приложения клонируется из https://github.com/ONLYOFFICE/Docker-CommunityServer.git в /opt/Docker-CommunityServer.

  3. Конфигурация: Генерируется файл docker-compose.yml и размещается в корне репозитория, определяя службы и сети.

  4. Инициализация базы данных: SQL-скрипт размещается в директории инициализации MySQL для создания необходимых баз данных и пользователей при первом запуске.

  5. Развертывание контейнеров: 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, выполняемых из директории проекта.

  • Запуск/Обновление служб:

    cd /opt/Docker-CommunityServer
    docker compose up -d
    

  • Остановка служб:

    cd /opt/Docker-CommunityServer
    docker compose down
    

  • Перезапуск прокси Nginx:

    cd /root/nginx
    docker compose up -d
    

  • Проверка состояния контейнеров:

    docker compose ps
    

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