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.
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
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
-
Clonez le dépôt build_tools :
git clone https://github.com/ONLYOFFICE/build_tools.git -
Accédez au répertoire
build_tools/tools/linux:cd build_tools/tools/linux -
Exécutez le script
automate.pyen indiquant le paramètreserverpour compiler ONLYOFFICE Docs :python3 ./automate.py serverremarqueSi 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.pyLe 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
-
Installez NGINX :
sudo apt-get install nginx -
Désactivez le site par défaut :
sudo rm -f /etc/nginx/sites-enabled/default -
Créez le fichier
/etc/nginx/sites-available/onlyoffice-documentserverdont 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;}} -
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 -
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
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.
-
Démarrez le service FileConverter :
cd out/linux_64/onlyoffice/documentserver/server/FileConverterLD_LIBRARY_PATH=$PWD/bin NODE_ENV=development-linux NODE_CONFIG_DIR=$PWD/../Common/config ./converter -
Démarrez le service DocService :
cd out/linux_64/onlyoffice/documentserver/server/DocServiceNODE_ENV=development-linux NODE_CONFIG_DIR=$PWD/../Common/config ./docservice