- 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.
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.
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:
- Clone o repositório mestre das ferramentas de compilação automatizada:
git clone https://github.com/ONLYOFFICE/build_tools.git - Navegue até o diretório interno contendo as receitas de automação para Linux:
cd build_tools/tools/linux - Invoque o script orquestrador
automate.pypassando a flagserverpara isolar a compilação do core do ONLYOFFICE Docs:./automate.py serverCompilaçã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:
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../automate.py
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
- Instale o servidor de páginas do NGINX via apt:
sudo apt-get install nginx - Delete a configuração default de host virtual para liberar a porta de escuta padrão:
sudo rm -f /etc/nginx/sites-enabled/default - Crie um novo arquivo de bloco de servidor em
/etc/nginx/sites-available/onlyoffice-documentservere 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; } } - 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 - 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
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
tmux ou screen) e gerenciadores de processos (como systemd ou supervisord).- 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 - 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.