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

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

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

Требование Минимальная версия Комментарий
ОС Ubuntu 20.04+ (или другая Linux‑дистрибуция, поддерживающая Docker) Стандартные пакеты, доступ в интернет
Docker 20.10+ Для запуска контейнеров OnlyOffice и Nginx‑certbot
Docker‑Compose 1.29+ Управление сервисом Nginx‑certbot через docker compose
root‑доступ Да Скрипты создают файлы и директории от имени root
Наличие сетевого порта 8080 Да OnlyOffice будет прослушивать этот порт внутри контейнера

Замечание
Перед началом убедитесь, что Docker и Docker‑Compose установлены и запущены.

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

После развертывания вы увидите следующую структуру:

/root/nginx/
├── compose.yml                # docker‑compose файл для Nginx‑certbot
├── Dockerfile (если понадобится)
└── (другие файлы, добавляемые в процессе работы)

/data/nginx/
├── nginx-certbot.env          # переменные окружения для certbot
└── user_conf.d/
    └── {prefix}{server_id}.hostkey.in.conf   # конфигурация Nginx для вашего домена

Путь к конфигурации OnlyOffice: /data/nginx/user_conf.d/... (конфигурация Nginx автоматически обновляется скриптом).

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

Путь Владелец Группа Разрешения Зачем
/root/nginx/ root root 0755 Каталог для compose‑файла, доступ только root
/root/nginx/compose.yml root root 0644 Содержит конфигурацию контейнеров
/data/nginx/nginx-certbot.env root root 0644 Переменные certbot (email и т.п.)
/data/nginx/user_conf.d/ root root 0755 Хранилище конфигураций Nginx

Рекомендация
Не открывайте доступ к /root и /data другим пользователям.
Переменная JWT_SECRET в OnlyOffice хранится в памяти контейнера; храните её в безопасном месте (например, в docker_secret).

Базы данных

OnlyOffice в данном развертывании использует собственный файловый репозиторий и Redis (если требуется).
В представленных скриптах баз данных не создаётся, поэтому по умолчанию используется локальная файловая система.

Если нужна внешняя БД – добавьте соответствующий сервис в docker-compose.yml и настройте переменные окружения.

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

1. OnlyOffice Docs Server

Параметр Значение
имя onlyoffice-docs
образ onlyoffice/documentserver
порты 8080:80 (host:container)
env JWT_SECRET=change_me
restart_policy always

Запуск осуществляется одной из команд:

docker run -d --name onlyoffice-docs \
  --restart=always \
  -p 8080:80 \
  -e JWT_SECRET=change_me \
  onlyoffice/documentserver

или через docker‑compose:

services:
  onlyoffice-docs:
    image: onlyoffice/documentserver
    container_name: onlyoffice-docs
    restart: always
    ports:
      - "8080:80"
    environment:
      - JWT_SECRET=change_me

2. Nginx‑certbot (обслуживание TLS и проксирование)

Структура compose‑файла (compose.yml)

volumes:
  nginx_secrets:
    external: true

services:
  nginx:
    image: jonasal/nginx-certbot:latest
    restart: unless-stopped
    environment:
      - CERTBOT_EMAIL=hkadm@hostkey.com
    env_file:
      - /data/nginx/nginx-certbot.env
    network_mode: host
    volumes:
      - nginx_secrets:/etc/letsencrypt
      - /data/nginx/user_conf.d:/etc/nginx/user_conf.d

Что делает скрипт

  1. Создаёт каталог /root/nginx/ с правами 0755.
  2. Сгенерирует compose.yml из шаблона.
  3. Обновит конфигурацию Nginx: удалит старую строку proxy_pass, добавит новую:
    location / {
        proxy_pass http://127.0.0.1:8080;
    }
    
    — это перенаправление запросов к OnlyOffice.
  4. Запустит контейнер через docker compose up -d.

Команда запуска:

docker compose -f /root/nginx/compose.yml up -d

Прокси серверы (Nginx, Traefik и т.п.)

В данном развертывании используется Nginx‑certbot как единственный прокси‑сервер.
Он выполняет следующие задачи:

  • Получение и обновление сертификатов Let's Encrypt (переменная CERTBOT_EMAIL).
  • Предоставление HTTPS‑прокси к OnlyOffice через proxy_pass http://127.0.0.1:8080;.
  • Конфигурация сервера хранится в /data/nginx/user_conf.d/.

Пользовательский домен задаётся в файле конфигурации Nginx, который находится в каталоге user_conf.d.
Файл автоматически обновляется скриптом; если необходимо изменить домен, редактируйте его вручную.

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

Запуск

# OnlyOffice
docker run -d --name onlyoffice-docs \
  --restart=always \
  -p 8080:80 \
  -e JWT_SECRET=change_me \
  onlyoffice/documentserver

# Nginx‑certbot
docker compose -f /root/nginx/compose.yml up -d

Остановка

docker stop onlyoffice-docs
docker compose -f /root/nginx/compose.yml down

Обновление

# Pull new images
docker pull onlyoffice/documentserver
docker pull jonasal/nginx-certbot

# Перезапустить контейнеры
docker stop onlyoffice-docs
docker compose -f /root/nginx/compose.yml down
docker run -d --name onlyoffice-docs \
  --restart=always \
  -p 8080:80 \
  -e JWT_SECRET=change_me \
  onlyoffice/documentserver
docker compose -f /root/nginx/compose.yml up -d

Совет
Если вы меняете JWT_SECRET, перезапускайте OnlyOffice, иначе токены перестанут работать.

Итог

  • OnlyOffice работает внутри Docker‑контейнера, доступен на порту 8080.
  • Nginx‑certbot обеспечивает HTTPS‑прокси и автоматическое обновление сертификатов.
  • Конфигурации хранятся в /data/nginx/ и /root/nginx/.
  • Управление осуществляется через стандартные Docker‑команды или Docker‑Compose.

Следуя приведённой схеме, вы получите полностью функционирующую среду OnlyOffice с защищённым HTTPS‑прокси.

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