ONLYOFFICE Document Server van broncode compileren op Ubuntu

ONLYOFFICE Document Server bestaat uit web-gebaseerde viewers en collaboratieve editors voor tekstdocumenten, spreadsheets, en presentaties met een hoge compatibiliteit met OOXML formaten (docx, xlsx, pptx). De suite wordt verspreid onder GNU AGPL v3.0.

ONLYOFFICE Document Server kan geïntegreerd worden met verschillende cloud opslag platforms zoals Nextcloud, ownCloud, Seafile, HumHub, Plone, enz., maar kan ook geïntegreerd worden in de oplossing die je zelf bouwt. Document Server kan gebruikt worden als onderdeel van ONLYOFFICE Community Edition, een gratis open-source oplossing met online editors en samenwerkingsplatform.

ONLYOFFICE Document Editor

Met de build_tools kunnen gebruikers automatisch alle benodigde componenten installeren en de nieuwste versie van de online editors uit de broncode compileren.

In deze handleiding leren we hoe je ONLYOFFICE Document Server kunt compileren voor je Ubuntu installatie (64-bit Ubuntu).

Systeemeisen

  • CPU: Dubbele kern 2 GHz of beter
  • RAM: 2 GB of meer
  • HDD: minstens 40 GB vrije ruimte
  • Minstens 4 GB swapruimte

Stap 1: Installeer de afhankelijkheden

Als Python en Git niet op je computer geïnstalleerd zijn, installeer ze dan met het volgende commando:

sudo apt-get install -y python git

Stap 2: Bouw de broncode van de Document Server

Kloon de build_tools repository:

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

Ga naar de juiste directory:

cd build_tools/tools/linux

Voer het script uit:

./automate.py server

Als dat gedaan is, is de gebouwde Document Server beschikbaar in de ../../out/linux_64/onlyoffice/documentserver/ directory.

Stap 3: Installeer en configureer NGINX, PostgreSQL en RabbitMQ

Document Server gebruikt NGINX als webserver en PostgreSQL als databank. RabbitMQ is ook nodig om goed te kunnen werken.

1. Installeer en configureer NGINX

Installeer NGINX met dit commando:

sudo apt-get install nginx

Schakel de standaard website uit:

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

Zet de nieuwe website op. Maak het bestand /etc/nginx/sites-available/onlyoffice-documentserver dat de volgende gegevens bevat:

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

Voeg de symlink naar de nieuw gemaakte website toe aan de /etc/nginx/sites-available directory:

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

Herstart NGINX:

sudo nginx -s reload

2. Installeer en configureer PostgreSQL

Installeer PostgreSQL:

sudo apt-get install postgresql

Maak de PostgreSQL database en gebruiker aan (voer zowel voor gebruiker als wachtwoord ‘onlyoffice’ in):

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

Configureer de database:

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

Het bovenstaande commando is één regel! Voer het ‘onlyoffice’ wachtwoord in als je gevraagd wordt een wachtwoord voor de onlyoffice PostgreSQL gebruiker op te geven.

3. Installeer RabbitMQ

Installeer RabbitMQ met het volgende commando:

sudo apt-get install rabbitmq-server

Stap 4: Genereer fonts gegevens

Voer de commando’s uit:

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"

Stap 5: Genereer presentatie thema’s

Voer de volgende commando’s uit:

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"

Stap 6: Voer Document Server uit

Alle onderdelen van ONLYOFFICE Document Server draaien als foreground processen. Je moet aparte terminal consoles gebruiken om ze uit te voeren of specifieke gereedschappen starten die het mogelijk maken om voorgrond processen in de achtergrondmodus uit te voeren.

Start de FileConverter dienst:

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

Start de SpellChecker dienst:

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

Start de DocService dienst:

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

Dat is alles! Nu kun je een van de in de inleiding beschreven mogelijkheden kiezen om ONLYOFFICE Document Server (online editors) te gebruiken: geïntegreerd met een willekeurige cloud opslag dienst, of geïntegreerd in je eigen oplossing, of samen met ONLYOFFICE Community Server.