bolt Valebyte VPS от $4/мес — NVMe, запуск за 60 секунд.

Получить VPS arrow_forward
eco Начальный Туториал

Развёртывание OnlyOffice Document Server на VPS: свой облачный редактор документов

calendar_month Jun 30, 2026 schedule 27 мин. чтения visibility 24 просмотров
Развёртывание OnlyOffice Document Server на VPS: свой облачный редактор документов
info

Нужен сервер для этого гайда? Мы предлагаем выделенные серверы и VPS в 50+ странах с мгновенной настройкой.

Нужен сервер для этого гайда?

Разверните VPS или выделенный сервер за минуты.

Развёртывание OnlyOffice Document Server на VPS: свой облачный редактор документов

TL;DR

В этом подробном руководстве мы шаг за шагом настроим и развернем OnlyOffice Document Server на вашем собственном VPS, превратив его в мощную платформу для совместного редактирования документов, таблиц и презентаций, полностью под вашим контролем. Вы узнаете, как выбрать подходящий VPS-конфиг, подготовить сервер, установить и настроить OnlyOffice с использованием Docker, обеспечить безопасный доступ через HTTPS с Nginx и Certbot, а также внедрить надежную стратегию резервного копирования и обслуживания.

  • Выберем оптимальный VPS-конфиг, учитывая нагрузку и бюджет.
  • Подготовим сервер на базе Ubuntu 24.04 LTS с базовыми мерами безопасности.
  • Установим и настроим OnlyOffice Document Server версии 8.x/9.x (актуальной на 2026 год) с помощью Docker.
  • Защитим доступ к OnlyOffice через Nginx как обратный прокси и настроим HTTPS с бесплатными сертификатами Let's Encrypt.
  • Разработаем стратегию бэкапов для сохранения данных и конфигураций, а также план регулярного обслуживания.
  • Получим полностью функциональную, безопасную и управляемую вами платформу для совместной работы с документами.

Что мы настраиваем и зачем

Схема: Что мы настраиваем и зачем
Схема: Что мы настраиваем и зачем

В современном мире совместная работа над документами стала неотъемлемой частью любого проекта, будь то разработка программного обеспечения, управление стартапом или организация игрового сообщества. Многие привыкли к облачным решениям от Google или Microsoft, однако они часто сопряжены с вопросами конфиденциальности данных, ограничений по функционалу или высокой стоимостью при масштабировании. OnlyOffice Document Server предлагает мощную альтернативу: это набор онлайн-редакторов для текстовых документов, электронных таблиц и презентаций, который вы можете развернуть на собственном сервере.

Развертывая OnlyOffice Document Server на своем VPS, вы получаете полный контроль над вашими данными и инфраструктурой. Это позволяет обеспечить высокий уровень безопасности, адаптировать систему под специфические требования и избежать зависимости от сторонних провайдеров. В итоге вы получите функциональный аналог Google Docs или Microsoft Office Online, доступный через веб-браузер, с возможностью совместного редактирования в реальном времени, поддержкой популярных форматов (DOCX, XLSX, PPTX) и интеграцией с различными платформами для хранения файлов, такими как Nextcloud, ownCloud или SharePoint. Это идеальное решение для соло-фаундера SaaS, который хочет настроить Mattermost для команды, или для разработчика, которому нужно поднять GitLab и обеспечить совместную работу над документацией.

Среди основных альтернатив OnlyOffice Document Server можно выделить:

  • Google Workspace (Google Docs, Sheets, Slides): Удобно, широко распространено, но данные хранятся на серверах Google, и стоимость может быть существенной для больших команд. Есть вопросы к конфиденциальности данных.
  • Microsoft 365 (Office Online): Аналогично Google Workspace, привязка к экосистеме Microsoft, вопросы суверенитета данных и контроля над инфраструктурой.
  • Collabora Online (на базе LibreOffice): Еще один вариант с открытым исходным кодом, также требующий развертывания на сервере. Имеет свои особенности в интеграции и поддержке форматов, порой уступая OnlyOffice в совместимости с MS Office форматами.

Выбор в пользу self-hosted решения на VPS обусловлен несколькими ключевыми преимуществами. Во-первых, это независимость. Вы не привязаны к политике одного провайдера и полностью контролируете жизненный цикл ваших данных. Во-вторых, это безопасность и конфиденциальность. Все данные остаются на вашем сервере, что критически важно для чувствительной информации или для тех, кто заботится о приватности. В-третьих, это гибкость. Вы можете настроить систему под свои нужды, интегрировать ее с внутренними сервисами и масштабировать ресурсы по мере роста потребностей. Наконец, для многих задач это может оказаться экономически выгоднее в долгосрочной перспективе, особенно если у вас уже есть VPS, который простаивает или используется не на полную мощность, например, для запуска Bitcoin/Ethereum ноды или Minecraft-сервера.

Какой VPS-конфиг нужен под эту задачу

Схема: Какой VPS-конфиг нужен под эту задачу
Схема: Какой VPS-конфиг нужен под эту задачу

Выбор подходящего VPS для OnlyOffice Document Server зависит от предполагаемой нагрузки, количества одновременных пользователей и интенсивности работы с документами. OnlyOffice — достаточно ресурсоемкое приложение, особенно при активном совместном редактировании больших файлов. Он требует значительных ресурсов CPU и RAM для обработки документов в реальном времени.

Минимальные требования (для 1-5 одновременных пользователей, нечастое использование):

Этот конфиг подойдет для личного использования или очень небольшой команды, работающей с документами не постоянно.

  • Процессор (CPU): 2 ядра (x64 архитектура). Современные ядра с хорошей производительностью.
  • Оперативная память (RAM): 4 ГБ. Только для OnlyOffice Document Server. Если на сервере будут работать другие службы (например, Nextcloud, база данных), потребуется больше.
  • Диск: 50 ГБ SSD. SSD критически важен для производительности ввода/вывода, так как OnlyOffice активно работает с временными файлами.
  • Сеть: 100 Мбит/с. Достаточно для базовой работы, но для интенсивного обмена данными может быть узким местом.

