Cómo compilar el Servidor de Documentos de ONLYOFFICE desde el código fuente en Ubuntu

ElServidor de Documentos de ONLYOFFICE incluye visores y editores colaborativos basados en la web para documentos de texto, hojas de cálculo y presentaciones que ofrecen una alta compatibilidad con los formatos OOXML (docx, xlsx, pptx). El conjunto se distribuye bajo la licencia GNU AGPL v3.0.

El Servidor de Documentos de ONLYOFFICE puede integrarse con varias plataformas de almacenamiento en la nube como Nextcloud, ownCloud, Seafile, HumHub, Plone, etc., así como puede integrarse en la solución que tú mismo estés construyendo. El Servidor de Documentos puede utilizarse como parte de ONLYOFFICE Community Edition, una solución gratuita de código abierto con editores en línea y plataforma de colaboración.

Editor de documentos de ONLYOFFICE

Las build_tools permiten a los usuarios instalar automáticamente todos los componentes necesarios y compilar la última versión de los editores online desde el código fuente.

En este tutorial, aprenderemos a compilar el Servidor de Documentos ONLYOFFICE para tu instalación de Ubuntu (Ubuntu de 64 bits).

Requisitos del sistema

  • CPU: Doble núcleo a 2 GHz o superior
  • RAM: 2 GB o más
  • Disco duro: al menos 40 GB de espacio libre
  • Al menos 4 GB de swap

Paso 1: Instalar las dependencias

En caso de que Python y Git no estén instalados en tu ordenador, instálalos con el siguiente comando:

sudo apt-get install -y python git

Paso 2: Construye el código fuente del Servidor de Documentos

Clona el repositorio build_tools:

git clone https://github.com/ONLYOFFICE/build_tools.git

Ve al directorio correspondiente:

cd build_tools/tools/linux

Ejecuta el script:

./automate.py server

Una vez hecho, el Servidor de Documentos construido estará disponible en el directorio ../../out/linux_64/onlyoffice/documentserver/.

Paso 3: Instalar y configurar NGINX, PostgreSQL y RabbitMQ

Document Server utiliza NGINX como servidor web y PostgreSQL como base de datos. También es necesario RabbitMQ para que funcione correctamente.

1. Instalar y configurar NGINX

Instala NGINX con este comando:

sudo apt-get install nginx

Desactiva el sitio web por defecto:

sudo rm -f /etc/nginx/sites-enabled/default

Configura el nuevo sitio web. Crea el archivo /etc/nginx/sites-available/onlyoffice-documentserver que contiene los siguientes datos:

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;
  }
  location /spellchecker/ {
    proxy_pass http://localhost:8080/;
    proxy_http_version 1.1;
  }
}

Añade el enlace simbólico al sitio web recién creado al directorio /etc/nginx/sites-available:

sudo ln -s /etc/nginx/sites-available/onlyoffice-documentserver /etc/nginx/sites-enabled/onlyoffice-documentserver

Reinicia NGINX:

sudo nginx -s reload

2. Instala y configura PostgreSQL

Instala PostgreSQL:

sudo apt-get install postgresql

Crea la base de datos PostgreSQL y el usuario (introduce ‘onlyoffice’ tanto para el usuario como para la contraseña):

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

Configura la base de datos:

psql -hlocalhost -Uonlyoffice -d onlyoffice -f ../../out/linux_64/onlyoffice/documentserver/server/schema/postgresql/createdb.sql

¡El comando anterior es de una sola línea! Introduce la contraseña ‘onlyoffice’ cuando se te pida una contraseña para el usuario PostgreSQL onlyoffice.

3. Instalar RabbitMQ

Instala RabbitMQ con el siguiente comando:

sudo apt-get install rabbitmq-server

Paso 4: Generar datos de fuentes

Ejecuta los comandos:

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"

Paso 5: Generar temas de presentación

Ejecuta los siguientes comandos:

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"

Paso 6: Ejecutar el Servidor de Documentos

Todos los componentes del Servidor de Documentos de ONLYOFFICE se ejecutan como procesos en primer plano. Es necesario separar las consolas de terminal para ejecutarlos o lanzar herramientas específicas que permitan ejecutar procesos en primer plano en modo de fondo.

Inicia el servicio del Convertidor de Archivos:

cd out/linux_64/onlyoffice/documentserver/server/FileConverter
LD_LIBRARY_PATH=$PWD/bin NODE_ENV=development-linux NODE_CONFIG_DIR=$PWD/../Common/config ./converter

Inicia el servicio Corrector Ortográfico:

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

Inicia el servicio DocService:

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

¡Eso es todo! Ahora puedes elegir una de las opciones de uso del Servidor de Documentos de ONLYOFFICE (editores online) descritas en la introducción: integrado con cualquier servicio de almacenamiento en la nube, o integrado en tu propia solución, o junto con el Servidor de la Comunidad de ONLYOFFICE.

También te podría gustar...