Aller au contenu principal

Compiler ONLYOFFICE Docs sur un serveur local

Introduction​

ONLYOFFICE Docs est une suite bureautique en ligne comportant des visionneuses et des éditeurs de documents texte, de classeurs et de présentations, entièrement compatible avec les formats Office Open XML : .docx, .xlsx, .pptx et permettant l'édition collaborative en temps réel.

Vous pouvez facilement compiler ONLYOFFICE Docs à partir du code source et déployer la solution sur votre serveur local à l'aide des build_tools spécialement conçus à cette fin. Les build_tools permettent de récupérer et d'installer automatiquement tous les composants nécessaires au processus de compilation, toutes les dépendances requises pour le bon fonctionnement d'ONLYOFFICE Docs, mais aussi d'obtenir la dernière version du code source d'ONLYOFFICE Docs et de compiler l'ensemble de ses composants.

Important

Nous ne pouvons garantir le bon fonctionnement que des produits compilés à partir de la branche master.

Configuration système minimale​

Matériel

  • CPU : 4 cœurs
  • RAM : au moins 8 Go, mais cela dépend du système d'exploitation hôte. Plus il y en a, mieux c'est
  • SSD : au moins 100 Go d'espace disponible
  • SWAP : au moins 4 Go, mais cela dépend du système d'exploitation hôte. Plus il y en a, mieux c'est

Logiciels

  • Système d'exploitation : Ubuntu 24.04 64 bits
remarque

La solution a été testée sur Ubuntu 24.04. D'autres distributions peuvent nécessiter des manipulations spécifiques qui ne sont pas décrites ici.

Installer les dépendances​

Il peut être nécessaire d'installer Python et Git s'ils ne sont pas encore présents sur votre ordinateur. Pour ce faire, utilisez la commande suivante :

sudo apt-get install -y python3 git

Construire ONLYOFFICE Docs à partir du code source​

  1. Clonez le dépôt build_tools :

    git clone https://github.com/ONLYOFFICE/build_tools.git
  2. Accédez au répertoire build_tools/tools/linux :

    cd build_tools/tools/linux
  3. Exécutez le script automate.py en indiquant le paramètre server pour compiler ONLYOFFICE Docs :

    python3 ./automate.py server
    remarque

    Si vous exécutez le script sans aucun paramètre, il compile à la fois ONLYOFFICE Docs, le Générateur de documents et les éditeurs de bureau.

    python3 ./automate.py

    Le cas échéant, vous pouvez compiler plusieurs produits à la fois en exécutant le script avec les paramètres correspondant aux produits souhaités. Pour en savoir plus sur la compilation du Générateur de documents, consultez cet article. Pour en savoir plus sur la compilation des éditeurs de bureau, consultez cet article.

Attendez la fin de l'exécution du script. Selon les capacités de votre ordinateur, cette opération peut prendre un temps considérable : comptez au moins 3 heures avec 4x2.3GHz vCPUs.

Le script compile toutes les dépendances et tous les composants qui font partie d'ONLYOFFICE Docs.

La version compilée d'ONLYOFFICE Docs est disponible dans le répertoire ../../out/linux_64/onlyoffice/documentserver/.

Installer et configurer NGINX​

ONLYOFFICE Docs utilise NGINX comme serveur Web.

Installer et configurer NGINX​

  1. Installez NGINX :

    sudo apt-get install nginx
  2. Désactivez le site par défaut :

    sudo rm -f /etc/nginx/sites-enabled/default
  3. Créez le fichier /etc/nginx/sites-available/onlyoffice-documentserver dont le contenu est le suivant :

    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. Ajoutez le lien symbolique au nouveau site vers le répertoire /etc/nginx/sites-available :

    sudo ln -s /etc/nginx/sites-available/onlyoffice-documentserver /etc/nginx/sites-enabled/onlyoffice-documentserver
  5. Redémarrez NGINX pour que ces modifications prennent effet :

    sudo nginx -s reload

Générer des données de polices​

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"

Générer des thèmes de présentation​

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"

Lancer ONLYOFFICE Docs​

remarque

Tous les composants d'ONLYOFFICE Docs s'exécutent en avant-plan. Il faut donc des consoles de terminal séparées pour les exécuter, ou des outils spécifiques permettant d'exécuter les processus d'avant-plan en arrière-plan.

  1. Démarrez le service 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. Démarrez le service DocService :

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