Рекомендуемые требования (для 5-20 одновременных пользователей, активное использование):

Этот конфиг обеспечит комфортную и стабильную работу для большинства малых и средних команд.

  • Процессор (CPU): 4 ядра. Это обеспечит достаточную вычислительную мощность для одновременной обработки нескольких документов.
  • Оперативная память (RAM): 8-16 ГБ. Это обеспечит комфортную работу при редактировании сложных документов, работе с большим количеством вкладок и при работе с несколькими пользователями одновременно. OnlyOffice активно использует RAM для кэширования.
  • Диск: 100-200 ГБ SSD. Достаточно для операционной системы, Docker-образов, хранения временных файлов OnlyOffice и потенциальной интеграции с другими сервисами.
  • Сеть: 1 Гбит/с. Высокая пропускная способность сети важна для быстрого обмена данными между клиентами и сервером, особенно при совместном редактировании.

Для комфортной работы с OnlyOffice Document Server для небольшой команды, можно рассмотреть VPS с указанными характеристиками. Убедитесь, что выбранный план соответствует вашим потребностям по CPU, RAM и дисковому пространству, чтобы избежать проблем с производительностью.

Когда нужен dedicated сервер, а не VPS?

Dedicated (выделенный) сервер становится необходим, когда:

  • Большое количество пользователей: Более 50-100 одновременных пользователей, интенсивно работающих с документами, или тысячи пользователей с периодическим доступом.
  • Высокие требования к производительности: Регулярная работа с очень большими документами (сотни страниц, сложные таблицы с тысячами строк, макросами), сложными презентациями с большим количеством медиа или специфическими шрифтами.
  • Специфические требования к безопасности или соответствию нормам: Некоторые регуляторные требования (например, GDPR, HIPAA) могут предписывать использование физически изолированного оборудования, где вы являетесь единственным арендатором.
  • Необходимость в полной кастомизации оборудования: Например, использование специализированных RAID-контроллеров, GPU для определенных задач обработки изображений или видео (хотя для OnlyOffice это редкость), или специфических сетевых карт.
  • Интеграция с тяжелыми корпоративными системами: Если OnlyOffice является частью крупной корпоративной инфраструктуры с высокими требованиями к uptime и производительности, выделенный сервер может быть предпочтительнее.

В большинстве случаев для малого и среднего бизнеса, а также для личных нужд, хорошо сконфигурированного VPS будет более чем достаточно. Если вы планируете запускать OnlyOffice вместе с другими ресурсоемкими сервисами (например, большим GitLab-экземпляром или множеством игровых серверов), то dedicated сервер может быть оправдан.

Локация VPS: на что влияет?

Выбор географической локации вашего VPS также имеет значение:

  • Задержка (Latency): Чем ближе сервер к основным пользователям, тем меньше задержка и быстрее отклик. Это особенно важно для интерактивного совместного редактирования, где каждая миллисекунда влияет на пользовательский опыт. Высокая задержка может сделать совместную работу некомфортной.
  • Законодательство и суверенитет данных: В некоторых юрисдикциях существуют строгие правила хранения и обработки данных. Выбор локации сервера позволяет соблюдать эти требования и оставаться в рамках правового поля. Это критично для проектов, связанных с конфиденциальной информацией.
  • Сетевые пиринги: Качество сетевых подключений провайдера в выбранной локации может влиять на общую скорость доступа и стабильность соединения. Хорошие пиринги с крупными провайдерами гарантируют быстрый и надежный доступ.
  • Стоимость: В некоторых регионах стоимость VPS может быть выше или ниже из-за разницы в ценах на электроэнергию, недвижимость и налоги.

Рекомендуется выбирать локацию, максимально близкую к вашей основной аудитории или месту работы команды, чтобы минимизировать задержки и обеспечить максимальную производительность.

Подготовка сервера

Схема: Подготовка сервера
Схема: Подготовка сервера

Перед тем как приступить к установке OnlyOffice Document Server, необходимо выполнить базовую настройку вашего нового VPS. Мы будем использовать Ubuntu Server 24.04 LTS, так как это популярная, стабильная и хорошо поддерживаемая операционная система, которая будет актуальна и в 2026 году, предлагая долгосрочную поддержку и обновления безопасности.

1. Обновление системы

Первым делом, подключитесь к серверу по SSH (обычно под пользователем root или предоставленным провайдером) и обновите все пакеты до актуальных версий. Это обеспечит, что вы работаете с последними исправлениями безопасности и стабильными версиями ПО.


sudo apt update && sudo apt upgrade -y

Эта команда обновит список доступных пакетов из репозиториев и установит все доступные обновления. Флаг -y автоматически подтверждает установку, чтобы не требовать подтверждения для каждого пакета.

2. Создание нового пользователя с правами sudo

Работать под пользователем root небезопасно, так как это дает неограниченные права и увеличивает риск случайных или злонамеренных повреждений системы. Создадим нового пользователя и дадим ему права sudo для выполнения административных задач.


sudo adduser onlyuser

Следуйте инструкциям на экране, чтобы задать надежный пароль и (по желанию) заполнить информацию о пользователе. Затем добавьте нового пользователя в группу sudo, чтобы он мог выполнять команды с административными привилегиями:


sudo usermod -aG sudo onlyuser

Выйдите из текущей сессии root и войдите под новым пользователем onlyuser, чтобы убедиться, что права настроены корректно.


exit

ssh onlyuser@your_vps_ip

Теперь все дальнейшие действия будут выполняться от имени пользователя onlyuser с использованием sudo.

3. Настройка SSH-ключей (рекомендуется)

