SparkleShare, le Cloud Storage version libre

| Fleury Tristan | Nicolas Hennion |

Cet article s'adresse aux personnes désireuses de tester une solution de « Cloud Storage » et de synchronisation de fichiers. L'application utilisée est une solution libre sous licence GPL v3 et vient se positionner en alternative à des logiciels comme Dropbox.

Commentez

- Titre : SparkleShare, le Cloud Storage version libre

- Auteurs : Fleury Tristan, Nicolas Hennion

- Parution : 2 novembre 2013

- Mise à jour : 2 novembre 2013

- Public visé :

- Licence : Copyright ® 2013 Viduc. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction

- II. Avantages et inconvénients

- III. Installation du serveur SparkleShare

- IV. Création d'un projet sur le serveur

- V. Installation du client SparkleShare

- V-A. Client Linux

- V-B. Client Windows

- VI. Configuration des clients

- VI-A. Enregistrer les clients

- VI-A-1. ClientID sous Linux

- VI-A-2. ClientID sous Windows

- VI-A-3. Connexion au serveur

- VI-B. Création du projet

- VI-C. connexion des clients

- VII. Utilisation

- VIII. Remerciements

I - Introduction

Qu'est-ce que le Cloud Storage ?

Notons, tout d'abord, que le Cloud Storage s'intègre dans la nébuleuse Cloud Computing et qu'il va accroître progressivement le niveau d'externalisation des activités informatiques des entreprises et des individus dans les années à venir. Il ne remplace pas les technologies, infrastructures et fonctionnalités du stockage, de la sauvegarde/restauration et de l'archivage. Il propose une autre approche de celles-ci, caractérisée par la notion de services.

Les prestations de Cloud Storage ont un style de stockage dans lequel des capacités de stockage évolutives et élastiques sont fournies en tant que service, à des clients externes ou internes à l'aide de technologies Internet.

SparkleShare, distribué sous licence libre GPL, est une application multiplate-forme qui propose une solution viable pour ce nouveau besoin. La version utilisée pour cet article est la 1.2.

II - Avantages et inconvénients

Il faut noter certaines limitations connues à ce jour :

- pas d'interface Web pour accéder à vos fichiers depuis un simple navigateur (il faut passer par un client SparkleShare) ;

- pas de synchronisation LAN to LAN. Si vous avez deux PC sur le même réseau local, la synchronisation passera automatiquement par le serveur (donc par Internet) ;

- pas de gestion fine des droits. Une machine autorisée à se connecter en shh sur le serveur peut potentiellement avoir accès à tous les projets SparkleShare hébergés.

Cependant, de nombreux avantages encouragent la mise en place et l'utilisation de l'application :

- les clients SparkleShare sont sous licence GPL version 3 ;

- clients disponibles sous GNU/Linux et Mac OS X et Windows (Vista ou supérieures) ;

- client développé en C# ;

- chiffrement (en natif si besoin) des données sur le serveur ;

- les serveurs SparkleShare peuvent se baser sur des logiciels libres (GIT et serveur SSH) ;

- possibilité d'installer son propre serveur sur une machine dédiée ou d'utiliser un serveur GIT public (GitHub, Gitorious…) ;

