Перейти к основному содержимому

Компиляция ONLYOFFICE Docs для локального сервера

Введение​

ONLYOFFICE Docs — это офисный пакет для работы онлайн, который включает в себя просмотрщики и редакторы текстовых документов, электронных таблиц и презентаций, полностью совместимые с форматами Office Open XML: .docx, .xlsx, .pptx и позволяющие совместно редактировать документы в режиме реального времени.

Вы можете легко собрать ONLYOFFICE Docs из исходных кодов и развернуть решение на локальном сервере с помощью специально предназначенных для этого инструментов build_tools. Инструменты build_tools позволяют автоматически получить и установить все компоненты, необходимые для процесса компиляции, все зависимости, которые требуются для корректной работы ONLYOFFICE Docs, получить последнюю версию исходного кода ONLYOFFICE Docs и собрать все его компоненты.

Важно

Мы можем гарантировать корректную работу только для продуктов, собранных из ветки master.

Системные требования​

Аппаратное обеспечение

  • Процессор: 4 ядра
  • Оперативная память: не менее 8 ГБ, но это зависит от ОС хоста. Чем больше, тем лучше
  • SSD: не менее 100 ГБ свободного места
  • SWAP: не менее 4 ГБ, но это зависит от ОС хоста. Чем больше, тем лучше

Программное обеспечение

  • ОС: 64-битный дистрибутив Ubuntu 24.04
примечание

Решение протестировано на Ubuntu 24.04. Для других дистрибутивов могут потребоваться особые действия, не описанные здесь.

Установка зависимостей​

Может потребоваться установка Python и Git, если они еще не установлены на вашем компьютере. Это можно сделать с помощью следующей команды:

sudo apt-get install -y python3 git

Сборка исходного кода ONLYOFFICE Docs​

  1. Клонируйте репозиторий build_tools:

    git clone https://github.com/ONLYOFFICE/build_tools.git
  2. Перейдите в папку build_tools/tools/linux:

    cd build_tools/tools/linux
  3. Для сборки ONLYOFFICE Docs запустите скрипт automate.py, указав параметр server:

    python3 ./automate.py server
    примечание

    При запуске скрипта без параметров будут собраны ONLYOFFICE Docs, Document Builder и десктопные редакторы.

    python3 ./automate.py

    В случае необходимости можно собрать несколько продуктов одновременно, запустив скрипт с параметрами, соответствующими нужным продуктам. Для получения дополнительной информации о сборке Document Builder можно прочитать эту статью. Для получения дополнительной информации о сборке десктопных редакторов обратитесь к этой статье.

Дождитесь завершения работы скрипта. В зависимости от мощности компьютера, этот процесс может занять значительное время. Например, он занимает не менее 3 часов на 4x2.3GHz vCPUs.

Скрипт соберет все зависимости и компоненты, входящие в состав ONLYOFFICE Docs.

Собранный ONLYOFFICE Docs будет доступен в папке ../../out/linux_64/onlyoffice/documentserver/.

Установка и настройка NGINX​

ONLYOFFICE Docs использует NGINX как веб-сервер.

Установка и настройка NGINX​

  1. Установите NGINX:

    sudo apt-get install nginx
  2. Отключите сайт по умолчанию:

    sudo rm -f /etc/nginx/sites-enabled/default
  3. Создайте файл /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;
    }
    }
  4. Добавьте символическую ссылку на созданный сайт в каталоге /etc/nginx/sites-available:

    sudo ln -s /etc/nginx/sites-available/onlyoffice-documentserver /etc/nginx/sites-enabled/onlyoffice-documentserver
  5. Перезапустите NGINX, чтобы применить изменения:

    sudo nginx -s reload

Генерация данных шрифтов​

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"

Генерация тем презентаций​

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"

Запуск ONLYOFFICE Docs​

примечание

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

  1. Запустите сервис 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
  2. Запустите сервис DocService:

    cd out/linux_64/onlyoffice/documentserver/server/DocService
    NODE_ENV=development-linux NODE_CONFIG_DIR=$PWD/../Common/config ./docservice