Для повышения безопасности и удобства рекомендуется использовать SSH-ключи вместо паролей для входа на сервер. Это значительно снижает риск атак методом подбора паролей. Если вы еще не настроили их, сделайте это сейчас.

На вашей локальной машине сгенерируйте пару SSH-ключей (если у вас ее нет):


ssh-keygen -t rsa -b 4096 -C "[email protected]"

Следуйте инструкциям, чтобы сохранить ключ (обычно в ~/.ssh/id_rsa) и задать парольную фразу (passphrase) для дополнительной защиты. Затем скопируйте публичный ключ на сервер:


ssh-copy-id onlyuser@your_vps_ip

Эта команда скопирует ваш публичный ключ в файл ~/.ssh/authorized_keys на сервере. После этого вы сможете входить без пароля (или с использованием парольной фразы, если вы ее задали). Чтобы полностью отключить вход по паролю на сервере, отредактируйте файл конфигурации SSH-сервера:


sudo nano /etc/ssh/sshd_config

Найдите строку #PasswordAuthentication yes (или просто PasswordAuthentication yes) и измените ее на:


PasswordAuthentication no

Также рекомендуется убедиться, что строка PubkeyAuthentication yes не закомментирована. Сохраните изменения и перезапустите SSH-сервис, чтобы они вступили в силу:


sudo systemctl restart sshd

Важно: Перед отключением парольной аутентификации убедитесь, что вы можете войти по SSH-ключу. В противном случае вы рискуете потерять доступ к серверу.

4. Настройка файрвола (UFW)

UFW (Uncomplicated Firewall) — это простой в использовании интерфейс для управления файрволом netfilter в Linux. Мы настроим его, чтобы разрешить доступ только к необходимым портам и заблокировать весь остальной трафик, повышая безопасность сервера.


sudo apt install ufw -y

Разрешим доступ к SSH (порт 22), HTTP (порт 80) и HTTPS (порт 443). Эти порты необходимы для удаленного управления сервером и работы веб-сервисов.


sudo ufw allow OpenSSH       # Разрешает SSH на порту 22
sudo ufw allow http          # Разрешает HTTP на порту 80
sudo ufw allow https         # Разрешает HTTPS на порту 443
sudo ufw enable              # Включает файрвол

Подтвердите включение файрвола (введя y, если запросит). Проверьте статус файрвола, чтобы убедиться, что правила применены:


sudo ufw status verbose

Вывод должен показать, что SSH, HTTP и HTTPS разрешены.

5. Установка Fail2Ban

Fail2Ban — это служба, которая сканирует файлы журналов (например, /var/log/auth.log) на предмет подозрительной активности, такой как многочисленные неудачные попытки входа в систему. При обнаружении такой активности Fail2Ban автоматически блокирует IP-адреса злоумышленников на определенное время, что помогает защититься от атак методом подбора паролей.


sudo apt install fail2ban -y

Fail2Ban начинает работать сразу после установки с настройками по умолчанию, которые включают защиту SSH. Для более тонкой настройки вы можете скопировать файл конфигурации /etc/fail2ban/jail.conf в /etc/fail2ban/jail.local и внести изменения туда, чтобы они не были перезаписаны при обновлении пакета Fail2Ban.


sudo systemctl enable fail2ban # Включает автозапуск Fail2Ban при загрузке системы
sudo systemctl start fail2ban  # Запускает службу Fail2Ban

Теперь ваш сервер готов к установке OnlyOffice Document Server. Он обновлен, защищен базовыми мерами безопасности и готов к развертыванию приложений.

Установка ПО — пошагово

Схема: Установка ПО — пошагово
Схема: Установка ПО — пошагово

Мы будем устанавливать OnlyOffice Document Server с использованием Docker и Docker Compose. Это наиболее гибкий, масштабируемый и рекомендуемый способ, позволяющий изолировать приложение от основной системы, легко управлять его версиями и зависимостями. Мы будем использовать версию OnlyOffice Document Server, актуальную для 2026 года, которая будет соответствовать последним стабильным релизам (предположительно, это будет v8.x или v9.x).

1. Установка Docker Engine и Docker Compose

Для начала установим Docker Engine — среду выполнения контейнеров, и Docker Compose — инструмент для определения и запуска многоконтейнерных Docker-приложений. Мы будем следовать официальным рекомендациям по установке Docker.


# Шаг 1: Удаление старых версий Docker (если есть), чтобы избежать конфликтов
for pkg in docker.io docker-doc docker-compose docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin; do sudo apt remove $pkg; done

# Шаг 2: Обновление списка пакетов
sudo apt update

# Шаг 3: Установка необходимых зависимостей для работы с HTTPS-репозиториями
sudo apt install ca-certificates curl gnupg -y

# Шаг 4: Добавление официального GPG ключа Docker. Это необходимо для проверки подлинности пакетов Docker.
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Шаг 5: Добавление репозитория Docker в список источников APT
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Шаг 6: Обновление списка пакетов с новым репозиторием Docker
sudo apt update

# Шаг 7: Установка Docker Engine, Docker CLI, containerd и Docker Compose Plugin
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

После установки добавьте вашего пользователя (onlyuser) в группу docker, чтобы выполнять команды Docker без необходимости использования sudo:


sudo usermod -aG docker ${USER}

Выйдите из текущей сессии SSH и снова войдите в систему, чтобы изменения в группах пользователя вступили в силу:


exit
ssh onlyuser@your_vps_ip

Проверьте, что Docker установлен и работает корректно, запустив тестовый контейнер "hello-world":


docker run hello-world

Вы должны увидеть приветственное сообщение от Docker, подтверждающее успешную установку.

2. Развертывание OnlyOffice Document Server с Docker Compose

Теперь, когда Docker установлен, мы можем развернуть OnlyOffice Document Server. Создадим отдельную директорию для нашего проекта и файл docker-compose.yml, который будет описывать конфигурацию контейнера OnlyOffice.


