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.
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.