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 (consultez la liste détaillée des fonctionnalités). À 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 : distribution Linux amd64 avec noyau version 3.10 ou ultérieure
- Docker : toute version prise en charge par KylinOS
Installer ONLYOFFICE Docs
Par défaut, Docker utilise les serveurs DNS de Google. 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 :
-
Créez le fichier de configuration
/etc/docker/daemon.jsonavec le contenu suivant :{ "dns" : [ "8.8.8.8" ] } -
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
À 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 de la machine virtuelle ou du serveur physique, 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 si vous souhaitez en utiliser un autre que le port par défaut. Il suffit pour cela de modifier 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
Où <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 volumes de données dédiés, aux emplacements suivants :
/var/log/onlyofficepour les journaux d'activité d'ONLYOFFICE Docs/var/www/onlyoffice/Datapour les certificats/var/lib/onlyofficepour le cache des fichiers
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
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 les journaux d'activité ;
- pour supprimer la limite de taille des données à l'intérieur du conteneur.
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
Parmi les quatre fichiers générés, vous devez installer onlyoffice.key, onlyoffice.crt et dhparam.pem sur le serveur ONLYOFFICE. Le fichier CSR n'est pas nécessaire, 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/, copiez-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}}
Vous n'êtes plus qu'à une étape de la sécurisation de votre application.
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 complète 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. - 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 :
random string(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 envoyée à ONLYOFFICE Docs 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
truesi 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.