mkdir -p ~/onlyoffice # Создаем директорию для проекта
cd ~/onlyoffice        # Переходим в созданную директорию
nano docker-compose.yml # Создаем и открываем файл docker-compose.yml для редактирования

Вставьте следующее содержимое в файл docker-compose.yml. Мы используем образ onlyoffice/documentserver:latest, который всегда будет указывать на самую свежую стабильную версию, актуальную и в 2026 году. В этом примере OnlyOffice будет слушать на портах 80 (HTTP) и 443 (HTTPS) внутри контейнера, которые мы проксируем на порты 8000 и 8443 вашего VPS соответственно. Это позволяет избежать конфликтов с Nginx, который будет слушать на портах 80 и 443 на хосте.


version: '3.8'

services:
  documentserver:
    image: onlyoffice/documentserver:latest
    container_name: onlyoffice-documentserver
    hostname: onlyoffice
    environment:
      # ОБЯЗАТЕЛЬНО ЗАМЕНИТЕ 'YOUR_VERY_STRONG_SECRET_KEY' на длинную и сложную случайную строку.
      # Этот ключ используется для защиты JWT (JSON Web Token), который OnlyOffice использует для аутентификации запросов
      # от клиентских приложений (например, Nextcloud). Без этого ключа ваша установка будет уязвима.
      - JWT_SECRET=YOUR_VERY_STRONG_SECRET_KEY
      - JWT_ENABLED=true
      - JWT_HEADER=Authorization
      - JWT_IN_BODY=false
      # Дополнительные переменные окружения для настройки OnlyOffice (раскомментируйте при необходимости)
      # - DB_TYPE=postgres          # Если вы хотите использовать внешнюю базу данных PostgreSQL
      # - DB_HOST=localhost         # Хост вашей БД
      # - - DB_PORT=5432            # Порт БД
      # - DB_NAME=onlyoffice        # Имя базы данных
      # - DB_USER=onlyoffice        # Пользователь БД
      # - DB_PWD=your_db_password   # Пароль пользователя БД
    ports:
      - "8000:80"  # Проксируем внутренний HTTP-порт OnlyOffice на порт 8000 хоста
      - "8443:443" # Проксируем внутренний HTTPS-порт OnlyOffice на порт 8443 хоста (для прямого доступа по HTTPS, если Nginx не используется)
    volumes:
      - /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data       # Для данных OnlyOffice (кэш, временные файлы)
      - /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice            # Для логов OnlyOffice
      - /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice             # Для библиотек и служебных файлов
      - /app/onlyoffice/DocumentServer/fonts:/usr/share/fonts/truetype     # Для пользовательских шрифтов
    restart: always # Автоматический перезапуск контейнера при сбоях или перезагрузке сервера
    healthcheck: # Проверка работоспособности контейнера
      test: ["CMD-SHELL", "wget -q --no-check-certificate https://localhost/healthcheck || exit 1"]
      interval: 30s
      timeout: 10s
      retries: 5

ВАЖНО: Не забудьте заменить YOUR_VERY_STRONG_SECRET_KEY на длинную, случайную и сложную секретную строку. Вы можете сгенерировать ее, например, с помощью openssl rand -base64 32. Этот ключ критически важен для безопасности вашей установки OnlyOffice и защиты от несанкционированного доступа. Запишите его в безопасном месте.

Сохраните файл (нажмите Ctrl+X, затем Y, затем Enter).

3. Запуск OnlyOffice Document Server

Теперь, когда файл docker-compose.yml готов, запустите контейнер Docker Compose:


docker compose up -d

Эта команда скачает образ OnlyOffice Document Server (если его нет локально), создаст определенные в файле тома и запустит контейнер в фоновом режиме (-d). Процесс может занять несколько минут в зависимости от скорости вашего интернет-соединения и производительности VPS.

Проверьте, что контейнер запущен и работает корректно:


docker ps

Вы должны увидеть контейнер с именем onlyoffice-documentserver и статусом Up, а также информацию о проброшенных портах.

4. Проверка базовой доступности

OnlyOffice Document Server теперь должен быть доступен по IP-адресу вашего VPS на порту 8000 (для HTTP). Откройте в браузере http://your_vps_ip:8000. Вы должны увидеть приветственную страницу OnlyOffice Document Server с инструкциями по интеграции. Это означает, что сервер работает и отвечает на запросы.

На этом этапе OnlyOffice Document Server установлен и работает, но он еще не защищен HTTPS и не доступен по доменному имени. Этим мы займемся в следующем разделе.

Конфигурация

Схема: Конфигурация
Схема: Конфигурация

После успешной установки OnlyOffice Document Server в Docker-контейнере, следующим критически важным шагом является его правильная конфигурация для безопасного и удобного доступа. Это включает настройку обратного прокси для доступа по доменному имени, обеспечение HTTPS-шифрования с помощью Let's Encrypt и базовую защиту.

1. Настройка доменного имени и DNS

Прежде чем настраивать HTTPS, вам потребуется доменное имя (например, docs.yourdomain.com), указывающее на IP-адрес вашего VPS. Добавьте соответствующую A-запись в DNS-настройках вашего домена. Убедитесь, что запись полностью распространилась по DNS-серверам (это может занять от нескольких минут до нескольких часов), прежде чем переходить к следующему шагу.

Пример DNS-записи:

Тип записиИмя/ХостЗначениеTTL
AdocsВаш_IP_адрес_VPS3600

2. Установка и настройка Nginx как обратного прокси

Nginx будет выступать в роли обратного прокси-сервера. Он будет принимать запросы на стандартных портах (80 для HTTP и 443 для HTTPS) по вашему доменному имени и перенаправлять их на Docker-контейнер OnlyOffice (который мы настроили на портах 8000 и 8443). Это позволит нам использовать одно доменное имя, настроить HTTPS и улучшить безопасность, скрывая внутренние порты OnlyOffice.


