Cet article dĂ©crit la mise en place du DocumentServer d’OnlyOffice et son intĂ©gration dans NextCloud afin de pouvoir visionner et Ă©diter des documents bureautiques directement dans NextCloud (comme un o365 ou GDocs).
Installation des dépendances
-
Base de données
$ sudo apt install postgresql $ $ sudo -i -u postgres psql -c "CREATE DATABASE onlyoffice;" $ sudo -i -u postgres psql -c "CREATE USER onlyoffice WITH password '<mot de passe>';" $ sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;" -
Message queuing
$ sudo apt install rabbitmq-server -
Nginx avec des fonctionnalitĂ©s supplĂ©mentaires, nĂ©cessaires Ă OnlyOffice (attention si vous disposez dĂ©jĂ d’une installation de Nginx sur votre serveur)
$ sudo apt install nginx-extras
Installation d’OnlyOffice
Ajout du dépôt :
$ mkdir -p -m 700 ~/.gnupg
$ curl -fsSL https://download.onlyoffice.com/GPG-KEY-ONLYOFFICE | gpg --no-default-keyring --keyring gnupg-ring:/tmp/onlyoffice.gpg --import
$ chmod 644 /tmp/onlyoffice.gpg
$ sudo chown root:root /tmp/onlyoffice.gpg
$ sudo mv /tmp/onlyoffice.gpg /usr/share/keyrings/onlyoffice.gpg
$
$ echo "deb [signed-by=/usr/share/keyrings/onlyoffice.gpg] https://download.onlyoffice.com/repo/debian squeeze main" | sudo tee /etc/apt/sources.list.d/onlyoffice.list
$ sudo apt update
$ sudo apt install ttf-mscorefonts-installer
$ sudo apt install onlyoffice-documentserver
(le dépôt indique Squeeze mais est compatible avec les versions récentes de Debian)
Sécurisation
HTTPS
Nous allons configurer TLS manuellement, car le script fourni par OnlyOffice ne semble pas toujours fonctionner.
-
Générer le certificat avec Certbot :
$ sudo certbot certonly --expand --webroot -w /var/www/onlyoffice/documentserver/letsencrypt --email <compte Let's Encrypt> -d <nom d'hĂ´te> -
Copie du fichier de conf nginx
$ sudo cp -f /etc/onlyoffice/documentserver/nginx/ds-ssl.conf.tmpl /etc/onlyoffice/documentserver/nginx/ds.conf -
Ajuster la configuration TLS dans
ds.conf36,37c38,39 < ssl_certificate {{SSL_CERTIFICATE_PATH}}; < ssl_certificate_key {{SSL_KEY_PATH}}; --- > ssl_certificate /etc/letsencrypt/live/<nom d'hĂ´te>/fullchain.pem; > ssl_certificate_key /etc/letsencrypt/live/<nom d'hĂ´te>/privkey.pem; 58,60c60,62 < # ssl_stapling on; < # ssl_stapling_verify on; < # ssl_trusted_certificate /etc/nginx/ssl/stapling.trusted.crt; --- > ssl_stapling on; > ssl_stapling_verify on; > ssl_trusted_certificate /etc/letsencrypt/live/<nom d'hĂ´te>/chain.pem; 68c70 < # ssl_dhparam /etc/ssl/certs/dhparam.pem; --- > ssl_dhparam /etc/ssl/private/dh2048.pem; -
Modifier la configuration nginx pour ne pas impacter les autres services
5,7c5,7 < listen 0.0.0.0:80; < listen [::]:80 default_server; < server_name _; --- > listen 80; > listen [::]:80; > server_name <nom d'hĂ´te>; 12a13 > 15c16 < #HTTP host for internal services --- > # HTTP host for internal services 29c30,31 < listen [::]:443 ssl default_server; --- > listen [::]:443 ssl; > server_name <nom d'hĂ´te>;
Restriction Ă Nextcloud
Dans le fichier local.json
-
Activer le token JWTÂ :
"token": { "enable": { "request": { "inbox": true, "outbox": true }, "browser": true -
Ajouter le token (à générer soit même) :
"secret": { "inbox": { "string": "<token>" }, "outbox": { "string": "<token>" }, "session": { "string": "<token>" }
Dans le fichier default.json, configurer l’ipfilter :
"ipfilter": {
"rules": [{"address": "<adresse IP du serveur", "allowed": true},
{"address": "*", "allowed": false}],
"useforrequest": true,
"errorcode": 403
},
Redémarrer le DocumentServer pour prendre en compte les changements :
$ sudo systemctl restart ds-converter.service
$ sudo systemctl restart ds-metrics.service
$ sudo systemctl restart ds-docservice.service
Configuration dans NextCloud
Installer le connecteur OnlyOffice dans NextCloud.
Aller dans les paramètres et configurer l’intĂ©gration en renseignant :
- L’adresse du serveur OnlyOffice,
- Le jeton JWT.

Il est possible de tester la connexion avec la commande suivante :
$ sudo -u www-data php /var/www/services/cloud/occ onlyoffice:documentserver --check
Ou tout simplement en essayant d’ouvrir un document Office dans NextCloud.
Bonus
Problème sur l’hĂ´te virtuel par dĂ©faut
Parfois, la mise Ă jour ou le redĂ©marrage d’OnlyOffice peut faire disparaĂ®tre le fichier /etc/nginx/sites-enabled/default liĂ© Ă la configuration de l’hĂ´te virtuel par dĂ©faut.
Il faut donc manuellement recréer le lien :
$ sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
DĂ©sactiver l’intĂ©gration d’example
$ sudo systemctl stop ds-example
$ sudo systemctl disable ds-example
C’est tout ! Il n’est pas configurĂ© pour dĂ©marrer automatiquement pas dĂ©faut.
Mise Ă jour de PostgreSQL
Voir ici : Using pg upgrade on Ubuntu/Debian
Sources
- https://helpcenter.onlyoffice.com/installation/docs-community-install-ubuntu.aspx
- https://helpcenter.onlyoffice.com/installation/docs-community-https-linux.aspx
- https://nocin.eu/nextcloud-restrict-access-to-yor-onlyoffice-document-service-to-the-users-of-your-nextcloud-instance/
- https://helpcenter.onlyoffice.com/gettingstarted/integration/Nextcloud.aspx
- https://www.linuxbabe.com/ubuntu/integrate-nextcloud-onlyoffice