Installer ONLYOFFICE Docs sous Docker sur KylinOS

Introduction

Édition Communauté permet d'installer ONLYOFFICE Docs sur votre serveur local et d'intégrer les éditeurs en ligne à la plateforme de collaboration ONLYOFFICE ou à d'autres systèmes populaires.

ONLYOFFICE Docs est une suite bureautique en ligne comprenant des visionneuses et des éditeurs pour les documents texte, les feuilles de calcul et les présentations, entièrement compatible avec les formats Office Open XML : .docx, .xlsx, .pptx, et permettant la co-édition en temps réel.

Fonctionnalités

  • Éditeur de documents
  • Éditeur de classeurs
  • Éditeur de présentations
  • Visionneuses mobiles web
  • Édition collaborative
  • Prise en charge des idéogrammes
  • Prise en charge des formats les plus populaires : DOC, DOCX, TXT, ODT, RTF, ODP, EPUB, ODS, XLS, XLSX, CSV, PPTX, HTML

Consultez la liste détaillée des fonctionnalités disponibles pour ONLYOFFICE Docs Édition Communauté.

En l'utilisant avec ONLYOFFICE Workspace, vous pourrez :

  • partager des fichiers ;
  • gérer les droits d'accès aux documents ;
  • intégrer des documents sur un site web ;
  • afficher et modifier des fichiers stockés sur Drive, Box, Dropbox, OneDrive, ownCloud connectés à ONLYOFFICE.

À partir de la version 7.2, les images Docker d'ONLYOFFICE Docs ont été refactorisées pour fonctionner sur Kylin Linux Advanced Server OS édition V10. Ce guide vous explique comment installer la version Docker d'ONLYOFFICE Docs Édition Communauté sur KylinOS.

Configuration système minimale
  • Processeur : double cœur 2 GHz ou supérieur
  • RAM : 4 Go ou plus
  • Disque dur : au moins 40 Go d'espace libre
  • SWAP : au moins 4 Go, selon le système d'exploitation hôte. Plus est préférable
  • Système d'exploitation : noyau Linux 3.10 pour l'architecture amd64 ou version ultérieure
  • Docker : KylinOS prend en charge toutes les versions

Installer ONLYOFFICE Docs

Docker configure les serveurs DNS par défaut. Si votre application ONLYOFFICE Docs n'a pas accès à Internet, il est recommandé de remplacer l'adresse DNS de Docker par votre serveur DNS local. Pour ce faire, ouvrez le fichier /etc/default/docker et remplacez l'adresse IP de la ligne suivante par l'adresse IP d'un serveur DNS de votre réseau local :
docker_OPTS="--dns 8.8.8.8"

Pour les systèmes d'exploitation basés sur RPM tels que CentOS :

  1. Créez le fichier de configuration /etc/docker/daemon.json avec le contenu suivant :
    { "dns" : [ "8.8.8.8" ] }
  2. Redémarrez le service Docker :
    sudo systemctl restart docker.service
Désactiver SELinux

Désactivez SELinux dans le fichier de configuration /etc/selinux/config.

Ouvrez le fichier /etc/selinux/config dans un éditeur de texte, remplacez la ligne SELINUX=enforcing ou SELINUX=permissive par SELINUX=disabled, puis enregistrez les modifications.

Redémarrez votre serveur pour que les modifications prennent effet. Vérifiez ensuite que SELinux est bien désactivé :

[root@test ~]# sestatus
SELinux status: disabled
Installer ONLYOFFICE Docs

Exécutez la commande suivante pour installer ONLYOFFICE Docs :

sudo docker run -i -t -d -p 80:80 --security-opt seccomp=unconfined --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
Important À partir de la version 7.2, une clé secrète JWT est générée aléatoirement. Si la variable d'environnement de la clé secrète JWT n'est pas définie, celle-ci sera régénérée à chaque redémarrage du serveur, ce qui peut entraîner des problèmes d'intégration. Pour éviter cela, saisissez votre propre valeur dans -e JWT_SECRET=my_jwt_secret.

