Installer SparkleShare, un Dropbox-like Open Source

 

Je me présente, je suis Julien, le tout dernier blogueur accepté par le souverain Messire FX, au sein de la communauté très fermée des chevaliers de la Table ronde du royaume de Cachem !

Ce n’est pas sans une certaine émotion que je prends mon clavier érodé afin de vous faire partager mes connaissances en matière de systèmes informatisés ! J’espère vous proposer des tests et tutos qui pourront vous servir à la fois chez vous ou à votre travail.SparkleShare ubuntu

La connaissance est la seule richesse qu’on puisse répandre sans que ceux qui la répandent s’appauvrissent.

Trêve de bavardage et passons aux choses sérieuses!

SparkleShare, qu’est-ce que c’est que ce truc-là?

SparkleShare (sparkleshare.org) est un outil open-source permettant la synchronisation « instantanée » de dossiers et fichiers, à l’instar de Dropbox (www.dropbox.com).

Ainsi, lorsqu’un dossier est partagé, tout son contenu se retrouvera dans le dossier de la machine liée.

Exemple :

  1. On crée le dossier FOLD1.
  2. On lie la machine A (Windows) au dossier FOLD1.
  3. On lie la machine B (Linux) au dossier FOLD1.
  4. On lie la machine C (Mac) au dossier FOLD1.
  5. Si nous déposons une image dans le dossier FOLD1 sur la machine A, cette image se retrouvera automatiquement dans les dossiers FOLD1 des machines B et C!

Bon, d’accord c’est pas mal, mais quel est l’intérêt de faire tout ça alors que Dropbox existe ???

Pour les particuliers :

L’intérêt, mes chers amis, c’est déjà (et surtout) que vous êtes maître du serveur sur lequel les données partagées sont stockées. Sachez tout de même qu’en utilisant un système comme Dropbox, Skydrive, GoogleDrive,…, toutes les données que vous stockez chez eux et deviennent LEUR propriété ! C’est un argument qui me paraît assez pertinent.

Ceci étant, qu’ils soient propriétaires de mes photos du baptême du petit Hugo est peut-être la dernière de vos préoccupations. Effectivement, vue comme cela!

L’autre aspect est celui de l’espace de stockage. Et oui… Dropbox et GoogleDrive limite à 5Go par défaut et Skydrive à 7Go.

Imaginez 500 Go de données totalement partagées entre vos différentes machines… Ça fait rêver! Et bien le rêve peut devenir réalité grâce à SparkleShare !

Pour les professionnels, les bénéfices de ce type de système sont tous trouvés :

  1. Maitrise de l’espace de stockage
  2. Réplication de dossiers en temps réèl entre 1 et X serveurs
  3. Le partage de documents entre collaborateurs

Déploiement

Prérequis

  • Adresse IP :
    • Une adresse IP fixe (Free,…) ou une adresse IP Dynamique avec DynDNS ou NoIP avec le paramétrage de votre routeur (installation en mode accès distant).
    • Une IP accessible du réseau (installation en mode local ou intranet).
  • Un ou plusieurs PC (virtuel ou physique) :
    • Connectable à Internet
    • Suffisamment d’espace de stockage selon vos besoins
  • Le(s) client(s) SparkleShare téléchargé selon votre machine (PC Windows/Linux ou Mac) sur sparkleshare.org
  • .NET Framework V4.0.30319 minimum installé sur le client Windows (Télécharger ici)
  • Linux Ubuntu Server (www.ubuntu.com)

Phase 1 : Installation du serveur

Pour ce tuto, nous utiliserons une version stable d’Ubuntu server que vous pouvez télécharger par ici. Nul besoin de prendre la version LTS (Long-Term Support) !

Un petit tuto vidéo, que je vous ai concocté : ici

Phase 2 : Installation du serveur SparkleShare

Une fois votre serveur prêt, connectez-vous dessus en ssh :

  • Sous windows :
  • Sous Linux / MacOSX :
    • Ouvrez un terminal et tapez la ligne de commande : ssh administrateur@[Adresse IP du serveur]
  • Directement sur le serveur :
    • Authentifiez-vous avec le compte utilisateur que vous avez créé lors de l’installation

Une fois dans le terminal, exécutez la commande suivante :

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

Entrez de nouveau le mot de passe. une fois l’opération terminée, vous devriez avoir un message de sortie comme celui-ci :

% Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
 100 7752 100 7752 0 0 13860 0 --:--:-- --:--:-- --:--:-- 18154

Le script serveur est installé!

Il faut maintenant configurer le serveur. Pour cela, exécutez la commande suivante :

sudo dazzle setup

Le script va installer les paquets manquants nécessaire au bon fonctionnement du serveur. Une fois la commande achevée, le message suivant apparaît :

1/4 | Installing the Git package...
 -> apt-get --yes install git
 Lecture des listes de paquets...
 Construction de l'arbre des dépendances...
 Lecture des informations d'état...
 Les paquets supplémentaires suivants seront installés :
 git-man liberror-perl
 Paquets suggérés :
 git-daemon-run git-daemon-sysvinit git-doc git-el git-arch git-cvs git-svn git-email git-gui gitk gitweb
 Les NOUVEAUX paquets suivants seront installés :
 git git-man liberror-perl
 0 mis à jour, 3 nouvellement installés, 0 à enlever et 43 non mis à jour.
 Il est nécessaire de prendre 6 824 ko dans les archives.
 Après cette opération, 15,3 Mo d'espace disque supplémentaires seront utilisés.
 Réception de :1 http://fr.archive.ubuntu.com/ubuntu/ quantal/main liberror-perl all 0.17-1 [23,8 kB]
 Réception de :2 http://fr.archive.ubuntu.com/ubuntu/ quantal/main git-man all 1:1.7.10.4-1ubuntu1 [634 kB]
 Réception de :3 http://fr.archive.ubuntu.com/ubuntu/ quantal/main git amd64 1:1.7.10.4-1ubuntu1 [6 165 kB]
 6 824 ko réceptionnés en 16s (402 ko/s)
 Sélection du paquet liberror-perl précédemment désélectionné.
 (Lecture de la base de données... 52990 fichiers et répertoires déjà installés.)
 Dépaquetage de liberror-perl (à partir de .../liberror-perl_0.17-1_all.deb) ...
 Sélection du paquet git-man précédemment désélectionné.
 Dépaquetage de git-man (à partir de .../git-man_1%3a1.7.10.4-1ubuntu1_all.deb) ...
 Sélection du paquet git précédemment désélectionné.
 Dépaquetage de git (à partir de .../git_1%3a1.7.10.4-1ubuntu1_amd64.deb) ...
 Traitement des actions différées (« triggers ») pour « man-db »...
 Paramétrage de liberror-perl (0.17-1) ...
 Paramétrage de git-man (1:1.7.10.4-1ubuntu1) ...
 Paramétrage de git (1:1.7.10.4-1ubuntu1) ...
 2/4 | Creating account "storage"...
 -> useradd storage --create-home --shell /usr/bin/git-shell --password "*" --user-group
 3/4 | Configuring account "storage"...
 -> mkdir --parents /home/storage/.ssh
 -> touch /home/storage/.ssh/authorized_keys
 -> chmod 700 /home/storage/.ssh
 -> chmod 600 /home/storage/.ssh/authorized_keys
 4/4 | Reloading the SSH config...
 -> /etc/init.d/ssh reload

Setup complete!
 To create a new project, run "dazzle create PROJECT_NAME".

Bon, la 1ère étape est terminée.

Phase 3 : Création d’un dossier partagé

  1. Dossier à accès public :
    Pour créer un dossier partagé public, c’est-à-dire qui sera accessible par tous les ordinateurs liés au serveur sans restriction, il suffit d’exécuter la commande suivante :

    sudo dazzle create DOSSIER1
  2. Dossier à accès privé :
    Pour créer un dossier partagé public, c’est-à-dire qui sera accessible par tous les ordinateurs liés au serveur sans restriction, il suffit d’exécuter la commande suivante :

    sudo dazzle create-encrypted DOSSIER_CRY1

Après la création d’un dossier, le message suivant devrait s’afficher :

Creating project "DOSSIER1"...
 -> /usr/bin/git init --bare /home/storage/DOSSIER1
 -> /usr/bin/git config --file /home/storage/DOSSIER1/config receive.denyNonFastForwards true
 -> echo "*.ISO -delta" >> /home/storage/DOSSIER1/info/attributes
 -> chown --recursive storage:storage /home/storage
 Project "DOSSIER1" was successfully created. To link up a SparkleShare client, enter the following details into the "Add Hosted Project..." dialog: Address: ssh://storage@XXX.XXX.XXX.XXX:22 Remote Path: /home/storage/DOSSIER1 To link up (more) computers, use the "dazzle link" command.

