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

Обзор развертывания ONLYOFFICE Docs на сервере

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

Для корректной работы приложения необходимо наличие следующих компонентов и настроек на сервере:

  • Операционная система Ubuntu.

  • Установленный и работающий демон Docker.

  • Права доступа пользователя root для управления контейнерами и файлами конфигурации.

  • Открытый порт 8080 на локальном интерфейсе 127.0.0.1 для доступа к веб-интерфейсу приложения.

  • Наличие доменного имени и возможности получения SSL-сертификатов через Let's Encrypt.

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

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

  • /root/nginx — каталог для запуска прокси-сервера и управления контейнерами через Docker Compose.

  • /root/nginx/compose.yml — файл конфигурации оркестрации контейнеров.

  • /data/nginx/nginx-certbot.env — файл переменных окружения для настройки прокси-сервера.

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

  • /data/nginx/user_conf.d/{{ prefix }}{{ server_id }}.hostkey.in.conf — файл конфигурации виртуального хоста с настройками проксирования.

  • /etc/letsencrypt — точка монтирования для хранения SSL-сертификатов (используется том nginx_secrets).

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

Развертывание приложения осуществляется через запуск контейнеров Docker. Процесс включает два основных этапа: запуск самого приложения и настройку прокси-сервера.

  1. Запуск контейнера ONLYOFFICE Docs:

  2. Используется образ onlyoffice/documentserver:9.3.

  3. Контейнер получает имя onlyoffice-docs.

  4. Политика перезапуска установлена в always.

  5. Порт 80 внутри контейнера маппится на 127.0.0.1:8080 на хосте.

  6. Включена аутентификация через JWT (JWT_ENABLED: "true").

  7. Секретный ключ JWT установлен в значение change_me.

  8. Настройка прокси-сервера Nginx с поддержкой Certbot:

  9. Создается каталог /root/nginx.

  10. Генерируется файл compose.yml в директории /root/nginx.

  11. Запускается контейнер nginx на основе образа jonasal/nginx-certbot:latest.

  12. Контейнер работает в режиме сети host.

  13. Политика перезапуска установлена в unless-stopped.

  14. Электронная почта для уведомлений от Certbot: hkadm@hostkey.com.

Контейнеры Docker и их запуск

В системе развернуты два контейнера, управляемые через Docker Compose и напрямую через Docker API.

Контейнер ONLYOFFICE Docs запускается с параметрами:

docker run -d --name onlyoffice-docs --restart always -p 127.0.0.1:8080:80 -e JWT_ENABLED=true -e JWT_SECRET=change_me onlyoffice/documentserver:9.3

Контейнер прокси-сервера управляется через файл compose.yml в директории /root/nginx. Для запуска используется команда:

docker compose up -d
Команда выполняется из директории /root/nginx.

Файл compose.yml содержит следующие настройки:

  • Том nginx_secrets подключается к /etc/letsencrypt внутри контейнера.

  • Директория /data/nginx/user_conf.d монтируется в /etc/nginx/user_conf.d внутри контейнера.

  • Переменные окружения загружаются из файла /data/nginx/nginx-certbot.env.

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

Для обработки входящего трафика и получения SSL-сертификатов используется контейнер Nginx с Certbot.

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

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

  • Конфигурация виртуального хоста размещается в файле /data/nginx/user_conf.d/{{ prefix }}{{ server_id }}.hostkey.in.conf.

  • В конфигурационном файле блокируется существующая строка proxy_pass и добавляется новая:

    proxy_pass http://127.0.0.1:8080;
    
    Эта строка добавляется после блока location / {.

  • Сертификаты Let's Encrypt хранятся в томе nginx_secrets, который монтируется в /etc/letsencrypt.

Права доступа и безопасность

  • Каталог /root/nginx создается с правами 0755 и владельцем root:root.

  • Файл compose.yml создается с правами 0644 и владельцем root:root.

  • Доступ к приложению ONLYOFFICE Docs ограничен локальным интерфейсом 127.0.0.1 на порту 8080.

  • Внешний доступ осуществляется только через прокси-сервер Nginx, который обрабатывает SSL-шифрование.

  • Аутентификация внутри приложения настроена через JWT-токены.

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

Управление контейнером прокси-сервера осуществляется через Docker Compose в директории /root/nginx:

  • Запуск:

    docker compose up -d
    

  • Остановка:

    docker compose down
    

  • Перезапуск:

    docker compose restart
    

Управление контейнером ONLYOFFICE Docs осуществляется стандартными командами Docker:

  • Запуск (если не запущен):

    docker start onlyoffice-docs
    

  • Остановка:

    docker stop onlyoffice-docs
    

  • Перезапуск:

    docker restart onlyoffice-docs
    

  • Обновление образа:

    docker pull onlyoffice/documentserver:9.3
    docker rm -f onlyoffice-docs
    docker run -d --name onlyoffice-docs --restart always -p 127.0.0.1:8080:80 -e JWT_ENABLED=true -e JWT_SECRET=change_me onlyoffice/documentserver:9.3
    

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