Обзор развертывания 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
Что делает скрипт¶
- Создаёт каталог
/root/nginx/с правами0755. - Сгенерирует
compose.ymlиз шаблона. - Обновит конфигурацию Nginx: удалит старую строку
proxy_pass, добавит новую: — это перенаправление запросов к OnlyOffice. - Запустит контейнер через
docker compose 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
Остановка¶
Обновление¶
# 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‑прокси.