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 ?

  • J’avais déjà noté son existence, mais je l’ai mis dans un coin tant qu’il n’y aura pas de client Windows (et oui, j’ai encore des machines/VM Windows).

  • Moi aussi j’attend la version Windows, bien que je ne l’utilise presque jamais…
    J’ai pas testé il y a aussi la possiblité de copier le lien public par un simple clic droit ?

  • Petite coquille je suppose : « Pas de synchronisation LAN to LAN. Si vous avez deux PC sur le même réseau local, la synchronisation passera automatiquement »..?
    par internet non ? 🙂
    Ce qui est bien c’est les briques utilisées qui sont standard. Mais restent encore quelques lignes de code et un client windows surtout ;-).
    Et surtout des utilisateurs non geek pour généraliser en masse donc leur proposer une partie serveur toute prête sinon on va rester entre geek encore une fois si on les oublis…

    • Merci pour la coquille..

      Le fait de pouvoir utiliser un serveur GIT hébergé par exemple chez GitHub permettra peut être d’attirer les non gekk. Mais il faut avouer que, à l’heure actuelle, l’installation ne peut pas être faite par mamie Michou…

  • Je ne suis pas près à laisser tomber dropbox et ceux pour plusieurs raisons :

    – Pas de clients Windows et iOS (qui sont deux de mes terminaux principaux) pour le moment
    – La sécurisation du serveur est garantie par nous et uniquement par nous… pas sure que je m’y risque
    – Avec DropBox (bien qu’il ne soit pas parfait il faut le reconnaitre : il n’y a qu’à voir la récente faille qui a permis de se connecter sans mots de passes) mes données sont au moins garantis 🙂

    En revanche très bonne initiative, je passerai peut être à SparkleShare quand le projet sera plus mature 🙂

    • La sécurisation peut aussi être l’affaire de GitHub si vous y disposez d’un compte payant.

      Sinon, avancer l’argument de sécurité pour rester chez Dropbox… Euh. 😀

      • Disons que si jamais j’héberge mes données moi même et que je ne prévois pas de la redondance etc… si mon disque dur lâche…. :/

        DropBox n’est pas le must du must en matière de sécurité mais je pense que c’est un peu bon compromis pour moi étends données le peu de données que je mets sur le Cloud (< 3Go)

  • C’est super Sparkleshare, jusqu’à ce qu’on essaie de synchroniser plus de 3 pauvres fichiers textes.

    Dès que j’ai mis quelques Mo de matos, ça a arrêté de synchroniser correctement entre mes deux machines… :/

    Quant aux forks possibles : Sparkleshare est juste un gros client git avec un peu de logique en plus, donc on peut au moins copier son comportement avec git pour faire une implémentation, mais pas un fork à proprement parler.

  • Merci pour ce tutoriel,
    Malheureusement je ne suis pas encore prÊT à me passer de Dropbox car le PC du boulot est sous Windows…

  • Assez d’accord avec Michel qui dit « Sparkleshare est juste un gros client git »…
    Pour ma part, je suis devenu un inconditionnel d’Unison (ca marche avec les 3 OS de base). Ca demande certes de mettre un chouia les mains dedans (excepté avec Unison-gtk) mais ca reste l’Outil de Synchro absolu…
    Cerise sur le gâteau: Unison est également un très bel outil de Backup. Et ca n’a rien à voir avec rsync.
    Pour de plus ample renseignement (des liens, des ressources,…)

    • ummyssalu

      Unison et Dropbox/Sparkleshare/dvcs-autosync ne répondent pas au même besoin.

      En effet avec Unison, la synchronisation est à lancer manuellement, par contre la flexibilité et la personnalisation offerte sont vraiment géniales.

      Avec une solution comme Dropbox/Sparkleshare/dvcs-autosync la synchronisation se fait de façon continue.

      Personnellement, j’utilise les 2, unison pour la partie sauvegarde de données, et s’assurer qu’un certain nombre d’informations sont identiques entre mes différentes machines. tandis, que l’autre solution, elle sert pour des données pas forcément aussi critiques, mais qui « vivent » beaucoup plus que celles mises à jour par unison.

      • ummyssalu nous dit: « la synchronisation est à lancer manuellement ». C’est faux.
        L’intérêt est de coupler Unison à incron (pour ceux qui connaissent incron… c’est exactement ce que fait DBox, mais en mieux)

  • Pour terminer je reste à votre dispo, si vous souhaitez des ressources, des explications sur ma façon de faire (avec incron au lieu de cron par exemple)…
    ++
    Eric

  • There is an SparkleShare Ubuntu PPA: ppa:warp10/sparkleshare – the PPA is owned by an Ubuntu / Debian contributor so I guess It’s safe to use.

    It also looks like it’s going to be added to the Debian repos (and Ubuntu too) soon.

    As usual, sorry for commenting in English… 🙂

    • Thx for the tip Andrew. I will have a look on it !

  • mkton

    git clone plutôt que git commit, non?

  • Juste pour information, Hbons, le développeur principal de SparkleShare a commencé à travailler sur une interface Web pour visualiser ses fichiers directement sur le serveur à partir d’un simple navigateur.

    Le projet est a suivre ici:

    https://github.com/hbons/SparkleShare-Dashboard

    Il sera basé sur NodeJS 🙂 !

  • « 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) »

    Je me met en mode Geek pour répondre: pas nécessairement, si un serveur DNS est présent sur ton LAN. Mais effectivement, cela rajoute de la complexité, et la nécesiité d’un serveur DNS privée n’est pas évidente pour tout le monde.

  • Pour info, Dropbox vient de ré-écrire les paragraphes de son TOS qui posaient problèmes:

    http://blog.dropbox.com/?p=867

    Il y a du mieux…

  • Laurent

    syncany semble etre aussi une bonne solution, mais a ce jour pas encore de release. fin juillet d’apres le twitter

    • Pour ma part, j’attends également une release de syncany. Ce soft me parait vraiment prometteur (simple, flexible…)

  • Louna12

    Bonjour,

    Ce site a l’air d’être une très bonne alternative à Dropbox !

    Cependant, j’en utilise une autre « Axalot » qui me convient parfaitement. La connaissez-vous ?

    C’est simple et rapide et il y a même une appli Iphone et une autre pour Android.

    Voilà mais je crois qu’il y en a plein d’autres qui existent aussi mais celle là me convient parfaitement bien et ils insistent beaucoup sur le fait que les données sont ultra sécurisées.

  • effectivement pas de version sous windows c’est bien dommage mais je garde de coté

    ca sera bien sorti un jour …

    sympa ton blog >> RSS

    Sebastien

  • nicoo

    Just got it to work with Snow Leopard 10.6.7 and 10.6.8. I hope it helps.

    http://www.instructables.com/id/SparkleShare-for-OSX-a-Dropbox-alternative/

  • Salut à tous !
    Merci pour ce tuto Nico !
    Un de plus parmis tes innombrables et excellent billets !

    Pour info j’ai donc testé ce fameux Sparkleshare. Pour les fichiers je n’ai pas rencontré de problème de synchro ( même sur plusieurs fichiers ). En revanche…je n’ai pas réussi à synchroniser un dossier. Pourtant bien présent dans « nautilus », j’ai l’impression que Sparkleshare ne le voit pas !!!
    Je ne sais pas si c’est une limitation de Sparkleshare où si c’est un problème avec mon installation.
    Quelqu’un aurait une idée ?
    Merci.

    • Bonjour à tous !

      Et bien je vais répondre à mon propre post ci dessus.
      En fait le dossier que j’essayais de synchroniser était un dossier vide. Si je met un fichier à l’intérieur et bien la synchronisation se fait correctement ( dossier créé et fichier à l’intérieur ) !
      Donc à prendre note…pas de dossier vide dans notre dépôt « .git » !

      A bientôt !

  • Pingback: Comment installer l’application SparkleShare sur son Mac | Sublimigeek | Geek, Astuces, High Tech et découvertes du Net()

  • cooltrane

    il existe aussi owncloud qu’est un projet kde, il est en version 1.2 et une version 2.0 est en beta actuellement avec du versioning en plus et un client.

    Pour l’instant c’est un serveur et accessible via page web. Gros avantage que nous sommes beaucoup à chercher, il me semble, c’est hébergeable sur son serveur plutôt que de passer par une autre boite…

    C’est sous licence libre aussi.

    C’est pas du mono !

    Inconvénient, pour l’instant la version 1.2 ne permet que de connecter un webdav.

    La 2.0 est prévue pour fin 2011.

    http://owncloud.org

  • Merci pour ce tuto, très complet comme toujours.
    Ca fait un moment que je regarde Dropbox et consoeurs (Ubuntu One,…). Je m’étais aussi penché sur Unison il y a quelques années pour un besoin ponctuel.
    Mais je me pose une question : à quoi utilisez-vous ces systèmes de synchro automatique _dans_la_pratique_ ? Est-ce vraiment utile ? Quelle valeur ajoutée (par rapport à un backup plannifié, à une copie manuelle via FTP ou sur clef USB,…) ?

    Merci

  • ayo

    Si tu as un dédié et un groupe d’amis, tu peux partager des gigas et des gigas, sa s’appelle du f3f.

  • @ thierry : sauvegarde externe, synchronisée permettant de bénéficier d’un historique, c’est de plus incrémental, multi plateforme …

    c’est l’équivalent du ftp / ssh / cron en web2.0

    pas trop d’interet pour un admin sys (quoique) mais plus pour le user …

    AC

  • Edillendah

    A propos du client Windows:

    J’ai suivi la procédure d’installation de leur site (…) ensuite j’ai des problèmes pour effectuer l’enregistrement sur mon serveur dédié (une vm sous Centos 6.2), lorsque j’ajoute un nouveau projet, j’obtiens une erreur « Something went wrong » … pas très informatif.
    J’ai bien rentré l’ip et le path, mais on dirait qu’il n’essaie même pas de s’enregistrer (via un tcpdump sur le serveur, rien ne passe).
    Pourriez-vous me filer un tuyau ? 🙂

    • Edillendah

      [Résolu]
      Bon 🙂 j’ai trouvé mon erreur. Dans le champ ip, il fallait mettre git@ip et pas ip tout court.

  • NicoLarve

    Le client Windows pour sparkleshare à l’air disponible, mais je ne connais pas son état de maturité:

    http://sparkleshare.org/windows-downloads/

  • Pingback: Stockage en ligne | Pearltrees()

  • Salut 🙂 et merci pour le tuto fonctionement impec sur debian avec deja un gitlab test avec client ubuntu et mac os Ok.
    Par contre quelqu’un saurait il configurer l’apps iphone ? Je comprend pas comment elle se configure, (histoire de QR Code…) merci d’avance a celui qui pourra m’éclairer :))

  • Pingback: Serveurs de fichier | Adrien Dorsaz()

  • Pingback: Petite revue des solutions libres de synchronisation | Sciunto()

  • Pingback: Stockage en ligne | Pearltrees()