Synchronisez vos fichiers avec cozy-desktop

Posté par (page perso) . Édité par ZeroHeure et palm123. Modéré par Xavier Claude. Licence CC by-sa
Tags :
47
7
juin
2016
Cloud

Cozy Cloud est une plate-forme libre qui vous permet de mieux gérer votre vie numérique en vous réappropriant vos données. Grâce à elle, vous pouvez installer de nombreux services web à usage personnel sur votre propre machine à la maison ou louée chez un hébergeur.

Cozy Cloud

Et maintenant, il est possible de synchroniser vos fichiers entre un ou plusieurs ordinateurs personnels et son nuage Cozy. Le client « desktop » vient de sortir en version beta pour Linux.

Utilisation de cozy-desktop

Un usage important de Cozy Cloud est de pouvoir stocker des fichiers dans son nuage, pour les utiliser depuis n'importe où. Jusqu'alors, Cozy Cloud pouvait importer des factures depuis des services tiers via l'application konnectors, et l'application Android permettait de sauvegarder les photos prises sur un mobile dans son nuage. Mais il manquait quelque chose pour rendre cet usage vraiment pratique : un client pour ordinateurs personnels.

Cozy-desktop sort en version beta pour Linux. Ce client va automatiquement synchroniser les fichiers entre un répertoire choisi sur votre ordinateur et votre instance Cozy. La synchronisation se fait dans les deux sens. Si un fichier est créé sur votre ordinateur local, il sera copié sur le Cozy et vous pourrez ensuite y accéder depuis le web, via l’application files, ou votre mobile. Si un fichier est ajouté sur votre Cozy (une facture importée par konnectors par exemple), vous pourrez le consulter sur votre ordinateur.

Les 4 étapes de l'embarquement

La majeure partie du temps, le client tournera en tâche de fond avec juste une tray icon. Il y a néanmoins une interface pour la configuration initiale (ce sont les 4 étapes ci-dessus) et certaines interactions. Le tableau de bord permet ainsi de voir les derniers fichiers synchronisés, de même que l'espace disque utilisé sur le Cozy. Il y a également des onglets Préférences, Compte et Aide, dont les intitulés me semblent suffisants pour comprendre ce dont il s'agit.

Si vous préférez un client en ligne de commande uniquement, vous pouvez installer cozy-desktop via npm, comme indiqué dans le README.

Le tableau de bord

OSX et Windows

Si vous êtes sous OSX ou Windows, il va falloir patienter encore un peu mais nous ne vous avons pas oublié. Le développement a été pensé pour être multi-plateforme. Toutefois, ce n'est pas magique, il reste un peu de travail à faire pour l'adapter aux différents systèmes d'exploitation.

La version OSX devrait arriver dans les semaines qui viennent. Je suis en train de corriger des bugs dans chokidar, la bibliothèque utilisée pour détecter les changements sur le système de fichiers local. Notamment, chokidar ne remontait pas les bons événements lorsqu'un répertoire était déplacé sous OSX.

Pour Windows, ce sera plus long et ça dépendra des retours que l'on aura.

Point de vue technique

L'application cozy-desktop est développée en CoffeeScript et tourne sous node.js. L'interface est réalisée avec Electron et Elm.

Pour la synchronisation, nous utilisons une base PouchDB pour garder les méta-données sur les fichiers et répertoires. Elle est alimentée par le CouchDB de l'instance Cozy, via un changes feed et par chokidar pour les changements sur le système de fichiers local (c'est une surcouche à inotify, fsevents et équivalent pour windows).