Si vous ne souhaitez pas utiliser JWT lors de l'installation, utilisez -e JWT_ENABLED=false.

La clé --security-opt seccomp=unconfined est nécessaire pour désactiver les profils de sécurité du conteneur. Pour plus de détails, consultez cette page.

Vous pouvez également utiliser notre profil de sécurité personnalisé : kylin-seccomp7.json.

Par défaut, ONLYOFFICE Docs écoute les connexions entrantes sur le port 80. À partir de la version 4.3, vous pouvez modifier le port d'ONLYOFFICE Docs en reconfigurant le mappage de port lors de l'installation :
sudo docker run -i -t -d -p <PORT_NUMBER>:80 --security-opt seccomp=unconfined --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
<PORT_NUMBER> est le numéro de port qui sera utilisé par ONLYOFFICE Docs.

Cette commande installe ONLYOFFICE Docs et toutes ses dépendances (la liste des opérations effectuées par le script est disponible ici).

Ajouter une exception de pare-feu

Ajoutez également une exception pour le service firewalld.service :

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

Une fois la configuration terminée, saisissez http://localhost dans la barre d'adresse de votre navigateur pour accéder à la page d'accueil d'ONLYOFFICE Docs, où vous trouverez des instructions supplémentaires sur la façon d'activer les exemples de documents ou d'intégrer les éditeurs en ligne dans votre application web à l'aide de l'API fournie.

Stocker des données en dehors du conteneur

Toutes les données sont stockées dans les répertoires suivants :

  • /var/log/onlyoffice pour les journaux d'activité d'ONLYOFFICE Docs
  • /var/www/onlyoffice/Data pour les certificats
  • /var/lib/onlyoffice pour le cache des fichiers
  • /var/lib/postgresql pour la base de données
Conseil Il est fortement recommandé de stocker vos données en dehors des conteneurs Docker, sur la machine hôte, afin de faciliter la mise à jour d'ONLYOFFICE Docs lors de la publication d'une nouvelle version sans perdre les données.

Pour accéder aux données stockées en dehors du conteneur, montez des volumes en utilisant l'option -v dans la commande d'exécution Docker.

sudo docker run -i -t -d -p 80:80 --security-opt seccomp=unconfined --restart=always \
 -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
 -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
 -v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
 -v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver
Veuillez noter que si vous montez un volume qui n'existe pas encore, Docker le créera automatiquement, mais les droits d'accès seront limités. Vous devrez modifier les permissions manuellement.

En règle générale, il n'est pas nécessaire de conserver les données du conteneur, car les opérations de celui-ci ne dépendent pas de son état. La conservation des données est utile dans les cas suivants :

  • pour un accès facile aux données du conteneur, telles que l'historique ;
  • pour supprimer la limite de taille des données à l'intérieur du conteneur ;
  • lors de l'utilisation de services lancés en dehors du conteneur, tels que PostgreSQL, Redis, RabbitMQ.

Exécuter ONLYOFFICE Docs en HTTPS

sudo docker run -i -t -d -p 443:443 --security-opt seccomp=unconfined --restart=always \
 -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver

Le protocole SSL peut être utilisé pour sécuriser l'accès à l'application et prévenir tout accès non autorisé. Des certificats SSL émis par une autorité de certification permettent d'établir la confiance. Des certificats auto-signés offrent un niveau de fiabilité équivalent s'ils sont correctement sécurisés côté client et si des mesures supplémentaires sont prises pour vérifier l'identité de votre site. Suivez les instructions ci-dessous pour réaliser ces opérations.

Pour sécuriser l'application avec SSL, vous aurez besoin de :

  • Clé privée (.key)
  • Certificat SSL (.crt)

Vous devrez créer et installer les fichiers suivants :

/app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.crt