# Установка Nginx
sudo apt install nginx -y

Создайте новый файл конфигурации Nginx для вашего домена. Это будет виртуальный хост для OnlyOffice:


sudo nano /etc/nginx/sites-available/onlyoffice.conf

Вставьте следующее содержимое в файл, заменив docs.yourdomain.com на ваше реальное доменное имя. Этот конфиг сначала обрабатывает HTTP-запросы, а затем будет обновлен Certbot для HTTPS.


server {
    listen 80;
    server_name docs.yourdomain.com; # Замените на ваше доменное имя

    # Перенаправление HTTP на HTTPS будет настроено Certbot автоматически
    # location / {
    #     return 301 https://$host$request_uri;
    # }

    location / {
        proxy_pass http://localhost:8000; # Перенаправляем на HTTP-порт OnlyOffice Docker
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade; # Важно для WebSocket
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $host;

        # OnlyOffice specific headers
        proxy_read_timeout 1800s; # Увеличиваем таймаут для больших файлов
        proxy_send_timeout 1800s;
    }

    # Добавляем map для заголовка Connection, чтобы корректно обрабатывать WebSocket
    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }
}

Создайте символическую ссылку на этот файл из директории sites-enabled, чтобы активировать новую конфигурацию:


sudo ln -s /etc/nginx/sites-available/onlyoffice.conf /etc/nginx/sites-enabled/

Удалите дефолтную конфигурацию Nginx, чтобы избежать потенциальных конфликтов с вашей новой:


sudo rm /etc/nginx/sites-enabled/default

Проверьте синтаксис конфигурации Nginx на наличие ошибок и перезапустите Nginx, чтобы применить изменения:


sudo nginx -t # Проверка синтаксиса
sudo systemctl restart nginx # Перезапуск Nginx