- chiffrement du lien client vers serveur (utilisation d'un tunnel SSH).

III - Installation du serveur SparkleShare

Comme nous venons de le voir, dans le monde SparkleShare, un serveur est en fait une machine accessible depuis Internet (ou tout autre réseau) à partir d'une connexion SSH et proposant un serveur GIT.

Attention : si vous ne disposez pas d'un serveur dédié, il est également possible d'utiliser un hébergement gratuit chez GitHub. Dans ce cas, il faut garder à l'esprit que vos fichiers seront publics (il est donc nécessaire de les chiffrer).

Nous allons donc installer un serveur de version GIT sous Ubuntu-Server 13.04 64 bits.

Le site de SparkleShare nous propose un script d'installationque nous allons utiliser.

Lancez le serveur, passez en root puis lancez la commande suivante :

installation serveur

curl https://raw.github.com/hbons/Dazzle/master/dazzle.sh \
--output /usr/bin/dazzle && chmod +x /usr/bin/dazzle

Ensuite, initialisez le serveur puis entrez :

Initialisation serveur

dazzle setup

Certains paquets supplémentaires devront être installés. Le script s'occupe de tout !

Puis le script s'occupera de tout paramétrer :

Par sécurité, rebootez le serveur.

IV - Création d'un projet sur le serveur

Pour créer un projet (répertoire qui sera partagé aux clients) sur le serveur, rien de plus simple. Toujours dans la console, entrez :

création projet

dazzle create <nom du projet>

Le dossier du projet sera créé dans /home/storage/<nom du projet>.

Si vous utilisez un Firewall sur votre machine, il faut juste vérifier que le port TCP/22 (SSH) est bien ouvert. Si vous êtes derrière un routeur ou box, il faudra rediriger le port 22 vers l'IP de votre machine (pour un accès externe).

V - Installation du client SparkleShare

V-A - Client Linux

Il existe un dépôt officiel pour Debian/Ubuntu mais le client n'est pas à jour. Nous allons donc installer manuellement le client proposé sur le site de SparkleShare.

Commençons par télécharger le paquet :

Téléchargement

wget https://bitbucket.org/hbons/sparkleshare/downloads/sparkleshare-linux-1.2.tar.gz

Avant de lancer l'installation du client, il faut installer quelques paquets supplémentaires :

pour Ubuntu :

Installation paquets Ubuntu

sudo apt-get install libappindicator0.1-cil-dev gtk-sharp2 mono-runtime mono-devel \
monodevelop libndesk-dbus1.0-cil-dev nant libnotify-cil-dev libgtk2.0-cil-dev mono-mcs \
mono-gmcs libwebkit-cil-dev intltool libtool libndesk-dbus-glib1.0-cil-dev

Pour Debian :

Installation paquets Debian

sudo apt-get install gtk-sharp2 mono-runtime mono-devel monodevelop libndesk-dbus1.0-cil-dev \
nant libnotify-cil-dev libgtk2.0-cil-dev mono-mcs mono-gmcs libwebkit-cil-dev intltool libtool \
libndesk-dbus-glib1.0-cil-dev desktop-file-utils

Pour les autres distributions, voyezici.

Décompressez l'archive précédemment téléchargée :

Décompresser archive

tar -xvzf sparkleshare-linux-1.2.tar.gz

Entrez dans le dossier extrait :

Entrer dossier

cd sparkleshare-1.2

Lancez ensuite ces commandes :

Compilation installation

$ ./configure (or ./autogen.sh if you build from the repository)
$ make
$ sudo make install

V-B - Client Windows

Le client Windows est prévu pour des versions Vista et supérieures. Téléchargez-le sur le site officiel.

Lancez l'installation en double-cliquant sur l'exécutable téléchargé.

Cliquez sur « Next ».

Sélectionnez « I accept the terms in the License Agreement » puis cliquez sur « Next ».

Cliquez sur « Next ».

Cliquez sur « Install ».

Cliquez sur « Finish ».

VI - Configuration des clients

VI-A - Enregistrer les clients

Pour connecter les clients sur le serveur, il faut préalablement les enregistrer sur celui-ci. Pour faire cette opération, il faut récupérer le Client ID.

VI-A-1 - ClientID sous Linux

Si votre client n'est pas lancé, vous pouvez le démarrer en allant dans le menu, section « Internet » puis SparkleShare. Vous devez avoir une petite icône dans la barre d'état en haut :

Cliquez sur cette icône, descendez sur « SparkleShare » puis « Client ID » et enfin « Copy to clipboard ». Cette action enregistre votre clé ssh qui doit être transmise au serveur dans le presse-papier.

VI-A-2 - ClientID sous Windows

Lancez votre client si ce n'est pas déjà fait. Dans la barre des tâches en bas à droite, vous devriez avoir l'icône de SparkleShare :

Cliquez dessus, puis sur « SparkleShare », « ClientID » et « Copy to clipboard ». Cette action enregistre votre clé ssh qui doit être transmise au serveur dans le presse-papier.

Attention, si lors de la connexion au projet le serveur ne vous accepte pas, cela peut être dû au mauvais formatage de la clé ssh par Windows (espace dans la clé). Dans ce cas-là, ouvrez le bloc note, collez la clé, supprimez tous les espaces puis recopiez la clé à partir de là pour l'opération de connexion au serveur.

VI-A-3 - Connexion au serveur

Que ce soit sous Linux ou Windows, il faut se connecter au moins une fois sur le serveur en ssh de façon classique. Sous Linux, cette opération ne devrait pas poser de souci. Sous Windows, il faudra utiliser un logiciel tiers (PuTTy par exemple…).

Une fois connecté, passez en root puis entrez la commande suivante :

ClientID

dazzle link

Lorsqu'il vous est demandé d'entrer le Client ID, faites un clic droit puis collez.

VI-B - Création du projet

Avant de connecter un client, il faut créer un projet sur le serveur. Un projet est un dossier accessible à un groupe de clients (utilisateurs) via le protocole ssh et l'application SparkleShare.

Pour créer le projet, ouvrez un terminal (boîte de commande) sur le serveur en mode root. Entrez ensuite la ligne suivante en remplaçant PROJECT_NAME par le nom de votre projet :

Projet

dazzle create PROJECT_NAME

Si vous allez voir dans le dossier /home/storage, vous verrez un nouveau dossier au nom de votre projet.

Le serveur vous indique les données de connexions qu'il faudra utiliser pour connecter les clients sur ce projet :

VI-C - connexion des clients

Lorsque vous lancez le client pour la première fois, une première fenêtre apparaît. Entrez votre nom et votre e‑mail puis cliquez sur « Continue » :

L'application vous informe qu'elle va créer un dossier sur votre ordinateur. Cliquez sur « Continue » (ou Skip tutorial si vous préférez passer le tutoriel).

Lisez les écrans suivants en cliquant sur « Continue ».

Le dernier écran vous redonne la clé ssh (que nous avons déjà exportée sur le serveur) et vous propose d'ajouter SparkleShare dans les raccourcis. Cliquez sur « Finish ».

Pour vous connecter à un projet, cliquez sur l'icône de SparkleShare en bas à droite dans la barre des tâches (pour Windows) ou en haut à droite pour Linux… Cliquez ensuite sur « SparkleShare » puis « Add hosted project… ».

Une nouvelle fenêtre s'ouvre. Sélectionnez « On my own server ». Il faut renseigner l'adresse du serveur et l'emplacement sur le serveur. Souvenez-vous, ces informations nous ont été données par le serveur lorsque nous avons créé le projet…

Il faut bien sûr renseigner le nom de votre serveur après le @ (attention, bien penser au dns… mettre le nom complet si votre serveur doit être joint via Internet ex. : monserveur.monfai.fr).

Si l'opération s'est bien déroulée, vous devriez avoir cet écran :

Cliquez sur « Finish ».

Sous Windows, si l'opération ne s'effectue pas correctement, il se peut que l'enregistrement de la clé ssh de votre client ne soit pas correcte. Reportez-vous au paragraphe V.A.2.

VII - Utilisation

Désormais, vous devriez avoir un nouveau dossier dans votre espace utilisateur. Sous Windows, il se trouve dans C:\Users\<user>\SparkleShare\<PROJET>. Sous Linux, il se trouve dans /home/<user>/SparkleShare/<PROJET>.

Dans le dossier créé précédemment, un fichier texte nommé SparkleShare existe déjà. Créez un document dans un des systèmes, il devrait apparaître dans l'autre peu de temps après.

VIII - Remerciements

Merci à Claude Leloup pour sa correction.

Merci à Lana Bauer pour ses idées et encouragements.

Merci à Alexandre Laurent pour sa première adaptation du document de Nicolargo

Et enfin merci à Nicolargo pour son article sur lequel nous nous sommes appuyés.