Déployer Nextcloud avec Docker

Dans ce tutoriel, je vais vous expliquer comment déployer Nextcloud rapidement avec Docker et docker-compose, en plus de Nextcloud, nous allons déployer OnlyOffice Document Server qui va nous permettre l’édition de documents en ligne.

Idéalement, vous aurez aussi besoin d’un reverse proxy (Nginx), qui peut être installer sur le serveur Docker si vous n’avez pas plusieurs serveurs.

Si vous ne connaissez pas Nextcloud, c’est une solution Opensource et « gratuite » qui vous permet de mettre en place un cloud privé de type OneDrive et GoogleDrive. En plus d’un drive, Nextcloud permet :

  • L’édition de documents (Word, Excel ….) depuis le navigateur Internet
  • Gestion des tâches
  • Calendrier
  • Contact
  • ….

Les prérequis

Avant de déployer Nextcloud, voici les prérequis :

Prévoir aussi deux enregistrement DNS :

  1. Pour Nextcloud
  2. Pour OnlyOffice Server.
DNS Records for Nextcloud and OnlyOffice Server

Maintenant que l’environnement est prêt, nous allons passer au déploiement des conteneurs.

Déployer Nextcloud et OnlyOffice Server à l’aide de fichiers docker-compose

Afin de gagner du temps, les fichiers de configurations docker-compose et des hôtes virtuels pour Nginx sont disponibles sur mon dépôt ici : https://git.rdr-it.io/docker/nextcloud-apache-mariadb

Commencer par récupérer le contenu du dépôt, pour ma part je vais le cloner dans le dossier /containers/nextcloud

Cloner le dépôt :

sudo git clone https://git.rdr-it.io/docker/nextcloud-apache-mariadb.git .
Clone repository

On va maintenant configurer les conteneurs pour Nextcloud, aller dans le dossier nc et éditer le fichier .env

Changer à minima, les mot de passe des utilisateurs MariaDB.

Maintenant, on va éditer le fichier nc/nginx_vhost pour configurer Nginx.

Nginx virutal host for Nextcloud

Là aussi à minima, vous devez changer le paramètre server_name pour le faire correspondre à l’url de Nextcloud, si vous avez modifié le port dans fichier .env, penser à le modifier ici aussi.

On va tout de suite ajouter le virtualhost à Nginx :

sudo ln -s /path/clone/repo/nc/nginx_vhost /etc/nginx/sites-enabled/nc-rdr-it-fr

Adapter la commande à votre environnement

Tester la configuration de Nginx :

sudo nginx -t

Si tout est bon, nous avons fini avec la partie Nextcloud et on va s’occuper du conteneur OnlyOffice Server.

Aller dans le dossier olds, ici vous avez juste besoin d’éditer le fichier nginx_vhost pour configurer l’url, c’est à dire éditer la directive server_name.

Comme pour Nextcloud, ajouter le virtualhost à Nginx :

sudo ln -s /path/clone/repo/olds/nginx_vhost /etc/nginx/sites-enabled/olds-rdr-it-fr

Tester de nouveau la configuration Nginx : sudo nginx -t.

Si tout est bon, recharger la configuration nginx :

sudo systemctl reload nginx

Maintenant, on va télécharger les images des conteneurs et les démarrer, on va commencer par le serveur OnlyOffice Document Server vu que l’on se trouve dans son dossier.

Entrer la commande ci-dessous pour télécharger et démarrer le conteneur :

sudo docker-compose pull && sudo docker-compose up -d

Notre conteneur est démarré, on va la même pour les conteneurs Nextcloud, aller dans le dossier nc/ et entrer la commande de nouveau :

sudo docker-compose pull && sudo docker-compose up -d

Avant d’aller sur l’environnement Nextcloud, générer les certificats SSL.

Entrer la commande ci-dessous pour accéder à l’assistant de création des certificats, générer un certificat pour les deux sites :

sudo certbot