Lorsque vous utilisez des certificats SSL émis par une autorité de certification (par exemple, Let's Encrypt), ces fichiers vous sont fournis par l'autorité. Si vous utilisez des certificats auto-signés, vous devez les générer vous-même.

Passer ONLYOFFICE Docs en HTTPS avec certbot

Le moyen le plus simple de passer ONLYOFFICE Docs en HTTPS est d'obtenir automatiquement un certificat SSL auprès de Let's Encrypt à l'aide de certbot.

Lancez le conteneur Docker ONLYOFFICE Docs sur les ports 80 et 443 en renseignant vos propres valeurs pour les variables :

sudo docker run -i -t -d -p 80:80 -p 443:443 --security-opt seccomp=unconfined --restart=always \
 -e LETS_ENCRYPT_DOMAIN=yourdomain.com -e LETS_ENCRYPT_MAIL=email@example.com -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver

Où :

  • LETS_ENCRYPT_DOMAIN — le nom de domaine à utiliser pour le certificat.
  • LETS_ENCRYPT_MAIL — l'adresse e-mail à utiliser lors de l'inscription et de la récupération.

Le certificat émis par l'autorité de certification letsencrypt.org sera généré et installé automatiquement sur votre serveur. Votre ONLYOFFICE Docs sera alors accessible à l'adresse https://yourdomain.com.

Générer des certificats auto-signés

La génération de certificats SSL auto-signés se déroule en trois étapes.

ÉTAPE 1 : Créez la clé privée du serveur :

openssl genrsa -out onlyoffice.key 2048

ÉTAPE 2 : Créez une demande de signature de certificat (CSR) :

openssl req -new -key onlyoffice.key -out onlyoffice.csr

ÉTAPE 3 : Signez le certificat à l'aide de la clé privée et du CSR :

openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt

Vous avez ainsi généré un certificat SSL valable 365 jours.

Renforcer la sécurité de votre serveur

Cette section contient des instructions pour renforcer la sécurité de votre serveur.

Pour ce faire, générez de bons paramètres DHE :

openssl dhparam -out dhparam.pem 2048
Installer des certificats SSL

Les fichiers à installer sur le serveur ONLYOFFICE sont les quatre fichiers générés : onlyoffice.key, onlyoffice.crt et dhparam.pem. Vous n'avez pas besoin du CSR, mais conservez-en une sauvegarde sécurisée.

Par défaut, l'application ONLYOFFICE recherche les certificats SSL dans le répertoire /var/www/onlyoffice/Data/certs. Vous pouvez modifier ce chemin à l'aide des options de configuration SSL_KEY_PATH, SSL_CERTIFICATE_PATH et SSL_DHPARAM_PATH.

Le chemin /var/www/onlyoffice/Data/ correspond au répertoire de stockage des données. Créez un sous-dossier certs dans /app/onlyoffice/DocumentServer/data/, déplacez-y les fichiers, puis restreignez les droits d'accès au fichier onlyoffice.key en lecture seule pour le propriétaire :

mkdir -p /app/onlyoffice/DocumentServer/data/certs
cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/
cp onlyoffice.crt /app/onlyoffice/DocumentServer/data/certs/
cp dhparam.pem /app/onlyoffice/DocumentServer/data/certs/
chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key

Redémarrez le conteneur Docker :

sudo docker restart {{DOCUMENT_SERVER_ID}}

Votre application est désormais sécurisée.

Paramètres de configuration disponibles
Pour éviter de saisir une commande docker run trop longue, vous pouvez stocker toutes les variables d'environnement dans un fichier texte brut et le transmettre à l'aide du paramètre --env-file :
sudo docker run ... --env-file /path/to/your.env onlyoffice/documentserver

Voici la liste des paramètres configurables à l'aide des variables d'environnement.

  • ONLYOFFICE_HTTPS_HSTS_ENABLED : option avancée pour désactiver la configuration HSTS. S'applique uniquement en mode SSL. Valeur par défaut : true.
  • ONLYOFFICE_HTTPS_HSTS_MAXAGE : option avancée pour configurer le paramètre HSTS max-age dans la configuration NGINX vHost d'ONLYOFFICE. S'applique uniquement en mode SSL. Valeur par défaut : 31536000.
  • SSL_CERTIFICATE_PATH : chemin du certificat SSL. Valeur par défaut : /var/www/onlyoffice/Data/certs/tls.crt.
  • SSL_KEY_PATH : chemin de la clé privée du certificat SSL. Valeur par défaut : /var/www/onlyoffice/Data/certs/tls.key.
  • SSL_DHPARAM_PATH : chemin du paramètre Diffie-Hellman. Valeur par défaut : /var/www/onlyoffice/Data/certs/dhparam.pem.
  • SSL_VERIFY_CLIENT : active la vérification des certificats client à l'aide du fichier CA_CERTIFICATES_PATH. Valeur par défaut : false.
  • DB_TYPE : type de base de données. Valeurs acceptées : postgres, mariadb et mysql. Valeur par défaut : postgres.
  • DB_HOST : adresse IP ou nom d'hôte du serveur de base de données.
  • DB_PORT : numéro de port d'accès à la base de données.
  • DB_NAME : nom de la base de données créée au démarrage de l'image.
  • DB_USER : nom du nouvel utilisateur disposant de tous les droits sur la base de données.
  • DB_PWD : mot de passe du compte de base de données.
  • AMQP_URI : URI AMQP pour la connexion au serveur de messagerie.
  • AMQP_TYPE : type de courtier de messages. Valeurs acceptées : rabbitmq ou activemq. Valeur par défaut : rabbitmq.
  • REDIS_SERVER_HOST : adresse IP ou nom d'hôte du serveur Redis.
  • REDIS_SERVER_PORT : numéro de port d'accès au serveur Redis.
  • NGINX_WORKER_PROCESSES : définit le nombre de processus worker NGINX.
  • NGINX_WORKER_CONNECTIONS : définit le nombre maximum de connexions simultanées par processus worker NGINX.
  • SECURE_LINK_SECRET : définit la clé secrète pour la directive NGINX secure_link_md5. Valeur par défaut : chaîne aléatoire.
  • JWT_ENABLED : indique si la validation du jeton JSON est activée pour ONLYOFFICE Docs. Valeur par défaut : true.
  • JWT_SECRET : définit la clé secrète pour la validation du jeton JSON dans les requêtes envoyées à ONLYOFFICE Docs. Valeur par défaut : valeur aléatoire.
  • JWT_HEADER : définit l'en-tête HTTP utilisé pour transmettre le jeton JSON. Valeur par défaut : Authorization.
  • JWT_IN_BODY : indique si la validation du jeton dans le corps de la requête est activée. Valeur par défaut : false.
  • WOPI_ENABLED : indique si le gestionnaire WOPI est activé. Valeur par défaut : false.
  • USE_UNAUTHORIZED_STORAGE : définissez true si vous utilisez des certificats auto-signés pour votre serveur de stockage (ex. Nextcloud). Valeur par défaut : false.
  • GENERATE_FONTS : si true, régénère la liste et les miniatures des polices à chaque démarrage. Valeur par défaut : true.
  • METRICS_ENABLED : indique si StatsD est activé pour ONLYOFFICE Docs. Valeur par défaut : false.
  • METRICS_HOST : définit l'hôte d'écoute StatsD. Valeur par défaut : localhost.
  • METRICS_PORT : définit le port d'écoute StatsD. Valeur par défaut : 8125.
  • METRICS_PREFIX : définit le préfixe de métriques StatsD pour les services d'administration. Valeur par défaut : ds..
  • LETS_ENCRYPT_DOMAIN : définit le domaine pour le certificat Let's Encrypt.
  • LETS_ENCRYPT_MAIL : définit l'adresse e-mail de l'administrateur du domaine pour le certificat Let's Encrypt.
Articles avec le tag :
Parcourir tous les tags