En cas de conflit (un fichier qui serait modifié à la fois sur le système de fichier local et sur le cozy, quand cozy-desktop n'est pas connecté), cozy-desktop ne va pas écraser une des deux versions du fichier mais la renommer. Ce choix nous a paru être le plus prudent.

Pour finir

En tant que développeur de cozy-desktop, je suis content de pouvoir enfin montrer mon travail de ces derniers mois. Bien sûr, je ne saurais trop vous conseiller de faire une sauvegarde avant de commencer à utiliser cozy-desktop. C'est de toute façon une bonne habitude à prendre.

N'hésitez pas à poser des questions dans les commentaires, j'y répondrai avec plaisir.

  • # Synchronisation intégrée au navigateur de fichier

    Posté par (page perso) . Évalué à 10.

    Salut,

    Je suis utilisateur d'OwnCloud (peut-être NextCloud plus tard, je vais attendre que les choses se tassent) et en suis globalement heureux. OwnCloud me permet de synchroniser des répertoires avec leur client desktop. Il me permet aussi de monter localement l'ensemble de mon compte OwnCloud avec webdav dans mon navigateur de fichier (Nautilus, GNOME), mais sans copie locale donc.
    Tout ça c'est très cool, mais ce n'est pas une intégration parfaite: je veux un mix entre les deux.

    Je veux de la synchronisation intégrée au navigateur de fichier, ce qui me permet d'avoir une copie partielle et locale (i.e. rapide pour travailler), synchronisable avec d'autres machines, mais sans passer par un client tiers. Franchement j'ai installé le client OwnCloud, mais je m'en sers quasi pas, car c'est juste chiant. Au final, je me sers d'OwnCloud pour stocker des trucs, et je fais des copies dans un sens ou l'autre avec webdav ou GUI web, mais sans synchro.

    L'idée en plus concret: je suis dans Nautilus, j'ai un répertoire ou un fichier en local (pas sur le cloud), je clique droit, et dans le menu contextuel, je sélectionne "Synchroniser avec [nom du compte]", et fini (optionnellement ça pourrait me demander où je veux que les fichiers soient dans l'arborescence cloud). Synchronisation vers le cloud en arrière plan.

    À l'inverse, si j'ai des fichiers ou répertoire qui sont seulement sur le cloud et que je veux les synchroniser en local: clic droit dans le vide (pas sur un fichier) et sélectionner "Synchroniser un fichier ou répertoire depuis [nom du compte]". Je clique, ça m'ouvre une fenêtre de navigation sur mon cloud, je sélectionne soit un répertoire, soit un fichier, et clique un bouton "Synchroniser". Et paf fichier/répertoire ajouté en local, synchronisé depuis le cloud.

    Et les fichiers ou répertoires synchronisés auraient une mini icône au dessus de l'icône normale du fichier qui signifie "fichier synchronisé".

    En gros, c'est ce que fait déjà un client lourd, mais déjà:
    - pour un fichier unique ou un répertoire et son contenu (en lisant la dépêche, j'ai l'impression que votre client synchronise l'ensemble du cloud. Comment on fait si on a des dizaines de GB pour synchroniser sur un périphérique avec peu d'espace de stockage?!)
    - et surtout intégré au navigateur de fichier! C'est à dire: synchro directement dans ce dernier, et aperçu visuel immédiat dans votre logiciel de fichier habituel. Ça voudrait donc dire que cela aurait la forme d'un plugin pour le navigateur de fichier. Bien sûr, y en a plein, mais disons que vous pourriez avoir des plugins pour les navigateurs principaux (un pour celui par défaut de GNOME, celui de KDE, celui de Windows et celui d'OSX), et pour les autres, ils pourront toujours se rabattre sur le client lourd.

    Ce genre de projet logiciel est-il prévu pour CozyCloud?
    Pour moi, c'est le problème qui rend OwnCloud pas aussi pratique et transparent qu'il pourrait l'être. :-/

    Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]

    • [^] # Re: Synchronisation intégrée au navigateur de fichier

      Posté par . Évalué à 7. Dernière modification le 07/06/16 à 21:19.

      Pour faire ce genre de synchro tu peux utiliser glusterfs ou orangeFS.
      En gros tu monte sur ton serveur un volume répliqué avec glusterfs (dans ton owncloud tu utilises la section "stockage externe" et tu penses a cocher l'option pour mettre à jours à chaque modification dans le file system).
      Et ce volume est réparti sur ton serveur et sur autant de machine que tu le désire. (petite astuce pour les hostnames)
      Par contre ça bouffe des ressources (monte facilement à 30% de mon quadcore lors d'écriture).

      Après sur ton client tu peux utilisers DAVFS comme d'hab ou via le client glusterfs pour accéder a ce volume.

      Côté désavantages : les NAT lors des déplacements et le hairpinning rarement fonctionnel pour les connexions locales

      Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

      • [^] # Re: Synchronisation intégrée au navigateur de fichier

        Posté par . Évalué à 1.

        • [^] # Re: Synchronisation intégrée au navigateur de fichier

          Posté par . Évalué à 1. Dernière modification le 07/06/16 à 22:42.

          Quand il y a des modifications sur un fichier synchting attends comme un con qu'on aille sur la WEBUI (de la machine qui possède la version que l'on souhaite concerver) pour les écraser sur les autres machines. (le pire est qu'il le fait aussi quand on a réglé le dossier en Maitre).
          Synching est un logiciel de synchronisation, pas un file system (genre il ne gère pas les accès simultanés a un fichiers).

          Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

    • [^] # Re: Synchronisation intégrée au navigateur de fichier

      Posté par . Évalué à 2.

      Sauf récent changement, les fichiers sont stocké en base de données sur cozy.
      Donc ne sont pas accessible pour d autre outils depuis le filesystem. Et pas de webdav. Donc c est soit le client, soit utiliser l API, soit le navigateur.

    • [^] # Re: Synchronisation intégrée au navigateur de fichier

      Posté par (page perso) . Évalué à 6.

      C'est une très bonne idée et quelque chose que j'aimerais aussi avoir. Par contre, nos moyens sont limités : je suis le seul développeur sur l'application cozy-desktop et la priorité est pour le moment de stabiliser la version linux et le portage sous OSX. Un tel projet ne rentre pas dans notre roadmap pour les 6 mois qui viennent.

      Si des contributeurs externes sont intéressés pour réaliser ce projet, ça serait super et j'aiderais, bien sûr. Une synchro intégrée au navigateur de fichiers serait vraiment cool !

      en lisant la dépêche, j'ai l'impression que votre client synchronise l'ensemble du cloud. Comment on fait si on a des dizaines de GB pour synchroniser sur un périphérique avec peu d'espace de stockage?!

      Pour cette première version, oui, on synchronise tous les fichiers. Mais ça ne va pas durer, on a prévu de pouvoir synchroniser juste certains répertoires. On fera ça plus ou moins vite selon les retours des utilisateurs. Et je pense que c'est quelque chose que l'on va beaucoup nous demander, donc ça devrait arriver assez rapidement.

      • [^] # Re: Synchronisation intégrée au navigateur de fichier

        Posté par (page perso) . Évalué à 2.

        Ok cool. Ce serait bien. :-)

        J'ai un projet de faire cela (enfin en vrai, j'aimerais bien que quelqu'un le fasse avant! :P) sur Nautilus, mais pour OwnCloud. Malheureusement le multi-utilisateur est trop important pour moi. Comme tu le sais (peut-être?), on fait un film et on doit constamment s'échanger ou partager des fichiers (malheureusement j'ai regardé du côté des dépôts de source, type git ou svn, mais c'est vraiment pas adapté pour gérer des dizaines/centaines de GB de données binaires!). Un système mono-utilisateur ne fonctionnerait pas pour nous. :-/
        Ou alors peut-on partager avec l'utilisateur d'une autre instance Cozy (local voire même indépendant)?
        Cela pourrait être une alternative possible (il suffirait alors juste d'avoir un logiciel simple d'utilisation pour automatiser la création d'un nouveau sous-domaine de notre cloud sur lequel installer une instance Cozy, et cela en reviendrait à un système multi-utilisateurs).

        Tiens oui d'ailleurs dans la partie "intégration avec le navigateur de fichiers", il faut aussi que le menu droit (contextuel) propose "Partager avec…" qui ouvre aussi un dialogue pour choisir un autre utilisateur de notre instance cloud, ou même d'une autre (OwnCloud en tous cas permet de partager même entre instances différentes).
        À l'heure actuelle avec OwnCloud, cela n'est faisable qu'à travers l'UI web (même le client lourd, de mémoire, ne permet pas cela. Ensuite comme dit précédemment je ne l'utilise plus vraiment) et donc c'est super chiant de devoir aller dans le navigateur web pour partager des fichiers.
        J'aimerais vraiment pouvoir me dire "tiens je vais envoyer ce fichier à l'animatrice", et paf! en 2 clics, c'est fait (et de son côté elle reçoit une notification).

        Bon dans tous les cas, je garde un œil sur Cozy et son évolution. :-)

        Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]

        • [^] # Re: Synchronisation intégrée au navigateur de fichier

          Posté par (page perso) . Évalué à 3.

          Ou alors peut-on partager avec l'utilisateur d'une autre instance Cozy (local voire même indépendant)?

          Pas encore. Chez Cozy Cloud, nous avons 2 personnes en thèse (Paul et Julien) et ils travaillent sur le partage de cozy à cozy. Actuellement, on peut "partager" un événement d'un calendrier entre plusieurs instances cozy. Là, ils travaillent sur le partage d'un calendrier complet. Et l'étape suivante devrait être le partage de fichiers et répertoires.

        • [^] # Re: Synchronisation intégrée au navigateur de fichier

          Posté par . Évalué à 2.

          Tiens oui d'ailleurs dans la partie "intégration avec le navigateur de fichiers", il faut aussi que le menu droit (contextuel) propose "Partager avec…" qui ouvre aussi un dialogue pour choisir un autre utilisateur de notre instance cloud, ou même d'une autre (OwnCloud en tous cas permet de partager même entre instances différentes).

          apt-get install nautilus-owncloud

          Globalement, de ce que je comprends de ton besoin, la seule chose qui manque aujourd’hui dans le client owncloud bureau, c’est la granularité « fichiers » pour les éléments synchronisés.

          Sinon, je ne comprends pas trop où ça bloque.

          Mes commentaires sont en wtfpl. Une licence sur les commentaires, sérieux ? o_0

        • [^] # Re: Synchronisation intégrée au navigateur de fichier

          Posté par . Évalué à 2.

          Je sais c'est pas libre, mais ce dont vous avez besoin ce ne serait pas surtout de btsync ? Création d'autant de dossier partagé que tu souhaite, gestion des volumes de données conséquents aussi bien que possible, inutile d'attendre que le fichier soit sur le serveur pour commencer à le récupérer,…

          Mais oui c'est pas libre (et il n'y a pas l'intégration qui t'intéresse dans les navigateurs de fichiers).

          Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

          • [^] # Re: Synchronisation intégrée au navigateur de fichier

            Posté par (page perso) . Évalué à 5.

            Sinon, il y a Syncthing (dont BTSync est une pâle copie propriétaire) qui a beaucoup d'atout pour lui :

            • Libre et largement ouvert (communauté, code source, protocole…)
            • Multi plates-formes : Linux, *BSD, Windows, MacOS, Android, Synology,
            • Relativement simple avec
              • une interface web, responsive, sobre et efficace (mais pas (encore ? )pour les Dupuis-Morizeau)
              • gestion des machines par identifiant plutôt que l'adresse IP ou autres notions réseaux
            • Prend sérieusement en compte les aspects sécurité et confidentialité des données (Pas de serveur centralisé hors de ton périmètre, chiffrement des échanges, authentification des nœuds)
            • Une documentation claire et bien foutue.

            Depuis que je l'utilise, je ne me vois pas repasser à autre chose pour le moment. J'ai pris un peu de temps pour le configurer et maintenant, ça fonctionne tout seul et je peux (presque) l'oublier.

            • [^] # Re: Synchronisation intégrée au navigateur de fichier

              Posté par . Évalué à 3.

              Pas de serveur centralisé hors de ton périmètre

              Euh, si tu n'installes pas ton propre relais, celui par défaut est centralisé. (se modifie dans les options avancées de synchting)

              Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

            • [^] # Re: Synchronisation intégrée au navigateur de fichier

              Posté par . Évalué à 3.

              Il se comporte bien avec des fichiers de dizaines de Gio ? Parce que je proposais btsync parce que je sais qu'il gère ça très bien. Il peut arrêter la synchro en pleins milieu d'un fichier et reprendre comme un grand après.

              Pas de serveur centralisé hors de ton périmètre

              btsync n'en a pas du tout

              Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

              • [^] # Re: Synchronisation intégrée au navigateur de fichier

                Posté par . Évalué à 1. Dernière modification le 09/06/16 à 14:41.

                Il se comporte bien avec des fichiers de dizaines de Gio ?

                C'est du Bittorent : les fichiers, peu importe, leur taille sont découpé en petites parts de partie +- égal, le logiciel fait un hash de chaque partie, envoie les hash aux clients/leechers puis ensuite les morceaux de fichiers dans le désordre.
                Petit ou gros fichiers, du pareil au même.
                Par contre ce mécanisme consomme des ressources (99% du processeur d'un RPI 1 (screenshot) et 30-60% d'un processeur d'un RPI 2 (screenshot))

                btsync n'en a pas du tout

                btsync utilise aussi un relais (chercher "relay")

                Donation Bitcoin : 1N8QGrhJGWdZNQNSspm3rSGjtXaXv9Ngat

                • [^] # Re: Synchronisation intégrée au navigateur de fichier

                  Posté par (page perso) . Évalué à 2.

                  Faux, Syncthing n'utilise pas le protocole Bittorrent, il utilise son propre protocole (qui reprend des éléments de Bittorrent, certes)

                  Par contre il y a un point qui est important pour moi: lorsque le fichier est gros, est-ce qu'il faut attendre qu'il ait été complètement traité avant de pouvoir être envoyé ? Ou est-ce qu'il peut être envoyé au fur et a mesure que les blocs sont calculés ?

                  • [^] # Re: Synchronisation intégrée au navigateur de fichier

                    Posté par (page perso) . Évalué à 3.

                    D'après ce que j'ai vu il faut que le fichier soit traité en totalité avant de commencer à envoyer les données.
                    Par exemple pour un gros disque virtuel, le transfert ne commence que plusieurs minutes après la dernière modification.
                    Pour d'autres raisons je trouve que ce logiciel n'est pas adapté aux gros fichiers, je n'ai donc pas vérifié comment ça se passe si le gros fichier est modifié alors qu'il est déjà en cours de transfert (par exemple si le transfert dure plus de 24 heures, et que le gros fichier est mis à jour chaque 24 heures).

        • [^] # Re: Synchronisation intégrée au navigateur de fichier

          Posté par (page perso) . Évalué à 2.

          Tu dis avoir regardé git et svn, ceux là ne sont pas adaptés au stockage de fichiers binaires. Tu as regardé du côté de git-annex ?

    • [^] # Re: Synchronisation intégrée au navigateur de fichier

      Posté par . Évalué à 0.

      De mémoire, c’était ce que proposait le client de synchro pour le service Ubuntu One file fermé en 2014

    • [^] # Re: Synchronisation intégrée au navigateur de fichier

      Posté par . Évalué à 2.

      Regarde du côté de seafile il n'y a pas d'intégration à nautilus réellement mais tu disposes de bibliothèque dans le cloud que tu peux choisir lesquelles synchro en local (et choisir où)

  • # Petit détail

    Posté par (page perso) . Évalué à 2.

    Bon, c'est vraiment un détail, mais sur le dernier écran de configuration qu'on voit sur la capture, il faudrait vraiment faire un :
    s/une location/un emplacement/

    A moins qu'il faille louer un appartement pour y mettre ses fichiers :).

    • [^] # Re: Petit détail

      Posté par (page perso) . Évalué à 3.

      Merci pour le retour. En fait, le texte est déjà corrigé, c'est juste que la capture d'écran a été prise juste avant.

  • # À lire aussi

    Posté par (page perso) . Évalué à 8.

    Un entretien avec Gelnior sur le journal du hacker: https://blog.journalduhacker.net/index.php?article41/entretien-avec-frank-rousseau-directeur-technique-de-cozy-cloud . On peut y lire d'où vient Cozy, comment c'est géré, et même l'infrastructure utilisée pour faire tourner tout ça.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.