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.
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
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
-
Clone o repositório build_tools:
git clone https://github.com/ONLYOFFICE/build_tools.git -
Navegue até o diretório
build_tools/tools/linux:cd build_tools/tools/linux -
Execute o script
automate.pyespecificando o parâmetroserverpara compilar o ONLYOFFICE Docs:python3 ./automate.py serverobservaçãoSe você executar o script sem nenhum parâmetro, ele compilará o ONLYOFFICE Docs junto com o Document Builder e os Desktop Editors.
python3 ./automate.pySe 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
-
Instale o NGINX:
sudo apt-get install nginx -
Desative o site padrão:
sudo rm -f /etc/nginx/sites-enabled/default -
Crie o arquivo
/etc/nginx/sites-available/onlyoffice-documentservercom 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;}} -
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 -
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
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.
-
Inicie o serviço FileConverter:
cd out/linux_64/onlyoffice/documentserver/server/FileConverterLD_LIBRARY_PATH=$PWD/bin NODE_ENV=development-linux NODE_CONFIG_DIR=$PWD/../Common/config ./converter -
Inicie o serviço DocService:
cd out/linux_64/onlyoffice/documentserver/server/DocServiceNODE_ENV=development-linux NODE_CONFIG_DIR=$PWD/../Common/config ./docservice