J'ai découvert git-annex

C'est en lisant d'un œil discret le Planet Debian que j'ai entendu parler du logiciel git-annex. En version courte, l'idée de ce logiciel est de pouvoir synchroniser/partager/déplacer géographiquement/sauvegarder des fichiers, en utilisant git en arrière plan pour stocker l'état et la localisation des différents fichiers (d'où le nom, c'est vu comme un plugin de git). Les fichiers en eux-mêmes, potentiellement très lourds, sont stockés à l'extérieur du dépôt git.

Quand on le dit comme ça, c'est clairement pas gagné pour le commun des utilisateurs. De base, git-annex est fait pour être utilisé massivement avec de la ligne de commande. C'est déjà pas mal du tout, j'ai synchronisé ainsi quelques dossiers sur différents PC, et j'en suis très satisfait (c'est bien mieux qu'Unison pour mon usage). Dans ce que j'aime beaucoup, il y a la possibilité de voir ou est stocké un fichier et de demander qu'il existe au moins X copies. On peut également définir des niveaux de confiance pour les copies, et bien entendu automatiser le tout. Et il gère très bien les dépôts déconnectés/indisponibles. Pas forcément simple à comprendre au premier coup d'œil, mais très puissant et bien pensé.

Cependant, le meilleur reste à venir. Le développeur du logiciel a obtenu l'an dernier suffisamment d'argent pour travailler à temps plein sur le projet, à travers un projet kickstarter. Cela lui a permis de développer un « assistant » graphique qui s'occupe de toutes les tâches de synchronisation en arrière plan. Pour l'utilisateur, il suffit d'une étape de configuration pour que tout le reste soit complètement transparent (on met les fichiers dans un dossier, on supprime, on vit sa vie en gros, et ça se réplique partout). On a déjà quelque chose pour synchroniser avec un disque de sauvegarde, ou bien entre deux ordinateurs sur le réseau local, ainsi qu'entre plusieurs serveurs pouvant parler en SSH.

Ensuite, on a en bonus la synchronisation par « le nuage », qui permet de synchroniser des dossiers entre des équipements distants et de partager des fichiers avec des amis. J'ai été bluffé par la simplicité. Le système de synchronisation utilise le protocole XMPP. Il suffit de configurer son identifiant XMPP et son mot de passe (en bonus : il insiste bien sur le fait que cela marche aussi avec un compte GMail...), et c'est presque parti. Il faut un serveur « tampon » dans les nuages, pour sauvegarder ce qui doit être synchronisé entre les ordinateurs. Ça tombe bien, git-annex permet d'utiliser un nombre relativement important de plugin (Amazon, rsync.net, un serveur perso avec un SSH, etc). Ce serveur tampon n'a pas forcément besoin d'être énorme, puisque seuls les fichiers à synchroniser sont par défauts stockés (une fois que tout les ordinateurs sont synchronisés, le tampon du serveur est effacé). En bonus, tout est bien évidemment chiffré le temps de passer sur le serveur « dans le nuage ».

On peut aussi utiliser le serveur « tampon » comme un serveur de sauvegarde ou d'archivage. L'interface graphique propose de base de nombreux profils selon ce qu'on veut faire. On peut aussi passer en mode manuel pour ne télécharger que les fichiers que l'on souhaite (très pratique par exemple sur un équipement avec peu de disque. On peut demander les fichiers nécessaires à la demande). L'auteur a d'ailleurs publié plusieurs vidéos de démonstrations, par exemple sur la première approche de l'assistant.

Pour partager avec des amis, c'est peu envahissant. L'assistant détecte la présence de git-annex automatiquement dans la liste des contacts jabber. Cela oblige cependant d'avoir une ressource XMPP connectée, heureusement configurée en indisponible et avec une priorité négative (les messages normaux ne lui seront donc pas adressés). Aucun message n'est d'ailleurs envoyé par git-annex, tout passe par l'assistant. Cette ressource connectée mais indisponible ne me semble pas très gênante à l'usage.

Pour le serveur tampon, je me suis laissé avoir par les arguments marketings. Je pensais au départ utiliser mon serveur habituel, mais il manque parfois d'espace disque. C'est là que j'ai vu que rsync.net proposait une offre pour les utilisateurs de git-annex, en proposant 50Go d'espace disque pour 60$ l'année. C'est trois fois moins cher que leurs tarifs habituels. Leur argument est que les utilisateurs de git-annex demandent beaucoup moins de service de support technique que les autres, ils peuvent donc faire un prix. On verra l'an prochain si c'était vraiment utile. Comme les fichiers synchronisés sont chiffrés, j'ai pas de remords à les laisser là-bas. Et vu la simplicité de git-annex, migrer vers un autre serveur tampon sera trivial si c'est pertinent.

Pour ma part, je pense m'en servir pour :

  • Synchroniser certains fichiers entre le travail et la maison ;
  • Partager des documents avec ma famille plus facilement qu'auparavant (et potentiellement avec des amis) ;
  • Gérer la réplication des sauvegardes. Grâce à l'affichage de la localisation des fichiers, c'est vraiment très pratique.

J'ai été suffisamment convaincu pour faire un modeste don au développeur, qui souhaite travailler un an supplémentaire sur le projet. À noter qu'il ne demande que 1000$ par mois de travail, ce qui est ridiculement bas pour quelqu'un avec ses compétences. Après un fignolage de l'application Android, il prévoit de développer le logiciel pour Windows. Ce serait une bonne nouvelle pour le côté « partage avec les amis ».

P.S. : attention par contre à prendre la toute dernière version. L'assistant a connu de très nombreuses corrections de bugs, qui sinon peuvent être très déconcertants.

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rétrolien : http://flo.fourcot.fr/index.php?trackback/147

Fil des commentaires de ce billet