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

Отримати VPS arrow_forward
eco Початковий Туторіал

Розгортання OnlyOffice Document Server

calendar_month Jun 30, 2026 schedule 27 хв. читання visibility 27 переглядів
Развёртывание 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
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) для великих оновлень або міграцій, коли можливі короткочасні перебої в роботі сервісу. Інформуйте користувачів заздалегідь, якщо це застосовно.

Вирішення проблем + 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.