SparkleShare, enfin une vraie alternative libre à Dropbox ?

Date: 6/07/2011 | Catégories: Open-source,Planet-libre,Reseau,Systeme,Web | Tags: ,,,

C'est en lisant un billet sur le blog de mister Korben que j'ai découvert SparkleShare, une solution libre se positionnant comme un concurrent direct de Dropbox.  Depuis quelques temps, on ne peut as dire que Dropbox soit en odeur de sainteté dans la sphère des libristes. Le changement plutôt maladroit de leur TOS et leur engagement timide dans les logiciels open-source n'y sont pas étranger.

Nous allons donc nous intéresser dans ce billet sur la solution SparkleShare qui se base sur des logiciels libres (GPL v3) et qui permet de gérer soit même son serveur ou seront stockées les données.

Les limites actuelles de SparkleShare

SparkleShare est actuellement en développement. La version 1.0 devrait sortir dans les prochains mois. A la date de rédaction de ce billet, les limites sont les suivantes:

  • Clients disponibles sous GNU/Linux et Mac OS X (les clients Windows, Android er IOS sont prévus)
  • 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 chiffrement (en natif) des données sur le serveur
  • Client développé en Mono (burk...), vivement les forks...

Les avantages de SparkleShare // Dropbox and Co

On passe ensuite aux avantages:

  • Les clients SparkleShare sont sous licence GPL version 3
  • 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)

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 ces briques sur un serveur dédié sous Debian 6.0 Squeeze.

On commence par installer les serveurs SSH et GIT (en root):

apt-get install git-core openssh-server

Puis on génère le dépôt GIT pour SparkleShare (avec votre utilisateur standard):

cd ~

git init --bare sparkleshare.git

Cette dernière commande va créer un sous répertoire nommé sparkleshare.git dans le répertoire $HOME de votre utilisateur (/home/USER/sparkleshare.git). Il est bien sûr possible de remplacer sparkleshare.git par un chemin absolu.Il est alors important que le répertoire soit en lecture/écriture pour l'utilisateur SSH que vous allez utiliser pour vous connecter.

Et voilà, c'est fini 🙂 Dingue non. Si vous utilisé un Firewall sur votre machine, il faut juste vérifier que le port TCP/22 (SSH) est bien ouvert.

Installation du client SparkleShare

Il n'existe pas à l'heure actuelle de dépot officiel pour Debian / Ubuntu (alors qu'il en existe un sous Fedora et Mac OS X). Il va donc falloir installer le client à la mimine. Rien de bien compliqué, il suffit de saisir les commandes suivantes dans un terminal de votre PC sur lequel vous voulez installer le client. J'ai validé cette procédure d'installation sur une distribution Debian 6.0 Squeeze.

On commence par installer les pré-requis (en root):

apt-get install openssh-client git-core gtk-sharp2 mono-runtime mono-devel monodevelop libndesk-dbus1.0-cil-dev nant libnotify-cil-dev libgtk2.0-cil-dev libwebkit-cil-dev intltool libtool python-nautilus libndesk-dbus-glib1.0-cil-dev

Remarque: la version actuelle du client GNU/Linux est devéloppé en langage Mono (#wtf), les pré-requis précédant vont donc installer un tas de librairies (environ 120 Mo sur mon PC de test)...

On récupère les sources de la dernière version du client SparkleShare:

mkdir -p ~/src

cd ~/src

git clone https://github.com/hbons/SparkleShare.git

Puis on compile/installe:

cd ~/src/SparkleShare

./autogen.sh

make

su -c "make install"

Configuration du client

Avant de commencer à utiliser votre client SparkleShare, il faut lui dire quel serveur utiliser et surtout comment établir une connexion sécurisée avec lui.

Si vous avez déjà une clés SSH publique (donc un fichier ~/.ssh/id_rsa.pub), il n'est pas nécessaire de faire l'étape suivante:

ssh-keygen

On télécharge ensuite notre clés cliente sur notre serveur (SERVER) en utilisant le compte utilisateur (USER) avec lequel vous avez installé le dépôt GIT:

ssh-copy-id USER@SERVER

Pour tester que l'étape précédente a bien fonctionné, il suffit de se connecter en SSH (ssh USER@SERVER) et de voir si la connexion se fait bien sans demande  de login/password.

On lance ensuite le client SparkleShare:

sparkleshare start

La fenêtre suivante devrait s'afficher:

On entre les informations, puis on passe à la configuration du serveur en entrant le le couple USER@SERVER ainsi que le répértoire absolu du dépôt GIT du serveur (/home/USER/sparkleshare.git/):

Enfin, on finalise la configuration:

Pour vérifier que le client est bien lancé, il suffit de regarder sa barre de tache:

Vérifier que cela marche bien

Il suffit de mettre sur votre PC client, un nouveau fichier dans le répertoire "sparkleshare" puis de vérifier que ce dernier est bien pris en compte sur votre serveur GIT:

cd ~/sparkleshare.git

git log

Author: nicolargo <pasde@spam.com>

Date: Wed Jul 6 14:12:17 2011 +0200

+ ‘webcam-192x192.jpeg’

Alors près à laisser tomber Dropbox ?