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

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

Introdução

O ONLYOFFICE Docs é uma suíte de escritório modular baseada na web que engloba editores e visualizadores avançados para documentos de texto, planilhas e apresentações. A plataforma possui total compatibilidade nativa com os formatos Office Open XML (DOCX, XLSX, PPTX) e suporta rotinas complexas de coautoria em tempo real.

Este manual descreve o procedimento para compilar o ONLYOFFICE Docs diretamente a partir dos repositórios de código-fonte e implantá-lo em um ambiente de servidor local utilizando o kit de utilitários build_tools. O conjunto de scripts das build_tools automatiza o download de componentes essenciais, resolve dependências estruturais do sistema operacional e compila os binários de cada módulo da suíte.

Garantia de Compilação: A engenharia do ONLYOFFICE garante a estabilidade e o funcionamento correto dos binários compilados exclusivamente a partir da branch mestre (master) dos repositórios oficiais.

Requisitos de Sistema da Instância

Hardware Recomendado:

  • CPU: Processador Dual-Core de 2 GHz ou superior.
  • Memória RAM: Mínimo de 2 GB (a alocação real varia segundo a carga do SO host; quanto mais recursos disponíveis, melhor a performance).
  • Armazenamento (HDD/SSD): Pelo menos 40 GB de espaço livre em disco.
  • Partição SWAP: Mínimo de 4 GB configurados no sistema.

Software Homologado:

  • Sistema Operacional: Ubuntu 16.04 LTS de 64-bits.
Nota de Infraestrutura: Este ambiente foi exaustivamente homologado sobre o Ubuntu 16.04. A adoção de outras distribuições Linux (como Debian, CentOS ou RHEL) pode exigir ajustes manuais nas diretivas de pacotes não cobertos por este documento.

1. Instalando as dependências base

Antes de iniciar os scripts de build, certifique-se de possuir o interpretador Python e o gerenciador de versão Git instalados no ambiente local. Caso necessário, instale-os rodando o comando:

sudo apt-get install -y python git

2. Compilando o código-fonte com as build_tools

Siga o fluxo de execução abaixo para processar o código bruto da aplicação:

  1. Clone o repositório mestre das ferramentas de compilação automatizada:
    git clone https://github.com/ONLYOFFICE/build_tools.git
  2. Navegue até o diretório interno contendo as receitas de automação para Linux:
    cd build_tools/tools/linux
  3. Invoque o script orquestrador automate.py passando a flag server para isolar a compilação do core do ONLYOFFICE Docs:
    ./automate.py server
    Compilação Completa (Opcional): Se o script for chamado sem nenhum argumento de escopo, o sistema compilará o pacote completo contendo o ONLYOFFICE Docs, o Document Builder e os Desktop Editors locais:
    ./automate.py
    Para compreender o processo isolado de build das demais soluções independentes da marca, consulte os manuais de compilação do ONLYOFFICE Document Builder e dos ONLYOFFICE Desktop Editors.

Nota de processamento: O ciclo de compilação consome altos recursos de processamento e demanda tempo. Em uma CPU padrão Intel Core i7-7700, o build completo leva no mínimo 3 horas para finalizar.

Assim que o interpretador Python concluir o parsing, as pastas estruturadas contendo os binários prontos do ONLYOFFICE Docs estarão localizadas em: ../../out/linux_64/onlyoffice/documentserver/.


3. Instalando e configurando os serviços de infraestrutura (NGINX, PostgreSQL e RabbitMQ)

O ecossistema do ONLYOFFICE Docs delega o tráfego da camada web ao servidor proxy reverso NGINX, a persistência de esquemas ao banco de dados relacional PostgreSQL e a mensageria assíncrona de coautoria ao broker RabbitMQ.

A. Configuração do Servidor Web NGINX
  1. Instale o servidor de páginas do NGINX via apt:
    sudo apt-get install nginx
  2. Delete a configuração default de host virtual para liberar a porta de escuta padrão:
    sudo rm -f /etc/nginx/sites-enabled/default
  3. Crie um novo arquivo de bloco de servidor em /etc/nginx/sites-available/onlyoffice-documentserver e insira as seguintes regras de proxying de blocos e WebSockets:
    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. Gere um link simbólico para carregar o arquivo na pasta de sites ativos do NGINX:
    sudo ln -s /etc/nginx/sites-available/onlyoffice-documentserver /etc/nginx/sites-enabled/onlyoffice-documentserver
  5. Recarregue as configurações do daemon do NGINX para aplicar as diretivas imediatamente:
    sudo nginx -s reload
B. Configuração do Banco de Dados PostgreSQL

Instale o engine de banco de dados do Postgres:

sudo apt-get install postgresql

Invoque a CLI do psql utilizando o usuário do sistema para provisionar o banco e a role administrativa corporativa. Ambos devem adotar obrigatoriamente a string onlyoffice como identificador:

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;"

Rode o script SQL gerado no ciclo de compilação para estruturar e popular as tabelas e schemas relacionais da aplicação:

psql -h localhost -U onlyoffice -d onlyoffice -f ../../out/linux_64/onlyoffice/documentserver/server/schema/postgresql/createdb.sql
Nota de Autenticação: Durante a execução do comando psql acima, o terminal solicitará a senha definida para o usuário do banco. Digite a credencial onlyoffice e pressione Enter.
C. Instalação do Broker RabbitMQ

Instale o servidor do RabbitMQ para gerenciar as filas de mensageria:

sudo apt-get install rabbitmq-server
D. Geração e Indexação de Fontes de Sistema

Navegue até a pasta de build gerada e execute o binário gerador nativo do ONLYOFFICE (allfontsgen) para indexar e mapear a folha de estilos de fontes e imagens no SDK:

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"
E. Geração dos Temas Nativos de Apresentações

Execute o binário utilitário para compilar as imagens vetoriais e paletas de cores globais das apresentações de slides:

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"

4. Inicializando os daemons do ONLYOFFICE Docs

Comportamento do Shell: Por padrão, todos os microsserviços compilados do ONLYOFFICE Docs rodam como processos em primeiro plano (foreground). Para mantê-los ativos em produção de forma isolada, execute cada bloco em abas de terminais distintas ou utilize multiplexadores de terminal (como tmux ou screen) e gerenciadores de processos (como systemd ou supervisord).
  1. Abra uma sessão no terminal e inicialize o microsserviço de conversão de arquivos 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. Abra uma nova sessão paralela no terminal e inicialize o serviço mestre da aplicação web DocService:
    cd out/linux_64/onlyoffice/documentserver/server/DocService
    NODE_ENV=development-linux NODE_CONFIG_DIR=$PWD/../Common/config ./docservice

Pronto. Com ambos os daemons ativos, o NGINX roteará as chamadas externas da porta 80 para a porta local 8000. Teste o funcionamento do servidor acessando o IP ou DNS da sua máquina no navegador.

Artigo com o tag:
Veja todas as etiquetas