Tests d’un serveur de stockage et partage de fichiers
Depuis la fin du mois de juin, en tant que projet secondaire, j’ai fait des recherches sur un moyen de stocker des fichier avec une possibilité de partage. Le tout doit respecter le RGPD (Règlement Général sur la Protection des Données, en place depuis le mois de mai) et être hébergé sur un de nos serveurs.
Avant de commencer les recherches, Thomas (DevOps) et Cédric m’ont fait découvrir l’outil actuellement installé : openUpload. Il s’agit d’une application PHP qui n’est plus maintenue depuis plusieurs années et assez peu ergonomique. Son grand avantage est d’être Open Source et économe en ressources. Du fait que ce projet ne soit plus maintenu, il n’y a plus de mises à jour pour corriger les problèmes de sécurité ou supporter des versions plus récentes de PHP, ce qui pose problème.
Il existe de nombreuses alternatives à ce produit aujourd’hui. Certaines sont payantes avec des fonctionnalités intéressantes, mais à des prix très élevés, surtout pour un grand nombre d’utilisateurs (près de 250). J’ai trouvé trois solutions gratuites respectant le RGPD qui semblent prometteuses :
- LinShare (Java)
- ownCloud (PHP)
- Nextcloud (PHP)
ownCloud et Nextcloud proposent tous deux des versions payantes, mais elles ne s’avèrent pas nécessaires pour l’utilisation que nous feront de ce site. Les trois projets seront donc bien utilisés dans leur version gratuite, ce qui représente une économie de plusieurs milliers d’euros par an.
Afin de tester et comparer ces projets, j’ai mis en place trois machines virtuelles avec les logiciels nécessaires au fonctionnement de chaque application. Deux des machines contiennent donc un environnement LAMP (Linux Apache MySQL PHP) pour les tests d’ownCloud et Nextcloud. La troisième machine contient Java, un serveur Apache Tomcat (permet d’exécuter des applications Java) et une base PostgreSQL pour le test de LinShare.
L’installation des applications elles-mêmes est relativement simple et se fait en quelques étapes après avoir configuré les serveurs et copié les fichiers dans les bons dossiers. Ce qui est plus complexe est de configurer correctement chaque application. Il a d’ailleurs fallu que je recommence à plusieurs reprises avant de trouver des paramètres corrects qui ne bloquent pas totalement l’application.
La façon de configurer ownCloud et Nextcloud est assez proche. Ceci est du au fait que Nextcloud est un dérivé (un fork) d’ownCloud. NextCloud est aujourd’hui plus complet et plus actif qu’ownCloud (tous les deux en version gratuite).
Ces paramètres concernent d’une part la méthode d’authentification. Pour ne pas à avoir à créer des comptes pour chaque utilisateur, je profite des fonctionnalités de connexion à un serveur LDAP (Lightweight Directory Access Protocol) offertes par ces trois applications. L’application LinShare a été éliminée à cette étape des tests. Malgré tous les paramètres possibles essayés, je n’ai pas réussi à connecter le serveur Active Directory (version Microsoft du serveur LDAP) à l’application, m’empêchant ainsi d’accéder à la gestion des comptes. Leur documentation à ce sujet est assez peu étoffée et n’aide que trop peu.
La simplicité de configuration d’ownCloud et Nextcloud à ce sujet l’emporte puisqu’en quelques clics et des informations assez simples, la connexion à l’annuaire est faite et la liste de comptes se remplit automatiquement. A partir de la, il est possible de définir certains paramètres pour tous les comptes comme le quota de stockage. Chaque compte reste modifiable individuellement, indépendamment de cette configuration collective.
Grâce à l’activité du projet et ses fonctionnalités, c’est finalement Nextcloud qui est sélectionné pour être mis en production. La mise en production ne sera faite qu’à mon retour en septembre pour le début de l’alternance. Entre temps, nous avons reçu les nouveaux serveurs, qui doivent être installés et configurés d’ici la fin de mon stage. Ceci passe donc en priorité devant la mise en production de ce projet.