{"id":764,"date":"2024-02-20T19:21:55","date_gmt":"2024-02-20T18:21:55","guid":{"rendered":"https:\/\/labeille.net\/?p=764"},"modified":"2025-04-16T11:16:09","modified_gmt":"2025-04-16T09:16:09","slug":"mise-en-place-dun-cloud-prive","status":"publish","type":"post","link":"https:\/\/labeille.net\/?p=764","title":{"rendered":"Mise en place d&rsquo;un cloud priv\u00e9"},"content":{"rendered":"\n<p>J&rsquo;avais besoin de partager des fichiers avec mes proches sans qu&rsquo;il soit besoin pour eux d&rsquo;utiliser autre chose qu&rsquo;un navigateur.<\/p>\n\n\n\n<p>Je voulais aussi un stockage crypt\u00e9 c\u00f4t\u00e9 serveur et des aper\u00e7us en ligne plut\u00f4t qu&rsquo;un t\u00e9l\u00e9chargement c\u00f4t\u00e9 client, que ce soit mobile ou ordinateur. En effet, j&rsquo;avais d\u00e9j\u00e0 constat\u00e9 avec le Drive Google ou Proton que les aper\u00e7us de fichiers ordinaires, comme le PDF, ne sont pas toujours pr\u00e9sent\u00e9s suivant les appareils ou les navigateurs.<\/p>\n\n\n\n<p>Je me suis alors orient\u00e9 vers l&rsquo;acquisition d&rsquo;un VPS (Virtual Private Server) chez OVH, h\u00e9bergeur fran\u00e7ais. Un serveur priv\u00e9 donc, au co\u00fbt de 5 Euros par mois environ qui est l&rsquo;entr\u00e9e de gamme. Pour la configuration, j&rsquo;ai choisi Linux Debian avec Docker pr\u00e9install\u00e9.<\/p>\n\n\n\n<p>Restait ensuite \u00e0 trouver un Cloud convenable \u00e0 installer sur ce serveur.  Je voulais avant tout un logiciel libre (open-source), l\u00e9ger et capable d&rsquo;encrypter les donn\u00e9es r\u00e9sidant sur le serveur pour la confidentialit\u00e9.<\/p>\n\n\n\n<p>Apr\u00e8s quelques recherches, <strong>Seafile<\/strong> m&rsquo;a paru \u00eatre un bon candidat et je peux dire aujourd&rsquo;hui que mes attentes n&rsquo;ont pas \u00e9t\u00e9 d\u00e9\u00e7ues, bien au contraire !<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Premi\u00e8re \u00e9tape, ssh<\/h1>\n\n\n\n<p>J&rsquo;ai utilis\u00e9 l&rsquo;App <strong>Terminal<\/strong> de mon MacIntosh pour me connecter au VPS via <strong>ssh<\/strong>. Ensuite, il suffit d&rsquo;une paire de commandes (cr\u00e9ation de cl\u00e9s + copie sur le serveur) et hop, plus besoin de d\u00e9cliner le mot de passe par la suite pour les connexions distantes.<\/p>\n\n\n\n<p>Pour mon mobile Honor, je me suis tourn\u00e9 vers <strong>F-Droid<\/strong> plut\u00f4t que vers le magasin Google (Play Store) pour installer <strong>Termux<\/strong> qui offre un environnement proche du monde Linux. \u00c0 partir de quoi on peut installer le package OpenSSH. J&rsquo;ai test\u00e9 aussi l&rsquo;App <strong>Connectbot<\/strong>, plus simple \u00e0 installer, qui fonctionne bien. <\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Deuxi\u00e8me \u00e9tape, docker<\/h1>\n\n\n\n<p>J&rsquo;ai trouv\u00e9 sur le net (merci les moteurs de recherche) une proc\u00e9dure en fran\u00e7ais qui d\u00e9taille la proc\u00e9dure d&rsquo;installation de Seafile avec docker  :<\/p>\n\n\n\n<p><a href=\"https:\/\/lecrabeinfo.net\/installer-et-configurer-seafile-serveur-sur-ubuntu-debian.html\">https:\/\/lecrabeinfo.net\/installer-et-configurer-seafile-serveur-sur-ubuntu-debian.html<\/a><\/p>\n\n\n\n<p>J&rsquo;ai suivi la proc\u00e9dure pas \u00e0 pas, en sautant la partie concernant docker, d\u00e9j\u00e0 pr\u00e9sent sur mon serveur.<\/p>\n\n\n\n<p>Au d\u00e9part, il faut faire un choix d&rsquo;installation entre le mode HTTP et HTTPS.  Comme j&rsquo;\u00e9tais en phase de test j&rsquo;ai opt\u00e9 pour la facilit\u00e9 dans un premier temps, c&rsquo;est \u00e0 dire HTTP.<\/p>\n\n\n\n<p>La premi\u00e8re tentative d&rsquo;installation a \u00e9chou\u00e9, mais je n&rsquo;ai pas eu trop de difficult\u00e9 a en trouver la raison (encore une fois merci les moteurs de recherche). La correction consistait \u00e0 remplacer 2.0 en 2.1 dans la premi\u00e8re ligne du fichier <strong>docker-compose.yml<\/strong><\/p>\n\n\n\n<p>Et la seconde tentative f\u00fbt la bonne. All\u00e9lu\u00efa et ravissement !  Divine surprise car je m&rsquo;attendais \u00e0 une installation longue et laborieuse, or ce f\u00fbt presque imm\u00e9diat.  Merci docker, merci Le Crabe !<\/p>\n\n\n\n<p>Ici la proc\u00e9dure d&rsquo;installation officielle en anglais qui est plus compl\u00e8te : <a href=\"https:\/\/manual.seafile.com\/docker\/deploy_seafile_with_docker\/\">https:\/\/manual.seafile.com\/docker\/deploy_seafile_with_docker\/<\/a><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Troisi\u00e8me \u00e9tape, prise en main du Cloud<\/h1>\n\n\n\n<p>Cette prise en main f\u00fbt nettement plus longue que l&rsquo;installation, ce qui est bien normal pour un produit qui m&rsquo;\u00e9tait inconnu, tant cot\u00e9 serveur que c\u00f4t\u00e9 client.  Le client Seafile, qui n&rsquo;est pas indispensable sauf pour la synchronisation, f\u00fbt aussi facilement installable sur ordinateur que sur mobile.<\/p>\n\n\n\n<p>J&rsquo;ai pu constater que outre la facilit\u00e9 d&rsquo;installation, ce produit \u00e9tait bien document\u00e9 en Fran\u00e7ais, rapide (je compare ici avec Proton) et robuste, c&rsquo;est \u00e0 dire sans probl\u00e8me \u00e0 signaler quand on le secoue bien ! Que demander de plus sinon des fonctionnalit\u00e9s ? H\u00e9 bien justement, des fonctionnalit\u00e9s il y en a. <\/p>\n\n\n\n<p>On retrouve les classiques d&rsquo;un cloud : stockage de fichiers, synchronisation et partage. Mais en plus on a un Wiki et du cryptage, celui l\u00e0 \u00e9tant r\u00e9alis\u00e9 c\u00f4t\u00e9 client, c&rsquo;est \u00e0 dire que le serveur ne stocke pas les cl\u00e9s de d\u00e9cryptage demand\u00e9es (elles sont conserv\u00e9es 1 heure). Donc de quoi composer en ligne des pages, possiblement confidentielles, aussi facilement qu&rsquo;avec Word sans avoir besoin de rien t\u00e9l\u00e9charger sur l&rsquo;appareil client pour les lire, donc exactement ce qu&rsquo;il me fallait !<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Quatri\u00e8me \u00e9tape, HTTPS<\/h1>\n\n\n\n<p>Comme je l&rsquo;avais pressenti cette \u00e9tape pouvait \u00eatre compliqu\u00e9e. Et en effet j&rsquo;ai gal\u00e9r\u00e9 pour faire fonctionner mon Wiki-Cloud en mode HTTPS, d&rsquo;autant que le support OVH ne m&rsquo;a pas vraiment aid\u00e9, en m&rsquo;orientant vers une solution avec passerelle, certes gratuite mais apportant d&rsquo;autres probl\u00e8mes. Je comprends cependant que le support OVH soit limit\u00e9 aux services et produits OVH. <\/p>\n\n\n\n<p>Pour moi, la solution f\u00fbt d&rsquo;acqu\u00e9rir un nom de domaine (co\u00fbt 5 euros par mois), car la proc\u00e9dure d&rsquo;acquisition de certificat SSL ne fonctionne pas avec une adresse IP. <\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Huile de coude<\/h1>\n\n\n\n<p>Bien que Seafile g\u00e8re lui m\u00eame l&rsquo;acquisition et le renouvellement des certificats SSL <strong>Letsencrypt<\/strong> via le script <strong>acme.sh<\/strong> j&rsquo;ai choisi de les g\u00e9rer moi m\u00eame , hors de l&rsquo;environnement docker avec <strong><a href=\"https:\/\/certbot.eff.org\/instructions?ws=nginx&amp;os=debianbuster\">certbot<\/a><\/strong>. Ceci implique de copier les certificats dans l&rsquo;espace partag\u00e9 Seafile et de red\u00e9marrer \u00e9ventuellement le service lors des renouvellements de certificats Letsencrypt tous les 90 jours, au moyen du service <strong>crontab<\/strong> Linux.<\/p>\n\n\n\n<p>Enfin, j&rsquo;ai mis en place le lancement automatique du cloud au red\u00e9marrage de Linux via <strong>systemctl<\/strong><\/p>\n\n\n\n<p>L&rsquo;essentiel de cette \u00ab\u00a0colle\u00a0\u00bb est r\u00e9alis\u00e9 par <a href=\"https:\/\/github.com\/mlebas29\/Wiki\/tree\/main\">quelques fichiers<\/a> \u00e0 installer sur le VPS. Il s&rsquo;agit de  fichiers de configurations et d&rsquo;un Shell script invoqu\u00e9 avec les options ad-hoc, soit manuellement pour la maintenance, soit automatiquement au d\u00e9marrage ou tous les 90 jours.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Cinqui\u00e8me \u00e9tape, garniture <\/h1>\n\n\n\n<p>Encore une grosse \u00e9tape, car il s&rsquo;agit de param\u00e9trer le produit et de l&rsquo;alimenter avec des donn\u00e9es, ce qui f\u00fbt encore une occasion d&rsquo;\u00e9valuer la stabilit\u00e9 du produit.<\/p>\n\n\n\n<p>L&rsquo;unique bug que j&rsquo;ai rencontr\u00e9 f\u00fbt un blocage de page Wiki lors de la sauvegarde de ladite page. Heureusement le fichier n&rsquo;a pas \u00e9t\u00e9 corrompu et le probl\u00e8me a pu \u00eatre r\u00e9par\u00e9.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">En conclusion<\/h1>\n\n\n\n<p>Je suis satisfait de Seafile et je n&rsquo;ai pas \u00e0 me plaindre d&rsquo;OVH qui pratique des tarifs raisonnables pour des prestations correctes.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">ANNEXE<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">SeaDrive<\/h2>\n\n\n\n<p>J&rsquo;ai d\u00e9couvert par la suite qu&rsquo;il existait un autre client Seafile, appel\u00e9 Seadrive. Celui l\u00e0 n&rsquo;est pas fondamentalement diff\u00e9rent du premier car il fait le m\u00eame travail de synchronisation. Il se pr\u00e9sente sous la forme d&rsquo;une extension du Syst\u00e8me de fichier, de mani\u00e8re identique au Drive Google, au lieu de se pr\u00e9senter sous la forme d&rsquo;une App.<\/p>\n\n\n\n<p>Je l&rsquo;ai install\u00e9 sur mon Mac mais assez peu utilis\u00e9, pr\u00e9f\u00e9rant le premier client Seafile, d&rsquo;autant qu&rsquo;avec SeaDrive je n&rsquo;ai pas r\u00e9ussi \u00e0 synchroniser mes biblioth\u00e8ques crypt\u00e9es.  <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Divers<\/h2>\n\n\n\n<p>\u00c0 signaler : C\u00f4t\u00e9 serveur, bien que les donn\u00e9es soient encrypt\u00e9es, les m\u00e9tadonn\u00e9es (taille des fichiers, noms de fichiers ou r\u00e9pertoires &#8230;) ne le sont pas.<\/p>\n\n\n\n<p>\u00c0 signaler pour les technophiles, Seafile utilise le tandem Open Source Nginx &#8211; MariaDB et non le traditionnel Apache &#8211; MySQL. C&rsquo;est la nouvelle g\u00e9n\u00e9ration.<\/p>\n\n\n\n<p>Le client Seafile Andro\u00efd n&rsquo;a pas de fonction de synchronisation. Il est donc de peu d&rsquo;int\u00e9r\u00eat car il n&rsquo;apporte rien de plus qu&rsquo;un navigateur standard. A mon avis plut\u00f4t moins, en particulier pour la consultation et l&rsquo;\u00e9dition des pages Wiki. De plus l&rsquo;affichage de page Wiki entraine le t\u00e9l\u00e9chargement d&rsquo;un fichier ce qui est anormal.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>J&rsquo;avais besoin de partager des fichiers avec mes proches sans qu&rsquo;il soit besoin pour eux d&rsquo;utiliser autre chose qu&rsquo;un navigateur. Je voulais aussi un stockage crypt\u00e9 c\u00f4t\u00e9 serveur et des aper\u00e7us en ligne plut\u00f4t qu&rsquo;un t\u00e9l\u00e9chargement c\u00f4t\u00e9 client, que ce &hellip; <a href=\"https:\/\/labeille.net\/?p=764\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-764","post","type-post","status-publish","format-standard","hentry","category-non-classe"],"_links":{"self":[{"href":"https:\/\/labeille.net\/index.php?rest_route=\/wp\/v2\/posts\/764","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/labeille.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/labeille.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/labeille.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/labeille.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=764"}],"version-history":[{"count":85,"href":"https:\/\/labeille.net\/index.php?rest_route=\/wp\/v2\/posts\/764\/revisions"}],"predecessor-version":[{"id":869,"href":"https:\/\/labeille.net\/index.php?rest_route=\/wp\/v2\/posts\/764\/revisions\/869"}],"wp:attachment":[{"href":"https:\/\/labeille.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/labeille.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=764"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/labeille.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}