Pour plus de détail sur la génération, je vous laisse lire ou relire le tutoriel suivant : Nginx : générer un certificat Let’s Encrypt

On est prêt à aller sur Nextcloud.

Configuration de Nextcloud

Dans cette partie, je ne vais pas détailler toute la configuration de Nextcloud, on va juste voir le premier lancement et la configuration du plugin pour utiliser le serveur OnlyOffice Document Server.

Depuis un navigateur Internet, aller à l’url de votre Nextcloud :

Il faut créer un premier compte qui sera administrateur, entrer l’identifiant 1 (pour ma part admin) et son mot de passe 2. Cliquer ensuite sur Installer 3.

Patienter pendant l’installation …

Pendant l’installation, l’assitant vous demande si vous souhaitez installer les applications, je vous recommande de cliquer sur Annuler 1.

Si vous installez les applications recommandées, il sera nécessaire de désinstaller Collabore Online et Nextcloud Office pour utiliser OnlyOffice

On arrive sur la page d’accueil de Nextcloud :

On va passer à l’installation et à la configuration de l’application ONLYOFFICE pour éditer les documents en lignes.

Cliquer sur l’icone de votre compte 1 puis sur Applications 2.

On arrive sur la liste des applications installées sur notre Nextcloud, dans le menu de gauche, cliquer sur Bureautique et texte 1.

Dans la liste des applications, rechercher ONLYOFFICE 1 et cliquer sur le bouton Télécharger et activer 2.

Un fois l’application activée, cliquer sur nouveau sur l’icone de votre compte 1 puis sur Paramètres 2.

Dans le menu de gauche dans la partie Administration, cliquer sur ONLYOFFICE 1.

Entrer l’url 1 du service OnlyOffice Document Server et cliquer sur Enregistrer 2.

Si tout est bon, une notification s’affiche avec la version du serveur OnlyOffice Document Server et des nouveaux paramètres s’affiche en dessous.

Pour tester le bon fonctionnement, cliquer sur Fichiers 1 et ensuite aller dans les Documents 2.

Dans la liste des fichiers, ouvrir le Welcome to Nextcloud Hub.docx 1.

Il est possible à ce stade, qu’une erreur s’affiche indiquant que le document ne peut pas être enregistré, pour résoudre ce problème, il faut éditer le fichier de configuration de Nextcloud pour forcer l’utilisation de l’HTTPS sur les commande cli.

Ouvrir (avec nano) le fichier nc/data/config/config.php et modifier le paramètre overwrite.cli.url pour utiliser https et ajouter la ligne : 'overwriteprotocol' => 'https',.

Nextcloud config.php

Redémarrer les conteneurs avec la commande : sudo docker-compose restart en vous plaçant dans le dossier nc/.

Essayer d’ouvrir à nouveau le fichier, si tout se passe bien, vous pouvez éditer le fichier dans OnlyOffice.


Vous savez maintenant comment déployer Nextcloud et OnlyOffice Document Server avec Docker et docker-compose.

Pour finir quelque informations complémentaires, dans la liste des conteneurs, vous en avez un qui sert à gérer les cron de Nextcloud qui permet d’exécuter les taches automatiques à la place que cela soit exécuter par la navigation utilisateur.

Si vous le souhaitez, il est aussi possible de faire le déploiement avec un seul stack docker-compose et virtualhost, en utilisant un sous répertoire pour le serveur OnlyOffice Document Server.

La version gratuite de OnlyOffice Document Server est limité à 20 connexions simultanées.

Si vous avez déjà installé Nextcloud avec l’édition de document en ligne, vous avez peut-être utiliser d’autre solution comme Collabora ou l’utilisation des plugins tout-en-un qui comprend l’éditeur, malheureusement et je ne sais pas pourquoi, ces solutions ne fonctionne pas bien ou voir même pas avec le couple Docker et reverse proxy Nginx.

Si vous avez besoin de sauvegarder votre nextcloud, il suffit d’arrête les conteneurs et de copier le contenu dossier nc/.