Mise en place d’un cloud privé

J’avais besoin de partager des fichiers avec mes proches sans qu’il soit besoin d’utiliser autre chose qu’un navigateur.

Je voulais un stockage crypté côté serveur et des aperçus en ligne plutôt qu’un téléchargement côté client, que ce soit mobile ou ordinateur. En effet, j’avais déjà constaté avec le Drive Google ou Proton que les aperçus de fichiers ordinaires, comme le PDF, ne sont pas toujours présentés suivant les appareils ou les navigateurs.

Tout cela, mais pas que cela, m’a orienté vers l’acquisition d’un VPS (Virtual Private Server) chez OVH, hébergeur français. Un serveur privé donc, au coût de 5 Euros par mois environ qui est l’entrée de gamme. Pour la configuration, j’ai choisi Linux Debian avec Docker préinstallé.

Restait ensuite à trouver un Cloud convenable à installer sur ce serveur. Je voulais avant tout un logiciel libre (open-source), léger et capable d’encrypter les données résidant sur le serveur pour la confidentialité.

Après quelques recherches, Seafile m’a paru être un bon candidat et je peux dire aujourd’hui que mes attentes n’ont pas été déçues, bien au contraire !

Première étape, ssh

J’ai utilisé l’App Terminal de mon MacIntosh pour me connecter au VPS via ssh. Ensuite, il suffit d’une paire de commandes (création de clés + copie sur le serveur) et hop, plus besoin de décliner le mot de passe par la suite pour les connexions distantes.

Pour mon mobile Honor, je me suis tourné vers F-Droid plutôt que vers le magasin Google (Play Store) pour installer Termux qui offre un environnement proche du monde Linux. À partir de quoi on peut installer le package OpenSSH. J’ai testé aussi l’App Connectbot, plus simple à installer, qui fonctionne bien.

Deuxième étape, docker

J’ai trouvé sur le net (merci les moteurs de recherche) une procédure en français qui détaille la procédure d’installation de Seafile avec docker :

https://lecrabeinfo.net/installer-et-configurer-seafile-serveur-sur-ubuntu-debian.html

J’ai suivi la procédure pas à pas, en sautant la partie concernant docker, déjà présent sur mon serveur.

Au départ, il faut faire un choix d’installation entre le mode HTTP et HTTPS. Comme j’étais en phase de test j’ai opté pour la facilité dans un premier temps, c’est à dire HTTP.

La première tentative d’installation a échoué, mais je n’ai pas eu trop de difficulté a en trouver la raison (encore une fois merci les moteurs de recherche). La correction consistait à remplacer 2.0 en 2.1 dans la première ligne du fichier docker-compose.yml

Et la seconde tentative fût la bonne. Alléluïa et ravissement ! Divine surprise car je m’attendais à une installation longue et laborieuse, or ce fût presque immédiat. Merci docker, merci Le Crabe !

Ici la procédure d’installation officielle en anglais qui est plus complète : https://manual.seafile.com/docker/deploy_seafile_with_docker/

Troisième étape, prise en main du Cloud

Cette prise en main fût nettement plus longue que l’installation, ce qui est bien normal pour un produit qui m’était inconnu, tant coté serveur que côté client. Le client Seafile, qui n’est pas indispensable sauf pour la synchronisation, fût aussi facilement installable sur ordinateur que sur mobile.

J’ai pu constater que outre la facilité d’installation, ce produit était bien documenté en Français, rapide (je compare ici avec Proton) et robuste, c’est à dire sans problème à signaler quand on le secoue bien ! Que demander de plus sinon des fonctionnalités ? Hé bien justement, des fonctionnalités il y en a.

On retrouve les classiques d’un cloud : stockage de fichiers, synchronisation et partage. Mais en plus on a un Wiki et du cryptage, celui là étant réalisé côté client, c’est à dire que le serveur ne stocke pas les clés de décryptage demandées (elles sont conservées 1 heure). Donc de quoi composer en ligne des pages, possiblement confidentielles, aussi facilement qu’avec Word sans avoir besoin de rien télécharger sur l’appareil client pour les lire, donc exactement ce qu’il me fallait !

Quatrième étape, HTTPS

Comme je l’avais pressenti cette étape pouvait être compliquée. Et en effet j’ai galéré pour faire fonctionner mon Wiki-Cloud en mode HTTPS, d’autant que le support OVH ne m’a pas vraiment aidé, en m’orientant vers une solution avec passerelle, certes gratuite mais apportant d’autres problèmes. Je comprends cependant que le support OVH soit limité aux services et produits OVH.

Pour moi, la solution fût simplement d’acquérir un nom de domaine (coût 5 euros par mois), car la procédure d’acquisition de certificat SSL ne fonctionne pas avec une adresse IP. À partir de quoi l’installation fût aussi simple et rapide que la première en mode HTTP.

Addendum mai 2024 : patatras, le site ne fonctionne plus faute de renouvellement du certificat SSL. Je découvre que le script de renouvellement n’est pas exécuté sous cron car sa redirection >> /opt/ssl/letsencrypt.log 2>&1 échoue

Il suffit de créer le dossier /opt/ssl sous container pour permettre l’exécution du script


$ sudo docker exec -it seafile /bin/bash
root# mkdir /opt/ssl

Cinquième étape, garniture

Encore une grosse étape, car il s’agit de paramétrer le produit et de l’alimenter avec des données, ce qui fût encore une occasion d’évaluer la stabilité du produit.

L’unique bug que j’ai rencontré fût un blocage de page Wiki lors de la sauvegarde de ladite page. Heureusement le fichier n’a pas été corrompu et le problème a pu être réparé.

En conclusion

Je suis satisfait de Seafile et je n’ai pas à me plaindre d’OVH qui pratique des tarifs raisonnables pour des prestations correctes.

ANNEXE

SeaDrive

J’ai découvert par la suite qu’il existait un autre client Seafile, appelé Seadrive. Celui là n’est pas fondamentalement différent du premier car il fait le même travail de synchronisation. Il se présente sous la forme d’une extension du Système de fichier, de manière identique au Drive Google, au lieu de se présenter sous la forme d’une App.

Je l’ai installé sur mon Mac mais assez peu utilisé, préférant le premier client Seafile, d’autant qu’avec SeaDrive je n’ai pas réussi à synchroniser mes bibliothèques cryptées.

Divers

À signaler : Côté serveur, bien que les données soient encryptées, les métadonnées (taille des fichiers, noms de fichiers ou répertoires …) ne le sont pas.

À signaler pour les technophiles, Seafile utilise le tandem Open Source Nginx – MariaDB et non le traditionnel Apache – MySQL. C’est la nouvelle génération.

Le client Seafile Androïd n’a pas de fonction de synchronisation. Il est donc de peu d’intérêt car il n’apporte rien de plus qu’un navigateur standard. A mon avis plutôt moins, en particulier pour la consultation et l’édition des pages Wiki. De plus l’affichage de page Wiki entraine le téléchargement d’un fichier ce qui est anormal.

Ce contenu a été publié dans Non classé. Vous pouvez le mettre en favoris avec ce permalien.