Voilà, vous savez tout sur la création de dossiers.

Phase 4 : Paramétrage de la connexion entre le serveur et le client

Une fois le client installé, une icône apparaît dans la barre de notification. Cliquez une fois dessus, un menu s’affiche.

M1 M2

Cliquez sur le bouton « Add hosted project… »

Setup_paramokSetup_oops

Si cette dernière fenêtre apparaît, c’est tout à fait normal !

En effet, le serveur est prêt, le client est prêt mais il faut maintenant les lier ensemble.
Pour cela, Rendez-vous à la Phase 5. Ah, elle est juste en dessous… Mais que c’est bien 😉

Phase 5 : Liaison d’un client au serveur

    • Sur le client : Il faut aller récupérer la chaine d’authentification du client, c’est-à-dire l’empreinte qui permettra au serveur de « connaitre » le client.

Pour cela, il faut se rendre dans le profile utilisateur, puis le dossier SparkleShare :

  • Sous Windows XP : C:\Documents And Settings\[UTILISATEUR]\SparkleShare
  • Sous Vista, 7 ou 8 : C:\Utilisateurs\[UTILISATEUR]\SparkleShare

Ensuite, ouvrez le fichier « [Utilisateur enregistré]’s link code.txt ».

Sélectionnez son contenu (Ctrl + A) et copiez-le (Ctrl + C).

Exemple de contenu :

ssh-rsa AAAAB3ABIwAAA.........Y7JCRaNrKF8ipz9mHwr26elQN.........aiclCn9lECE+qvL9Ew== VM-WIN7PRO-JC

Rendez-vous en ssh ou en terminal sur votre serveur (comme dans la Phase 2 de ce Tuto).

Exécutez la ligne de commande suivante :

sudo dazzle link

Le serveur vous demande alors de saisir le link code :

Paste the contents of "~/SparkleShare/Your Name's link code.txt"
 (found on the client) into the field below and press <ENTER>.

Link code:


Collez ou ré-écrivez le contenu du fichier précédemment Copié et tapez la touche « Entrée ».

Le serveur vous donnera l’information suivante, expliquant que le client peut désormais se connecter et de répéter l’opération pour tous les clients que vous souhaiteriez connecter :

The client with this link code can now access projects.
 Repeat this step to link more clients.

Voilà, c’est fait !

Vous pouvez maintenant répéter l’opération de la Phase 4. Sauf que cette fois-ci, la dernière fenêtre sera :

Setup_ok

Petite précision :
Si vous avez créé un dossier crypté (sudo dazzle create-encrypted DOSSIER_CRYPT1), une fenêtre vous demandera la saisie d’un mot de passe :

Setup_crypt_password

Ce qui vous permettra de protéger le contenu et de ne le rendre accessible que par vous qui connaissez le mot de passe. C’est sioux, ça…

Phase 6 : Utilisation

Cliquez une fois sur l’icône de notification de SparkleShare, un menu s’affiche.

M1-1

Si vous cliquez sur « DOSSIER1 », une fenêtre s’ouvrira dans ce dernier!

Si vous avez partagé ce dossier entre 2 ou N ordinateurs, tout ce que vous stockerez dedans sur l’ordinateur A sera disponibles dans les autres ordinateurs!

Conclusion :

Voilà ! Le 1er Tuto 100% réalisé par mes soins est terminé. N’hésitez pas à me remonter les moindres incompréhensions ou doutes sur ce Tuto !

