Pular para o conteúdo principal

Compilar o ONLYOFFICE Docs a partir do código-fonte

Introdução​

O ONLYOFFICE Docs é uma suíte de escritório online que engloba visualizadores e editores para documentos de texto, planilhas e apresentações, totalmente compatível com os formatos Office Open XML: .docx, .xlsx, .pptx, e que permite a coedição em tempo real.

Você pode compilar facilmente o ONLYOFFICE Docs a partir do código-fonte e implantar a solução no seu servidor local utilizando as build_tools, especialmente projetadas para isso. As build_tools permitem obter e instalar automaticamente todos os componentes necessários para o processo de compilação e todas as dependências exigidas para o funcionamento correto do ONLYOFFICE Docs, além de obter a versão mais recente do código-fonte do ONLYOFFICE Docs e compilar todos os seus componentes.

Importante

Só podemos garantir o funcionamento correto dos produtos compilados a partir da branch master.

Requisitos de sistema​

Hardware

  • CPU: 4 núcleos
  • RAM: pelo menos 8 GB, mas depende do SO host. Quanto mais, melhor
  • SSD: pelo menos 100 GB de espaço livre
  • SWAP: pelo menos 4 GB, mas depende do SO host. Quanto mais, melhor

Software

  • Sistema operacional: Ubuntu 24.04 de 64 bits
observação

A solução foi testada no Ubuntu 24.04. Outras distribuições podem exigir ações específicas, que não são descritas aqui.

Instalando as dependências​

Talvez seja necessário instalar o Python e o Git, caso ainda não estejam instalados no seu computador. Isso pode ser feito com o seguinte comando:

sudo apt-get install -y python3 git

Compilando o código-fonte do ONLYOFFICE Docs​

  1. Clone o repositório build_tools:

    git clone https://github.com/ONLYOFFICE/build_tools.git
  2. Navegue até o diretório build_tools/tools/linux:

    cd build_tools/tools/linux
  3. Execute o script automate.py especificando o parâmetro server para compilar o ONLYOFFICE Docs:

    python3 ./automate.py server
    observação

    Se você executar o script sem nenhum parâmetro, ele compilará o ONLYOFFICE Docs junto com o Document Builder e os Desktop Editors.

    python3 ./automate.py

    Se necessário, você pode compilar vários produtos de uma só vez executando o script com os parâmetros correspondentes aos produtos desejados. Para saber mais sobre a compilação do Document Builder, leia este artigo. Para saber mais sobre a compilação dos Desktop Editors, consulte este artigo.

Aguarde enquanto o script é executado. Dependendo da capacidade do seu computador, esse processo pode levar um tempo considerável. Por exemplo, ele leva pelo menos 3 horas em 4x2.3GHz vCPUs.

O script compilará todas as dependências e componentes que fazem parte do ONLYOFFICE Docs.

O ONLYOFFICE Docs compilado estará disponível no diretório ../../out/linux_64/onlyoffice/documentserver/.

Instalando e configurando o NGINX​

O ONLYOFFICE Docs utiliza o NGINX como servidor web.

Instalando e configurando o NGINX​

  1. Instale o NGINX:

    sudo apt-get install nginx
  2. Desative o site padrão:

    sudo rm -f /etc/nginx/sites-enabled/default
  3. Crie o arquivo /etc/nginx/sites-available/onlyoffice-documentserver com o seguinte conteúdo:

    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. Adicione o link simbólico para o site recém-criado ao diretório /etc/nginx/sites-available:

    sudo ln -s /etc/nginx/sites-available/onlyoffice-documentserver /etc/nginx/sites-enabled/onlyoffice-documentserver
  5. Reinicie o NGINX para aplicar as alterações:

    sudo nginx -s reload

Gerando os dados de fontes​

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"

Gerando os temas de apresentação​

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"

Executando o ONLYOFFICE Docs​

observação

Todos os componentes do ONLYOFFICE Docs são executados como processos em primeiro plano. Portanto, você precisa de consoles de terminal separados para executá-los ou de ferramentas específicas que permitam executar processos em primeiro plano em modo de segundo plano.

  1. Inicie o serviço 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. Inicie o serviço DocService:

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