SparkleShare, un Dropbox-like Open Source

Présentation

SparkleShare (site : http://sparkleshare.org/) est un outil open-source de synchronisation « instantanée » de dossiers et fichiers, comme Dropbox (http://www.dropbox.com/).

Ainsi, lorsqu’un dossier est partagé, tout son contenu se retrouvera dans le dossier des machines liées.

Exemple : Créez le dossier FOLD1Liez la machine A (Windows) au dossier FOLD1.Liez la machine B (Linux) au dossier FOLD1.Liez la machine C (Mac) au dossier FOLD1.Si vous déposez une image dans le dossier FOLD1 sur la machine A, cette image se retrouvera automatiquement dans les dossiers FOLD1 des machines B et C.

Avantages

Maîtrise du serveur sur lequel sont stockées les données partagées. Les données stockées sur les serveurs Dropbox, Skydrive, GoogleDrive, etc. deviennent LEUR propriété...Pas de limite de l’espace de stockage (Dropbox et GoogleDrive limitent à 5Go par défaut et Skydrive à 7Go)Réplication de dossiers en temps réelpartage de documents entre collaborateurs

Pré-requis

une adresse IP :adresse IP fixe (Free,…) ou dynamique avec DynDNS ou NoIP, le routeur étant en mode accès distantou adresse IP locale accessible du réseauUn ou plusieurs PCs (virtuels ou physiques) :connectés à Internetavec suffisamment d’espace de stockage selon besoinsclient SparkleShare téléchargé sur sparkleshare.org selon la machine (PC Windows/Linux ou Mac).NET Framework V4.0.30319 minimum installé sur le client Windows (Télécharger ici)Linux Ubuntu Server (www.ubuntu.com)

Installation du serveur SparkleShare

Connectez-vous en ssh sur la machine serveur, selon le cas :

sous windows, à l’aide de puttysous Linux / MacOSX : Ouvrez un terminal et tapez la ligne de commande :

ssh administrateur@[Adresse IP du serveur]

ou directement sur le serveur : Authentifiez-vous avec le compte utilisateur créé lors de l’installationou, sous n'importe quel OS, utilisez le module complémentaire FireSSH dans FirefoxDans 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 le mot de passe ; une fois l’opération terminée, il s'affiche ceci :

% 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é. Pour configurer le serveur, exécutez la commande suivante :

sudo dazzle setup

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

pi@framboise ~ $ sudo dazzle setup 1/4 | Installing the Git package... -> The Git package has already been installed (version 1.7.10.4). 2/4 | Creating account "storage"... -> Account already exists. 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". pi@framboise ~ $

Création des dossiers partagés

Pour créer un dossier partagé public, accessible par tous les ordinateurs liés au serveur sans restriction, il suffit d’exécuter la commande suivante :

sudo dazzle create Public

Pour créer un dossier partagé privé, il suffit d’exécuter la commande suivante :

sudo dazzle create-encrypted Prive

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

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

Installation des clients

Sur une machine Ubuntu

Installer les paquets :Installez le paquet sparkleshare,libwebkit1.1-cil,git-core,python-nautilus ou en ligne de commande :

$ sudo apt install sparkleshare libwebkit1.1-cil git-core python-nautilus

Lancer sparkleshare :

$ sparkleshare start

Renseigner quelques informations (nom, prénom, adresse mail) :

un petit tuto s'affiche.

Sur une machine Windows

Paramétrage de la connexion entre le serveur et les clients

Liaison d’un client au serveur

Une fois passée cette présentation, il va falloir relier le client avec le serveur.

Sur le client à relier

Récupérez la chaine d’authentification du client, c’est-à-dire l’empreinte qui permettra au serveur de connaître le client.

Pour cela, allez dans le profil utilisateur, dossier SparkleShare :

Sous Windows XP : C:\Documents And Settings\[UTILISATEUR]\SparkleShareSous Vista, 7 ou 8 : C:\Utilisateurs\[UTILISATEUR]\SparkleShareSous Ubuntu :Quand le client est installé, une icône apparaît dans la barre de notification.Cliquez une fois dessus, un menu s’affiche.Cliquez sur SparkleShare : le répertoire SparkleShare de votre homedir s'ouvre.Ce dossier contient un fichier texte r [Utilisateur enregistré]‘s link code.txt contenant la clé publique du client

Exemple de contenu : ssh-rsa AAAAB3ABIwAAA.........Y7JCRaNrKF8ipz9mHwr26elQN.........aiclCn9lECE+qvL9Ew== VM-WIN7PRO-JC
Sélectionnez son contenu (Ctrl+Alt) et copiez-le dans le bloc-notes (Tout sélectionner = Ctrl+Alt puis copie = Ctrl+Ctrl).

Sur le serveur, via ssh

Retournez sur le serveur via ssh ou en terminal et lancez la commande suivante :

sudo dazzle link

Le serveur demande de saisir le link code :

pi@framboise ~ $ sudo dazzle link Paste your Client ID (found in the status icon menu) below and press <ENTER>. Client ID:
Collez le contenu du fichier précédemment copié et tapez la touche ↵ Entrée.

Le serveur affiche l’information suivante :

... Client ID: xxxxx...xxxxx The client with this ID can now access projects. Repeat this step to give access to more clients. pi@framboise ~ $
Le client peut désormais se connecter et il faut répéter l’opération pour tous les clients à connecter.

Configuration

Cliquez une fois sur l'icône dans la barre de notification. Un menu s’affiche :

Cliquez sur Ajouter un produit hébergé...

Une fenêtre d'erreur 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.

Liaison d’un client au serveur

Sur le serveur

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

Si vous avez créé un dossier crypté (sudo dazzle create-encrypted Prive), une fenêtre vous demandera la saisie d’un mot de passe : Ce qui vous permettra de protéger le contenu et de ne le rendre accessible que par vous qui connaissez le mot de passe.

Utilisation

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

Si vous cliquez sur Public, 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 disponible dans les autres ordinateurs.

Références