J’ai encore beaucoup à apprendre de vous. J’espère avoir été à la hauteur de vos attentes. Si vous avez aimé, n’oubliez pas de partager !

  1. Merci à tous ( enfin tous les 2 pour l’instant 😉 )! Si vous rencontrez des difficultés, et il y en aura, Twittez moi! J’améliorerais le tuto!

  2. Bienvenue à toi julien. Tuto très intéressant, bien présenté et complet. Pour l’instant, je vais me satisfaire de la solution ownCloud mais dans un avenir plus ou moins proche j’opterai certainement pour SparkleShare et pourquoi pas sur mon p’tit Raspberry Pi.. Je garde le tuto sous le coude.

    1. Salut Ookpik! Ca serait pas mal que tu me donnes ton opinion avec la différence entre ownCloud et SparkleShare! Sachant que je suis en train de tester ownCloud et que finalement, il me paraît vraiment mieux car plus complet et interfaçable avec ActiveDirectory! De plus, il permet de synchroniser directement depuis Dropbox, Amazon ou même GoogleDrive et j’en passe!

      1. Salut Julien et pardon pour cette réponse tardive. je n’ai pas trop eu le temps d’aller plus loin que ton article avec sparkleshare. D’après ce que j’en ai lu, sparkleshare est plutôt un outil de travail collaboratif et de partage, il est biensûr sur le même principe que le cloud mais orienté travail collaboratif pour développeurs par exemple qui, travaillant sur un seul et même projet vont pouvoir accéder à tous les documents communs modifiés en temps réel. ownCloud est plutôt orienté stockage et partage de photos (afficheur d’images avec jquery), vidéos, musique (lecteur mp3 en javascript intégré), et documents.
        ownCloud parait plus simple pour l’installation de base (style installation WordPress), pour ce qui concerne les clients du cloud, une page web sert d’interface de gestion admin/client et possiblité d’intégrer webdav sur chaque machine « cliente » avec n’importe quel OS (Linux, Mac ou Windows) : un peu dans le style de la création d’un dossier partagé en phase 3 du tuto. Il faudrait vraiment tester ces deux outils qui ont l’ai bien l’un comme l’autre, offrant dans les grandes lignes les mêmes fonctionnalités. Pour ma part, d’après ce que je vois, j’ai plus une préférence pour ownCloud car de nombreux plug-ins existent et améliorent grandement ce soft, il est très souvent mis à jour (5 mises à jours en un peu plus d’un mois, je ne sais pas ce qu’il en est pour sparkleshare) et le dernier point est la possibilité d’installer un client webdav sur smartphone (app officiel de ownCloud sur le google store par exemple, mais il en existe bien d’autres) qui permet la syncronisation, l’envoi de données sur le cloud.
        Voilà; j’espère que j’ai pu répondre à quelques unes de tes interrogations. Je n’utilise pas du tout la syncronisation entre cloud perso et autres donc je ne pourrai en parler.
        Continue comme ça 🙂

        1. Merci Ookpik pour ton retour! Effectivement, lorsque j’ai fait mon tuto, je me suis rendu compte qu’il était d’une complexité certaine en terme de mise en œuvre! Pour ma part, je suis assez à l’aise concernant les lignes de commandes sous Linux, donc ça ne me posais pas plus de problème que ça! Ors, j’ai un collègue qui a lu le tuto, il est beaucoup moins au fait et j’ai constater qu’il galerait un peu! Mais bon, après avoir testé ownCloud moi même, j’ai constaté la facilité d’administration! Aussi, je changerais mon fusil d’épaule et je tutoterais ownCloud, mais sous Windows! Ça sera encore plus simple!

          Sinon, si ça ne vous gènes paS les lignes de commandes, je suis en train de rédiger un truc de oufff pour vous!!! On va bien s’amuser! Le sujet est : « Installation de 2 SANs répliqués avec haute disponibilité » conjointement avec OpenMediaVault, DRBD et iSCSI! Vous m’en direz des nouvelles!

          Je travail jour et nuit pour vous le sortir avant les vacances! Ça touche à sa fin mais plus j’avance et plus j’en rajoute! Va falloir que je m’arrête à un moment!

          Bref, Merci et surveillez le (fabuleux) site Cachem.fr!

          @ très vite!!!

        2. Merci Ookpik pour ton retour! Effectivement, lorsque j’ai fait mon tuto, je me suis rendu compte qu’il était d’une complexité certaine en terme de mise en œuvre! Pour ma part, je suis assez à l’aise concernant les lignes de commandes sous Linux, donc ça ne me posais pas plus de problème que ça! Ors, j’ai un collègue qui a lu le tuto, il est beaucoup moins au fait et j’ai constater qu’il galerait un peu! Mais bon, après avoir testé ownCloud moi même, j’ai constaté la facilité d’administration! Aussi, je changerais mon fusil d’épaule et je tutoterais ownCloud, mais sous Windows! Ça sera encore plus simple!

          Sinon, si ça ne vous gènes paS les lignes de commandes, je suis en train de rédiger un truc de oufff pour vous!!! On va bien s’amuser! Le sujet est : « Installation de 2 SANs répliqués avec haute disponibilité » conjointement avec OpenMediaVault, DRBD et iSCSI! Vous m’en direz des nouvelles!

          Je travail jour et nuit pour vous le sortir avant les vacances! Ça touche à sa fin mais plus j’avance et plus j’en rajoute! Va falloir que je m’arrête à un moment!

          Bref, Merci et surveillez le (fabuleux) site Cachem.fr!

          @ très vite!!!

          P.S. Je reposte ce message car il n’est pas apparu!

    2. Sans parler de l’interface d’administration qui est plus facile et agréable qu’en ligne de commande! Mais, je vais m’y intéresser plus profondément et peut-être faire un pitit tuto!!!

  3. intéressant. Malheureusement le client pour tablette ne permet pas d’uploader des fichiers… du coup c’est vraiment à réserver aux OS classiques.

  4. Bonjour,

    Très bien comme tuto, c’est une bonne idée et ça aide bien pour faire fonctionner cet outil très pratique.

    J’aimerai que les dépôts ne soient pas dans la home sous /home/storage mais ailleurs genre un disque data afin de ne pas pourrir mon disque système.
    Merci
    Olivier

    1. Salut Olivier et désolé pour les 100 ans que j’ai mis pour te répondre!!!

      Tu peux t’en sortir avec 2 solutions :
      1 – tu modifies le point de montage de ton /home sur un disque dédié (très facile avec LVM)
      2 – tu crées un dossier à l’endroit que tu souhaites et tu crées un lien symbolique dans le /home

      Voilou!

    2. Salut Olivier et désolé pour les 100 ans que j’ai mis pour te répondre!!!

      Tu peux t’en sortir avec 2 solutions :

      1 – tu modifies le point de montage de ton /home sur un disque dédié (très facile avec LVM)

      2 – tu crées un dossier à l’endroit que tu souhaites et tu crées un lien symbolique dans le /home

      Voilou!

  5. Re :/

    Je me suis arrêté à : « Collez ou ré-écrivez le contenu du fichier précédemment Copié et tapez la touche « Entrée ». »

    Je pense que tu parlais du Client ID. Impossible de le coller dans le terminal Ubuntu Server (installé avec VirtualBox). J’ai tenté de recopier, mais après quelques erreurs, j’ai lâché l’affaire.
    En ce qui concerne Putty, il n’a jamais fonctionner, enfin, se connecter… Accès refusé…

    Merci pour ce tuto tout de même !

    1. Salut Naï et désolé pour le temps que j’ai mis à te répondre.

      Pour ce qui est de putty, il est possible que tu n’ai pas installé le serveur SSH sur ton Ubuntu. Pour celà, connecte toi sur la console (VirtualBox), ouvres un terminal et tapes la commande suivante :

      sudo apt-get install openssh-server

      suite à cela, tu pourras te connecter avec putty.

      C’est dommage, tu n’étais pas loin de la fin! Essais de persévérer et tu y arriveras sans problème cette fois!

      Bon courage!

      1. Merci pour ta réponse ! 🙂

        À propos de Putty, j’avais déjà installé openssh-server, comme indiqué dans le tuto vidéo d’installation du serveur. Par contre, je n’ai pas effectué toutes les démarches concernant les partitions. J’ai laissé l’install tout faire, peut-être n’aurait-je pas du ?

        En tout ça, je ne parviens toujours pas à utiliser Putty. Pour ce qui est du serveur, j’ai un problème avec Dazzle : http://www.hapshack.com/images/M4Ks7.png... C’est peut-être pour cette raison que Putty ne fonctionne pas…

        Concernant cette commande :
        sudo curl https://raw.github.com/hbons/Dazzle/master/dazzle.sh –output /usr/bin/dazzle && sudo chmod +x /usr/bin/dazzle
        J’ai eu quelques soucis. Le dossier n’existe pas. Je l’ai crée. J’ai découvert « cd .. », « cd » et « mkdir » 😀 Peut-être mal crée, qui sait ?

        Je sais que je suis une nouille, mais la promesse en vaut la peine ^^ Aussi, persévérer c’est mon fort, j’espère que l’auteur est persévérant également avec les noobs 😀

        ps: est-ce que le fait d’utiliser VirtualBox pour utiliser Ubuntu Server peut avoir un quelconque incident ?

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.