Теперь вы сможете получить доступ к OnlyOffice по вашему доменному имени через HTTP (http://docs.yourdomain.com). Однако, для безопасности и интеграции с другими сервисами, нам необходим HTTPS.

3. Настройка HTTPS с Certbot (Let's Encrypt)

Мы будем использовать Certbot для автоматического получения и установки бесплатных SSL/TLS-сертификатов от Let's Encrypt. Certbot интегрируется с Nginx и автоматически настраивает его для работы с HTTPS.


# Установка Certbot и плагина для Nginx
sudo apt install certbot python3-certbot-nginx -y

Запустите Certbot для вашего домена. Certbot автоматически изменит конфигурацию Nginx для использования HTTPS, создаст новые блоки server для порта 443 и настроит перенаправление с HTTP на HTTPS.


sudo certbot --nginx -d docs.yourdomain.com

Следуйте инструкциям Certbot:

  • Введите адрес электронной почты для уведомлений об истечении срока действия сертификата.
  • Согласитесь с условиями обслуживания Let's Encrypt.
  • Выберите, как Certbot должен перенаправлять HTTP-трафик на HTTPS (рекомендуется "2: Redirect" - это автоматически перенаправит весь HTTP-трафик на HTTPS).

После успешного завершения Certbot, ваш Nginx-конфиг будет обновлен, и OnlyOffice будет доступен по HTTPS.

Проверьте автоматическое продление сертификатов Let's Encrypt. Certbot добавляет задание в cron, которое автоматически продлевает сертификаты до их истечения. Вы можете протестировать этот процесс:


sudo certbot renew --dry-run

Если команда выполняется без ошибок, автоматическое продление работает корректно.

4. Настройка JWT_SECRET в OnlyOffice (повторная проверка)

В файле docker-compose.yml мы уже установили переменную окружения JWT_SECRET. Убедитесь, что этот секрет совпадает с тем, который будет использоваться в вашей системе управления документами (например, Nextcloud), если вы планируете интеграцию. Это критически важно для безопасности и правильной работы интеграции. Если вы решите изменить секрет, не забудьте обновить его и в файле docker-compose.yml (перезапустив контейнер), и в настройках интегрируемой платформы.

Для обновления секрета в Docker-контейнере, отредактируйте docker-compose.yml и перезапустите контейнер:


cd ~/onlyoffice
nano docker-compose.yml # Измените значение JWT_SECRET
docker compose down      # Остановить текущий контейнер
docker compose up -d     # Запустить новый контейнер с обновленным конфигом

5. Проверка работоспособности

Откройте в браузере адрес https://docs.yourdomain.com. Вы должны увидеть приветственную страницу OnlyOffice Document Server. Убедитесь, что соединение защищено (обычно это отображается в браузере как "зеленый замочек" или "Secure").

Для более глубокой проверки можно использовать утилиту curl на вашем VPS:


curl -I https://docs.yourdomain.com/healthcheck

В заголовках ответа вы должны увидеть HTTP/1.1 200 OK, что указывает на успешную работу сервера OnlyOffice и его доступность через Nginx и HTTPS.

На этом этапе ваш OnlyOffice Document Server полностью настроен, защищен и готов к интеграции с вашей предпочтительной системой управления документами.

Бэкапы и обслуживание

Схема: Бэкапы и обслуживание
Схема: Бэкапы и обслуживание

Надежное функционирование любого сервиса невозможно без грамотной стратегии резервного копирования и регулярного обслуживания. OnlyOffice Document Server не является исключением. В этом разделе мы рассмотрим, что именно нужно бэкапить, как это делать и как поддерживать систему в актуальном состоянии, чтобы обеспечить ее стабильность, безопасность и возможность быстрого восстановления в случае сбоев.

1. Что бэкапить?

Для OnlyOffice Document Server критически важны следующие компоненты:

  • Данные OnlyOffice Document Server: Это временные файлы, кэш, шрифты и другая служебная информация, которая хранится в томах Docker, которые мы смонтировали:
    • /app/onlyoffice/DocumentServer/data: Основные данные OnlyOffice, включая кэш документов, шрифты и другие важные файлы.
    • /app/onlyoffice/DocumentServer/logs: Журналы работы OnlyOffice, полезные для отладки.
    • /app/onlyoffice/DocumentServer/lib: Библиотеки и служебные файлы OnlyOffice.
    • /app/onlyoffice/DocumentServer/fonts: Директория для пользовательских шрифтов.
    Важно отметить, что сами редактируемые документы хранятся в вашей системе управления документами (например, Nextcloud), а Document Server лишь обрабатывает их. Тем не менее, бэкап этих томов важен для быстрого восстановления сервера OnlyOffice без потери настроек и кэшированных данных.
  • Конфигурация Nginx: Файлы /etc/nginx/sites-available/onlyoffice.conf и /etc/nginx/nginx.conf. Эти файлы определяют, как Nginx обрабатывает запросы и перенаправляет их на OnlyOffice.
  • Сертификаты Let's Encrypt: Обычно хранятся в /etc/letsencrypt. Эти сертификаты обеспечивают HTTPS-соединение.
  • Файл docker-compose.yml: Содержит всю информацию о развертывании вашего контейнера OnlyOffice, включая переменные окружения и смонтированные тома. Хранится в ~/onlyoffice/docker-compose.yml.

2. Простой скрипт автобэкапа

Мы создадим простой скрипт, который будет архивировать все важные файлы и, опционально, отправлять их на удаленное хранилище. В качестве удаленного хранилища можно использовать другой VPS, S3-совместимое хранилище (например, MinIO, Wasabi) или даже локальный компьютер с помощью rsync или scp.

Создайте файл скрипта backup_onlyoffice.sh в домашней директории вашего пользователя onlyuser:


nano ~/backup_onlyoffice.sh

Вставьте следующее содержимое. Замените YOUR_REMOTE_USER, YOUR_REMOTE_HOST и /path/to/remote/backups на ваши реальные данные. Убедитесь, что для scp у вас настроен SSH-ключ для беспарольного доступа к удаленному серверу.


#!/bin/bash

# --- Настройки бэкапа ---
BACKUP_DIR="/tmp/onlyoffice_backup_$(date +%Y%m%d%H%M%S)" # Временная директория для бэкапов
COMPOSE_PROJECT_DIR="/home/onlyuser/onlyoffice"             # Путь к директории с docker-compose.yml
ONLYOFFICE_DATA_ROOT="/app/onlyoffice/DocumentServer"       # Корневая директория для томов OnlyOffice

# --- Настройки удаленного хранилища (пример с SCP) ---
REMOTE_USER="YOUR_REMOTE_USER"                           # Пользователь на удаленном сервере
REMOTE_HOST="YOUR_REMOTE_HOST"                           # IP или домен удаленного сервера
REMOTE_PATH="/path/to/remote/backups/$(hostname)"        # Путь на удаленном сервере, куда будут сохраняться бэкапы

# Создаем временную директорию для бэкапов
echo "Создание временной директории для бэкапов: $BACKUP_DIR"
mkdir -p "$BACKUP_DIR"

# 1. Бэкап OnlyOffice Docker volumes
echo "Остановка OnlyOffice Document Server для обеспечения консистентности данных..."
docker compose -f "$COMPOSE_PROJECT_DIR/docker-compose.yml" stop documentserver

echo "Архивирование томов OnlyOffice Document Server..."
tar -cvpzf "$BACKUP_DIR/onlyoffice_data.tar.gz" -C "$ONLYOFFICE_DATA_ROOT" data logs lib fonts

echo "Запуск OnlyOffice Document Server..."
docker compose -f "$COMPOSE_PROJECT_DIR/docker-compose.yml" start documentserver

# 2. Бэкап конфигурации Nginx
echo "Архивирование конфигурации Nginx..."
tar -cvpzf "$BACKUP_DIR/nginx_config.tar.gz" /etc/nginx/sites-available/onlyoffice.conf /etc/nginx/nginx.conf

# 3. Бэкап сертификатов Let's Encrypt
echo "Архивирование сертификатов Let's Encrypt..."
tar -cvpzf "$BACKUP_DIR/letsencrypt_certs.tar.gz" /etc/letsencrypt

# 4. Бэкап docker-compose.yml
echo "Копирование файла docker-compose.yml..."
cp "$COMPOSE_PROJECT_DIR/docker-compose.yml" "$BACKUP_DIR/docker-compose.yml"

# Архивирование всех бэкапов во временный файл
FINAL_BACKUP_FILE="/tmp/onlyoffice_full_backup_$(date +%Y%m%d%H%M%S).tar.gz"
echo "Создание итогового архива: $FINAL_BACKUP_FILE"
tar -cvpzf "$FINAL_BACKUP_FILE" -C "$BACKUP_DIR" .

# Куда складывать бэкапы (пример с SCP на другой сервер)
# Убедитесь, что у вас настроен SSH-ключ для беспарольного доступа к удаленному серверу
if [ -n "$REMOTE_USER" ] && [ -n "$REMOTE_HOST" ] && [ -n "$REMOTE_PATH" ]; then
    echo "Загрузка бэкапа на удаленный сервер: $REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH"
    ssh "$REMOTE_USER@$REMOTE_HOST" "mkdir -p $REMOTE_PATH" # Создаем директорию на удаленном хосте
    scp "$FINAL_BACKUP_FILE" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH"
    if [ $? -eq 0 ]; then
        echo "Бэкап успешно загружен на удаленный сервер."
    else
        echo "ОШИБКА: Не удалось загрузить бэкап на удаленный сервер." >&2
    fi
else
    echo "Параметры удаленного бэкапа не заданы. Бэкап останется локально."
fi

# Очистка временных файлов
echo "Очистка временных файлов..."
rm -rf "$BACKUP_DIR" "$FINAL_BACKUP_FILE"

echo "Процесс бэкапа завершен!"

Сделайте скрипт исполняемым:


chmod +x ~/backup_onlyoffice.sh

Протестируйте скрипт вручную, чтобы убедиться, что он работает корректно и бэкапы успешно передаются на удаленное хранилище. Никогда не доверяйте бэкапу, который вы не проверили!

3. Планирование бэкапов с помощью Cron

Для автоматизации регулярных бэкапов используйте системный планировщик cron. Например, для ежедневного бэкапа в 03:00 ночи, когда нагрузка на сервер минимальна:


crontab -e

Добавьте следующую строку в конец файла crontab:


0 3   * /home/onlyuser/backup_onlyoffice.sh > /dev/null 2>&1

Эта строка запускает скрипт каждый день в 3 утра. Вывод скрипта перенаправляется в /dev/null, чтобы не забивать почтовый ящик пользователя системными сообщениями. Если вы хотите получать уведомления об ошибках или успешном завершении, удалите > /dev/null 2>&1.

4. Обслуживание и обновления

Регулярные обновления критически важны для поддержания безопасности, производительности и стабильности вашей установки OnlyOffice Document Server. Всегда создавайте бэкап перед крупными обновлениями!

  • Обновление операционной системы: Ежемесячно или по мере выхода важных патчей безопасности.
    
    sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
                

    После обновления ядра или важных системных компонентов может потребоваться перезагрузка сервера: sudo reboot.

  • Обновление Docker-образа OnlyOffice Document Server:

    Рекомендуется обновлять OnlyOffice Document Server до новых стабильных версий. Перед обновлением обязательно сделайте бэкап!

    
    cd ~/onlyoffice
    docker compose pull documentserver # Скачать последнюю версию образа
    docker compose down                # Остановить текущий контейнер
    docker compose up -d               # Запустить новый контейнер с обновленным образом
                

    Всегда проверяйте официальные релизы OnlyOffice для информации о совместимости, важных изменениях и инструкциях по обновлению.

  • Обновление Certbot (Let's Encrypt): Сертификаты продлеваются автоматически, но убедитесь, что Certbot и его зависимости также обновляются вместе с ОС.
  • Мониторинг ресурсов: Следите за использованием ресурсов сервера (CPU, RAM, дисковое пространство) с помощью инструментов типа htop, glances или более продвинутых систем мониторинга (например, Prometheus + Grafana). Это позволит своевременно реагировать на потенциальные проблемы с производительностью или нехваткой ресурсов.

Планируйте "окна обслуживания" (maintenance windows) для крупных обновлений или миграций, когда возможны кратковременные перебои в работе сервиса. Информируйте пользователей заранее, если это применимо.

Troubleshooting + FAQ

В процессе развертывания и эксплуатации OnlyOffice Document Server могут возникнуть различные проблемы. Ниже представлены типичные вопросы и способы их решения, которые помогут вам быстро диагностировать и устранить неполадки.

OnlyOffice Document Server недоступен по доменному имени или IP

Описание проблемы: При попытке открыть https://docs.yourdomain.com (или http://your_vps_ip:8000) браузер показывает ошибку соединения или страницу не найдено.

Что проверить:

  • Убедитесь, что Docker-контейнер OnlyOffice запущен: выполните команду docker ps. В выводе должен быть контейнер onlyoffice-documentserver со статусом Up.
  • Проверьте, что Nginx запущен: sudo systemctl status nginx. Убедитесь, что служба активна (active (running)).
  • Проверьте конфигурацию Nginx на синтаксические ошибки: sudo nginx -t. Если есть ошибки, исправьте их.
  • Убедитесь, что файрвол (UFW) разрешает порты 80 (HTTP) и 443 (HTTPS): sudo ufw status verbose.
  • Проверьте DNS-записи домена: указывает ли docs.yourdomain.com на IP-адрес вашего VPS? Используйте dig docs.yourdomain.com или nslookup docs.yourdomain.com.
  • Проверьте, что VPS доступен извне (например, по SSH).

Как фиксить: Перезапустите соответствующие службы (docker compose restart documentserver, sudo systemctl restart nginx). Исправьте ошибки в конфигурации Nginx, если они есть. Откройте необходимые порты в UFW, если они заблокированы.

Проблемы с HTTPS/SSL-сертификатом

Описание проблемы: Браузер выдает предупреждение о небезопасном соединении, или сертификат истек.

Что проверить:

  • Истек ли срок действия сертификата? Проверьте статус сертификатов Certbot: sudo certbot certificates.
  • Правильно ли настроен Nginx для использования SSL? Проверьте файл /etc/nginx/sites-available/onlyoffice.conf, особенно секции listen 443 ssl.
  • Работает ли автоматическое продление Certbot? Протестируйте: sudo certbot renew --dry-run.
  • Убедитесь, что порт 443 открыт в файрволе.

Как фиксить: Попробуйте принудительно продлить сертификат: sudo certbot renew. Если это не помогает или сертификат недействителен, попробуйте переустановить сертификат: sudo certbot --nginx -d docs.yourdomain.com --force-renewal. Убедитесь, что домен правильно указывает на ваш VPS.

"Error while downloading the document" или проблемы с сохранением

Описание проблемы: При попытке открыть или сохранить документ в интегрированной системе (например, Nextcloud) появляется ошибка загрузки/сохранения.

Что проверить:

  • Убедитесь, что JWT_SECRET в docker-compose.yml (OnlyOffice) и в настройках вашей системы управления документами (например, плагин OnlyOffice в Nextcloud) совпадают. Это наиболее частая причина.
  • Проверьте логи OnlyOffice Document Server: docker compose logs documentserver. Ищите ошибки, связанные с доступом к файлам или внутренней работой OnlyOffice.
  • Убедитесь, что у OnlyOffice есть достаточно места на диске, и права на запись в смонтированные тома (/app/onlyoffice/DocumentServer/data и т.д.) корректны.
  • Проверьте сетевое соединение между OnlyOffice Document Server и вашей системой управления документами.

Как фиксить: Исправьте JWT_SECRET. Проверьте права доступа к директориям томов Docker; если требуется, измените их (например, sudo chown -R 1001:1001 /app/onlyoffice/DocumentServer, где 1001 — ID пользователя, под которым работает OnlyOffice в Docker). Убедитесь, что диск не заполнен.

Какой VPS-конфиг минимально подойдёт?

Для базового использования OnlyOffice Document Server (1-5 одновременных пользователей, нечастое использование) минимально потребуется VPS с 2 ядрами CPU, 4 ГБ RAM и 50 ГБ SSD. Однако для более комфортной работы и возможности масштабирования, особенно для активного использования командой, рекомендуется иметь 4 ядра CPU, 8-16 ГБ RAM и 100-200 ГБ SSD. Выбор SSD критически важен для производительности из-за интенсивной работы с временными файлами.

Что выбрать — VPS или dedicated для этой задачи?

Для большинства сценариев использования OnlyOffice Document Server (до 50-100 одновременных пользователей) хорошо сконфигурированный VPS будет оптимальным выбором. Он предлагает хорошую производительность за разумную цену, гибкость масштабирования и простоту управления. Dedicated серверы становятся необходимы при очень высокой нагрузке (сотни пользователей), специфических требованиях к оборудованию (например, GPU для обработки), максимальной производительности или строгих регуляторных требованиях к физической изоляции данных.

Как интегрировать OnlyOffice с Nextcloud/ownCloud?

После успешного развертывания OnlyOffice Document Server, для интеграции с Nextcloud или ownCloud необходимо установить соответствующее приложение (например, "ONLYOFFICE" из официального магазина приложений Nextcloud). В настройках этого приложения укажите адрес вашего OnlyOffice Document Server (https://docs.yourdomain.com) и тот же JWT_SECRET, который вы использовали в файле docker-compose.yml. После этого вы сможете открывать и редактировать документы прямо из интерфейса Nextcloud/ownCloud, используя свой собственный облачный редактор.

Могу ли я использовать OnlyOffice без домена и HTTPS?

Технически вы можете получить доступ к OnlyOffice Document Server по IP-адресу и HTTP (например, http://your_vps_ip:8000) для тестирования или в очень закрытой локальной сети. Однако для производственного использования, особенно при интеграции с другими сервисами (Nextcloud, Mattermost, GitLab) и доступе из интернета, крайне не рекомендуется использовать OnlyOffice без доменного имени и HTTPS. Это критически важно для безопасности, поскольку данные передаются в открытом виде, и многие современные браузеры и приложения могут блокировать или некорректно работать с незащищенными соединениями. Кроме того, Let's Encrypt требует доменного имени для выдачи сертификатов.

Проблемы с производительностью OnlyOffice

Описание проблемы: Документы открываются медленно, совместное редактирование "тормозит", или сервер реагирует с задержкой.

Что проверить:

  • Использование CPU и RAM на VPS: используйте команды htop или top для мониторинга. OnlyOffice может быть ресурсоемким.
  • Скорость дисковой подсистемы: используйте iostat -x 5 для проверки производительности ввода/вывода диска. Низкая скорость SSD может быть бутылочным горлышком.
  • Сетевая задержка между пользователями и VPS: используйте ping или traceroute.
  • Логи OnlyOffice: docker compose logs documentserver могут указывать на внутренние проблемы.

Как фиксить: Если ресурсы VPS исчерпаны, рассмотрите возможность апгрейда плана VPS (увеличение CPU/RAM). Убедитесь, что вы используете SSD-диски. Оптимизируйте настройки OnlyOffice, если возможно (например, ограничьте количество одновременно открытых документов, если это применимо к вашей интеграции). Убедитесь, что VPS находится в оптимальной географической локации относительно пользователей для минимизации задержек.

Выводы и следующие шаги

Схема: Выводы и следующие шаги
Схема: Выводы и следующие шаги

Поздравляем! Вы успешно развернули и настроили OnlyOffice Document Server на своем VPS. Теперь у вас есть мощный, полностью контролируемый вами облачный редактор документов, который обеспечивает приватность, безопасность и гибкость, недоступные в большинстве коммерческих облачных решений. Вы освоили не только установку самого сервиса, но и критически важные аспекты, такие как подготовка сервера, настройка HTTPS, обеспечение безопасности и создание системы резервного копирования. Это дает вам полный контроль над вашими данными и инфраструктурой, что особенно ценно для разработчиков, соло-фаундеров SaaS, криптоэнтузиастов и всех, кто ценит свою приватность.

Дальнейшие шаги для улучшения и расширения вашей установки OnlyOffice могут включать:

  • Интеграция с системой управления документами (DMS): Подключите OnlyOffice к Nextcloud, ownCloud, Seafile или другой DMS для полноценного хранения и управления файлами. Это позволит использовать все возможности совместного редактирования напрямую из вашего файлового хранилища, создавая полноценную альтернативу Google Workspace.
  • Мониторинг и логирование: Настройте более продвинутые системы мониторинга (например, Prometheus + Grafana) для отслеживания производительности сервера и OnlyOffice, а также централизованную систему логирования (например, ELK Stack или Loki + Grafana) для быстрого выявления и устранения проблем.
  • Оптимизация производительности и масштабирование: Для больших команд или высокой нагрузки рассмотрите возможность тонкой настройки конфигурации OnlyOffice, использования отдельной базы данных (PostgreSQL) на другом сервере или даже масштабирования на несколько серверов с балансировкой нагрузки для обеспечения максимальной доступности и производительности.

Поделиться этой записью:

развёртывание onlyoffice document server на vps: свой облачный редактор документов
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.