Компиляция и запуск ONLYOFFICE Document Server на Ubuntu

ONLYOFFICE Document Server — это веб‑просмотрщики и совместные редакторы документов, таблиц и презентаций с высокой совместимостью OOXML форматов (docx, xlsx, pptx). Набор распространяется под лицензией GNU AGPL v3.0.
Document Server можно интегрировать с облачными хранилищами типа Nextcloud, ownCloud, Seafile, HumHub, Plone и другими, а также встроить в собственное решение. Он входит в состав ONLYOFFICE Community Edition — бесплатного OSS решения с онлайн‑редакторами и платформой для совместной работы.

Инструменты в репозитории build_tools позволяют автоматически установить все зависимости и скомпилировать последнюю версию редакторов из исходников.
Краткие требования
- CPU: минимум двухъядерный процессор 2 ГГц или лучше
- ОЗУ: 2 ГБ или больше (рекомендуется 4 ГБ и выше для комфортной работы)
- Диск: минимум 40 ГБ свободного места
- Раздел подкачки (swap): как минимум 4 ГБ
Важно: это минимальные требования для сборки и тестового запуска. Для продакшн‑нагрузок увеличьте ресурсы и настройте репликацию/балансировку.
Что вы получите в конце
- Скомпилированную копию ONLYOFFICE Document Server в каталоге out/linux_64/onlyoffice/documentserver/
- Настроенный NGINX как прокси, PostgreSQL как БД и RabbitMQ как брокер сообщений
- Запущенные локальные сервисы FileConverter, SpellChecker и DocService
Шаг 1: Установка зависимостей
Если Python и Git отсутствуют, установите их командой:
sudo apt-get install -y python gitПримечание: для сборки могут потребоваться дополнительные пакеты (build‑tools, сборщики и т.д.). Если скрипт automate.py будет жаловаться на недостающие зависимости — установите их по подсказкам.
Шаг 2: Сборка исходников Document Server
Клонируйте репозиторий build_tools:
git clone https://github.com/ONLYOFFICE/build_tools.gitПерейдите в каталог для Linux:
cd build_tools/tools/linuxЗапустите автоматический сценарий сборки:
./automate.py serverПосле завершения скомпилированный Document Server будет доступен в каталоге ../../out/linux_64/onlyoffice/documentserver/.
Важно: сборка может занять значительное время и потребовать много оперативной памяти. Если у вас недостаточно ресурсов, рассмотрите сборку на выделенной машине или в контейнере.
Шаг 3: Установка и настройка NGINX, PostgreSQL и RabbitMQ
Document Server использует NGINX как веб‑сервер, PostgreSQL как базу данных и RabbitMQ для очередей сообщений.
Установка и настройка NGINX
Установите NGINX:
sudo apt-get install nginxОтключите сайт по умолчанию:
sudo rm -f /etc/nginx/sites-enabled/defaultСоздайте файл конфигурации сайта /etc/nginx/sites-available/onlyoffice-documentserver с таким содержимым:
map $http_host $this_host {
"" $host;
default $http_host;
}
map $http_x_forwarded_proto $the_scheme {
default $http_x_forwarded_proto;
"" $scheme;
}
map $http_x_forwarded_host $the_host {
default $http_x_forwarded_host;
"" $this_host;
}
map $http_upgrade $proxy_connection {
default upgrade;
"" close;
}
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $proxy_connection;
proxy_set_header X-Forwarded-Host $the_host;
proxy_set_header X-Forwarded-Proto $the_scheme;
server {
listen 0.0.0.0:80;
listen [::]:80 default_server;
server_tokens off;
rewrite ^\/OfficeWeb(\/apps\/.*)$ /web-apps$1 redirect;
location / {
proxy_pass http://localhost:8000;
proxy_http_version 1.1;
}
location /spellchecker/ {
proxy_pass http://localhost:8080/;
proxy_http_version 1.1;
}
}Добавьте символьную ссылку в sites-enabled и перезагрузите NGINX:
sudo ln -s /etc/nginx/sites-available/onlyoffice-documentserver /etc/nginx/sites-enabled/onlyoffice-documentserver
sudo nginx -s reloadПримечание: если NGINX запускается под ограниченным пользователем, проверьте права на сокеты и файлы.
Установка и настройка PostgreSQL
Установите PostgreSQL:
sudo apt-get install postgresqlСоздайте базу данных и пользователя (укажите ‘onlyoffice’ и в качестве имени, и в качестве пароля):
sudo -i -u postgres psql -c "CREATE DATABASE onlyoffice;"
sudo -i -u postgres psql -c "CREATE USER onlyoffice WITH password 'onlyoffice';"
sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;"Инициализируйте схему базы данных:
psql -hlocalhost -Uonlyoffice -d onlyoffice -f ../../out/linux_64/onlyoffice/documentserver/server/schema/postgresql/createdb.sqlКоманда одна строка. При появлении запроса введите пароль onlyoffice.
Установка RabbitMQ
Установите RabbitMQ:
sudo apt-get install rabbitmq-serverRabbitMQ не требует дополнительной конфигурации для базовой работы, но в продуктивной среде настройте учетные записи, виртуальные хосты и политики безопасности.
Шаг 4: Генерация данных шрифтов
Перейдите в каталог с собранным сервером и создайте папку fonts, затем запустите генератор:
cd out/linux_64/onlyoffice/documentserver/
mkdir fonts
LD_LIBRARY_PATH=${PWD}/server/FileConverter/bin server/tools/allfontsgen \
--input="${PWD}/core-fonts" \
--allfonts-web="${PWD}/sdkjs/common/AllFonts.js" \
--allfonts="${PWD}/server/FileConverter/bin/AllFonts.js" \
--images="${PWD}/sdkjs/common/Images" \
--selection="${PWD}/server/FileConverter/bin/font_selection.bin" \
--output-web='fonts' \
--use-system="true"Это создаст веб‑версию таблицы шрифтов и бинарные артефакты, используемые FileConverter.
Шаг 5: Генерация тем для презентаций
Выполните команды:
cd out/linux_64/onlyoffice/documentserver/LD_LIBRARY_PATH=${PWD}/server/FileConverter/bin server/tools/allthemesgen \
--converter-dir="${PWD}/server/FileConverter/bin"\
--src="${PWD}/sdkjs/slide/themes"\
--output="${PWD}/sdkjs/common/Images"Генерация подтянет изображения тем в каталог SDK, чтобы презентации отображались корректно в веб‑редакторе.
Шаг 6: Запуск Document Server
Компоненты Document Server запускаются как foreground‑процессы. Для одновременного запуска используйте несколько терминалов, tmux/screen или системные менеджеры (systemd) для фонового запуска.
Запустите FileConverter:
cd out/linux_64/onlyoffice/documentserver/server/FileConverter
LD_LIBRARY_PATH=$PWD/bin NODE_ENV=development-linux NODE_CONFIG_DIR=$PWD/../Common/config ./converterЗапустите SpellChecker:
cd out/linux_64/onlyoffice/documentserver/server/SpellChecker
NODE_ENV=development-linux NODE_CONFIG_DIR=$PWD/../Common/config ./spellcheckerЗапустите DocService:
cd out/linux_64/onlyoffice/documentserver/server/DocService
NODE_ENV=development-linux NODE_CONFIG_DIR=$PWD/../Common/config ./docserviceПосле запуска сервисов доступ к редакторам будет организован через NGINX и проксироваться на локальные порты.
Важно: в тестовой среде можно запускать процессы в foreground. Для стабильного продакшна создайте systemd‑юнит‑файлы или используйте контейнеры.
Альтернативные подходы
- Использовать официальный Docker‑образ ONLYOFFICE Document Server — быстрее разворачивается и проще управляется в продакшн.
- Установить готовые deb/rpm‑пакеты из официального репозитория ONLYOFFICE — минимум ручных шагов.
- Разворачивать через Ansible/Terraform для повторяемости и автоматизации.
Когда этот подход не подходит
- На слабых машинах локальная сборка может завершиться с ошибкой из‑за нехватки памяти.
- Для быстрой проверки проще использовать Docker, чем собирать с нуля.
- Если требуется корпоративная поддержка и SLA, рассматривайте коммерческие варианты ONLYOFFICE.
Чек‑лист для продакшн‑развёртывания
- Резервное копирование и миграция PostgreSQL
- Настроить TLS/HTTPS в NGINX (Let’s Encrypt или коммерческий сертификат)
- Настроить systemd‑юниты или контейнерную оркестрацию
- Настроить мониторинг сервисов и логирование
- Ограничить доступ к RabbitMQ и PostgreSQL через брандмауэр
- Настроить план обслуживания и регулярные обновления
Критерии приёмки
- Document Server успешно собирается и все три сервиса (FileConverter, SpellChecker, DocService) запускаются без ошибок.
- NGINX проксирует запросы и редактор доступен в браузере.
- Конвертация и сохранение документов проходят без ошибок в тестовых файлах docx/xlsx/pptx.
- Логи не содержат критических ошибок и сервисы устойчивы при нескольких одновременных подключениях.
Безопасность и приватность
- Используйте HTTPS для фронтенда и, при необходимости, внутренней связи между компонентами.
- Ограничьте доступ к базе данных и RabbitMQ через приватные сети и правила брандмауэра.
- При обработке персональных данных проверьте соответствие требованиям локального законодательства и GDPR при необходимости.
Краткий словарь
- FileConverter — служба для конвертации и рендеринга документов.
- DocService — центральный сервис Document Server, обрабатывающий запросы от веб‑редактора.
- SpellChecker — служба проверки орфографии.
- SDKJS — фронтенд‑библиотеки, используемые редактором в браузере.
Краткое резюме
- Сборка из исходников даёт максимальную гибкость, но требует ресурсов и внимания к зависимостям.
- Для быстрого развёртывания рассмотрите Docker или готовые пакеты.
- В продакшн‑окружении обязательно настройте TLS, systemd/контейнеры, мониторинг и бэкапы.
Extras: используйте этот гид как основу для тестовой интеграции и, при переходе в продуктовую среду, оформите автоматизацию развёртывания.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone