http://www.e-glop.net/w/index.php?title=Mettre_en_place_un_Dropbox-like_/_Google_Drive-like&feed=atom&action=historyMettre en place un Dropbox-like / Google Drive-like - Historique des versions2024-03-29T12:37:29ZHistorique des versions pour cette page sur le wikiMediaWiki 1.29.1http://www.e-glop.net/w/index.php?title=Mettre_en_place_un_Dropbox-like_/_Google_Drive-like&diff=2447&oldid=prevBeTa : Page créée avec « Qu'est-ce que ce charabia ? Il s'agit ici de décrire la mise en place d'un système de synchronisation automatique de fichiers, éventuellement collaboratif, sans dépen... »2015-06-04T16:20:42Z<p>Page créée avec « Qu'est-ce que ce charabia ? Il s'agit ici de décrire la mise en place d'un système de synchronisation automatique de fichiers, éventuellement collaboratif, sans dépen... »</p>
<p><b>Nouvelle page</b></p><div>Qu'est-ce que ce charabia ?<br />
<br />
Il s'agit ici de décrire la mise en place d'un système de synchronisation automatique de fichiers, éventuellement collaboratif, sans dépendre de sociétés comme Dropbox, Google ou autres, ne permettant pas de maîtriser où se trouvent nos données et qui peut y accéder. Il est évident que ce système d'adresse particulièrement aux entreprises, aux services de l'État, ainsi qu'aux individus soucieux de leur vie privée mais ayant goûté aux avantages du numérique et des réseaux.<br />
<br />
L'idée est donc d'avoir un répertoire local et un espace de stockage distant, tous deux accessibles permettant de lire les fichiers en clair, en rajouter et en enlever. Et moins l'usage du compte "root" sera nécessaire mieux nous nous porterons... surtout quand il s'agira de gérer des mots de passe utilisateur.<br />
<br />
<br />
== Prérequis ==<br />
<br />
* Fonctionner sous GNU/Linux, même si ce tutoriel doit pouvoir aisément s'appliquer à MacOSX et éventuellement à MSWindows.<br />
* Disposer d'un système de stockage en ligne "brut".<br />
* Avoir les droits pour installer des logiciels sur son système.<br />
<br />
<br />
== Cas pratique ==<br />
<br />
Ici nous utiliserons un système basé sur le "porte document" ("Briefcase") [http://fr.wikipedia.org/wiki/Zimbra Zimbra], accédé en WebDAV. Nous veillerons à respecter les droits de chaque utilisateur à accéder à ses fichiers, y compris partagés.<br />
<br />
Utiliser ce cas pratique permet une mise en situation nécessaire à la bonne compréhension du principe. Il montre aussi la délicatesse du déploiement le plus difficile que nous ayons pu rencontrer (WebDAV). Ainsi, si un lecteur comprend ce qui est dit ici, il devrait être en mesure (sauf cas particulier imprévisible) de réutiliser ces exemples avec un autre support de sauvegarde distant (SSH, FTPS, NFS, etc.)<br />
<br />
<br />
== Installations de base ==<br />
<br />
Installer [https://www.syncany.org/ Syncany], si possible en utilisant les dépôts Debian<br />
<br />
curl -sL https://get.syncany.org/debian/ | sh<br />
<br />
Installer fuse si ce n'est déjà fait :<br />
<br />
apt-get install fuse<br />
<br />
Installer '''[https://github.com/jmesmon/wdfs wdfs]''' via la dernière archive trouvable sur Github :<br />
<br />
wget https://github.com/jmesmon/wdfs/archive/master.zip<br />
unzip master.zip<br />
cd wdfs-master<br />
./configure<br />
# régler les pbs de dépendances... plus de détails viendra, avec même éventuellement un fichier .deb<br />
make<br />
sudo make install<br />
<br />
<br />
== Tester ==<br />
<br />
La structure de base :<br />
<br />
$ mkdir ~/tests/ # un répertoire vide où faire nos essais<br />
$ cd ~/tests/<br />
$ mkdir repository local dav<br />
<br />
=== Initialisation de la synchronisation en local ===<br />
<br />
Nous allons donc initialiser un répertoire local synchronisé (avec un système de synchronisation local) :<br />
<br />
$ cd local<br />
$ sy init<br />
<br />
Connection details for local connection:<br />
- Path to local repository: /home/beta/tmp/wdfs/repository<br />
<br />
The password is used to encrypt data on the remote storage.<br />
Choose wisely!<br />
<br />
Password (min. 10 chars): <br />
Confirm: <br />
<br />
Creating master key from password (this might take a while) ...<br />
<br />
Repository created, and local folder initialized. To share the same repository<br />
with others, you can share this link:<br />
<br />
syncany://2/2198qsdQSNw,...sazrOQZ58<br />
<br />
This link is encrypted with the given password, so you can safely share it.<br />
using unsecure communication (chat, e-mail, etc.)<br />
<br />
Note: The link contains the details of your repo connection which typically<br />
consist of usernames/password of the connection (e.g. FTP user/pass).<br />
<br />
Maintenant, le système de synchronisation est initialisé via un "repository" situé dans ~/tests/repository. Ajoutons alors un fichier et préparer sa future synchronisation distante :<br />
<br />
$ touch NEWFILE<br />
$ sy up<br />
<br />
A .syignore<br />
A NEWFILE<br />
Sync up finished.<br />
<br />
=== Initialisation de la synchronisation distante ===<br />
<br />
Créons le lien entre notre porte-documents Zimbra distant, accédé en WebDAV :<br />
<br />
$ cd ~/tests/<br />
$ wdfs https://ZIMBRA/dav/USERNAME/Briefcase dav<br />
<br />
WARNING: untrusted server certificate for 'ZIMBRA':<br />
do you wish to accept this certificate? (y/n) y<br />
username: USERNAME<br />
password: <br />
fusermount: failed to open /etc/fuse.conf: Permission denied<br />
<br />
Si vous obtenez un avertissement concernant l'accès à /etc/fuse.conf n'est pas important dans ce cas de figure, ne pas en tenir compte.<br />
<br />
Initialisons maintenant le répertoire distant, stocké dans notre porte-documents Zimbra distant, accédé en WebDAV :<br />
<br />
$ cd ../dav<br />
$ sy connect syncany://2/2198qsdQSNw,...sazrOQZ58<br />
<br />
Password: <br />
<br />
Creating master key from password (this might take a while) ...<br />
<br />
Repository connected, and local folder initialized.<br />
You can now use 'sy up' and 'sy down' to sync your files.<br />
<br />
$ sy down<br />
<br />
A .syignore <br />
A NEWFILE<br />
Sync down finished.<br />
<br />
Tout semble opérationnel.<br />
<br />
=== Vérifications ===<br />
<br />
Maintenant vérifions que le répertoire distant (WebDAV) est bien à jour :<br />
<br />
$ cd ~/tests/dav<br />
$ ls -a<br />
. .. NEWFILE .syignore .syncany<br />
<br />
Cela semble bon... Contre-vérifions en allant sur une autre interface que celle montée dans l'arborescence locale, par exemple dans l'interface web de Zimbra, et là encore le fichier NEWFILE est bien présent.<br />
<br />
Essayons de créer un fichier sur l'espace de stockage WebDAV distant, afin de voir s'il redescend bien en local :<br />
<br />
$ cd ~/tests/dav<br />
$ touch DISTANTFILE<br />
$ sy up<br />
<br />
A DISTANTFILE <br />
M .syignore<br />
M NEWFILE<br />
Sync up finished.<br />
<br />
Le nouveau fichier semble bien être synchronisé avec le ''repository'' Syncany. Vérifions maintenant via le répertoire local :<br />
<br />
$ cd ~/tests/local<br />
$ sy down<br />
A DISTANTFILE <br />
M .syignore<br />
M NEWFILE<br />
Sync down finished.<br />
<br />
$ ls -a<br />
. .. DISTANTFILE NEWFILE .syignore .syncany<br />
<br />
Impeccable<br />
<br />
=== Synchronisation automatique ===<br />
<br />
Dans un premier terminal, nous laçons un ''daemon'' Syncany sur le répertoire local :<br />
<br />
$ cd ~/tests/local<br />
$ sy watch<br />
<br />
Et dans un second nous laçons un ''daemon'' Syncany sur le répertoire WebDAV distant :<br />
<br />
$ cd ~/tests/dav<br />
$ sy watch<br />
<br />
Dans un troisième créons un répertoire et voyons comme les choses se comportent :<br />
<br />
$ cd ~/tests/dav<br />
$ mkdir yes<br />
$ ls<br />
DISTANTFILE NEWFILE yes<br />
<br />
Vérifions dans la foulée ce qui se passe en local :<br />
<br />
$ cd ~/tests/local<br />
$ ls<br />
DISTANTFILE NEWFILE yes<br />
<br />
CQFD.<br />
<br />
== Mise en production ==<br />
<br />
L'enjeu : plusieurs utilisateurs ont besoin de se tenir synchronisés avec un répertoire distant commun sur Zimbra/WebDAV, tout en travaillant uniquement en local. L'idée est de ne jamais avoir besoin, au-delà de l'installation de composants logiciels (et encore... on le verra), d'un accès super-utilisateur, et tout doit pouvoir se gérer depuis l'espace utilisateur sans avoir besoin de privilèges particuliers.</div>BeTa