Saltar al contenido principal

Compilación de ONLYOFFICE Docs para un servidor local

Introducción​

ONLYOFFICE Docs es una suite ofimática en línea que incluye visores y editores para documentos de texto, hojas de cálculo y presentaciones, totalmente compatible con los formatos Office Open XML: .docx, .xlsx, .pptx y que permite la edición colaborativa en tiempo real.

Puedes compilar fácilmente ONLYOFFICE Docs a partir del código fuente y desplegar la solución en tu servidor local utilizando las build_tools especialmente diseñadas. Las build_tools te permiten obtener e instalar automáticamente todos los componentes necesarios para el proceso de compilación, todas las dependencias requeridas para el correcto funcionamiento de ONLYOFFICE Docs, así como obtener la última versión del código fuente de ONLYOFFICE Docs y compilar todos sus componentes.

Importante

Solo podemos garantizar el correcto funcionamiento de los productos construidos desde la rama master.

Requisitos del sistema​

Hardware

  • CPU: 4 núcleos
  • RAM: al menos 8 GB, pero depende del sistema operativo anfitrión. Más es mejor
  • SSD: al menos 100 GB de espacio libre
  • SWAP: al menos 4 GB, pero depende del sistema operativo anfitrión. Más es mejor

Software

  • OS: Ubuntu 24.04 de 64 bits
nota

La solución ha sido probada en Ubuntu 24.04. Otras distribuciones pueden requerir acciones específicas, que no se describen aquí.

Instalación de dependencias​

Es posible que necesites instalar Python y Git si aún no están instalados en tu computadora. Esto se puede hacer usando el siguiente comando:

sudo apt-get install -y python3 git

Compilación del código fuente de ONLYOFFICE Docs​

  1. Clona el repositorio build_tools:

    git clone https://github.com/ONLYOFFICE/build_tools.git
  2. Ve al directorio build_tools/tools/linux:

    cd build_tools/tools/linux
  3. Ejecuta el script automate.py especificando el parámetro server para compilar ONLYOFFICE Docs:

    python3 ./automate.py server
    nota

    Si ejecutas el script sin ningún parámetro, esto compilará ONLYOFFICE Docs junto con Document Builder y Desktop Editors.

    python3 ./automate.py

    Si es necesario, puedes compilar varios productos a la vez ejecutando el script con los parámetros correspondientes a los productos necesarios. Para aprender más sobre la compilación de Document Builder, puedes leer este artículo. Para aprender más sobre la compilación de Desktop Editors, por favor consulta este artículo.

Espera mientras se ejecuta el script. Dependiendo de las capacidades de tu computadora, este proceso puede tomar un tiempo considerable. Por ejemplo, esto toma al menos 3 horas en 4x2.3GHz vCPUs.

El script compilará todas las dependencias y componentes que forman parte de ONLYOFFICE Docs.

El ONLYOFFICE Docs compilado estará disponible en el directorio ../../out/linux_64/onlyoffice/documentserver/.

Instalación y configuración de NGINX​

ONLYOFFICE Docs utiliza NGINX como servidor web.

Instalación y configuración de NGINX​

  1. Instala NGINX:

    sudo apt-get install nginx
  2. Desactiva el sitio web predeterminado:

    sudo rm -f /etc/nginx/sites-enabled/default
  3. Crea el archivo /etc/nginx/sites-available/onlyoffice-documentserver con el siguiente contenido:

    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. Añade el enlace simbólico al nuevo sitio creado en el directorio /etc/nginx/sites-available:

    sudo ln -s /etc/nginx/sites-available/onlyoffice-documentserver /etc/nginx/sites-enabled/onlyoffice-documentserver
  5. Reinicia NGINX para aplicar los cambios:

    sudo nginx -s reload

Generación de datos de fuentes​

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"

Generación de temas de presentación​

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"

Ejecución de ONLYOFFICE Docs​

nota

Todos los componentes de ONLYOFFICE Docs se ejecutan como procesos en primer plano. Por lo tanto, necesitas consolas de terminal separadas para ejecutarlos o herramientas específicas que permitan ejecutar procesos en primer plano en modo de fondo.

  1. Inicia el servicio 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. Inicia el servicio DocService:

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