DIFFUser bientôt vos articles dans le Fediverse ?

Chaque mois le Fediverse s’enrichit de nouveaux projets, probablement parce nous désirons toujours plus de maîtrise de notre vie numérique.

Décentralisé et fédéré, ce réseau en archipel s’articule autour de briques technologiques qui permettent à ses composantes diverses de communiquer. Au point qu’à chaque rumeur de projet nouveau dans le monde du Libre la question est vite posée de savoir s’il sera « fédéré » et donc relié à d’autres projets.

Si vous désirez approfondir vos connaissances au plan technique et au plan de la réflexion sur la fédération, vous trouverez matière à vous enrichir dans les deux mémoires de Nathalie, stagiaire chez Framasoft l’année dernière.

Aujourd’hui, alors que l’idée de publier sur un blog semble en perte de vitesse, apparaît un nouvel intérêt pour la publication d’articles sur des plateformes libres et fédérées, comme Plume et WriteFreely. Maîtriser ses publications sans traqueurs ni publicités parasites, sans avoir à se plier aux injonctions des GAFAM pour se connecter et publier, sans avoir à brader ses données personnelles pour avoir un espace numérique d’expression, tout en étant diffusé dans un réseau de confiance et pouvoir interagir avec lui, voilà dans quelle mouvance se situe le projet DIFFU auquel nous vous invitons à contribuer et que vous présente l’interviewé du jour…

Bonjour, peux-tu te présenter, ainsi que tes activités ?

image du profil mastodon de JP Morfin, une meute de chats en arrière-plan de sa photo noir et blanc en médaillon
Jean-Pierre et une partie de l’équipe de développement en arrière-plan

Bonjour Framasoft. Je m’appelle Jean-Pierre Morfin, on me connaît aussi sur les réseaux sociaux et dans le monde du libre sous le pseudo jpfox. J’ai 46 ans, je vis avec ma tribu familiale recomposée dans un village ardéchois où je pratique un peu (pas assez) le vélo. Informaticien depuis mon enfance, je suis membre du GULL G3L basé à Valence, où je gère avec d’autres l’activité C.H.A.T.O.N.S qui propose plusieurs services comme Mastodon, Diaspora, TT-Rss, boite mail, owncloud…

Passionnés par le libre, Michaël, un ami de longue date et moi-même avons créé en 2010 ce qui s’appelle désormais une Entreprise du Numérique Libre nommée Befox qui propose ses services aux TPE/PME dans la Drôme et l’Ardèche principalement : réalisation de sites à base de solutions libres comme Prestashop, Drupal ou autres, installation Dolibarr et interconnexion entre différents logiciels ou plateformes, hébergement applicatif, évolutions chez nos fidèles clients constituent l’essentiel de notre activité.

Et donc, vous voulez vous lancer dans le développement d’un nouveau logiciel fédéré, « Diffu ». Pourquoi ?

Tout d’abord nous avons ressenti tous les deux le besoin de retourner aux fondamentaux du Libre, et quoi de plus fondamental que le développement d’un logiciel ? Lors de nos divagations sur le Fédiverse, les remarques récurrentes qu’on y trouve ici ou contre l’utilisation de Medium, nous ont fait penser qu’une alternative pouvait être intéressante. De plus, l’ouverture d’un compte Medium se fait nécessairement avec un compte Facebook ou Google, c’est leur façon d’authentifier un utilisateur ; en bons adeptes de la dégafamisation, c’est une raison de plus de créer une alternative à cette plateforme.

Voyant le succès et tout le potentiel de la Fédération, il fallait que cette nouvelle solution entre de ce cadre-là, car recréer une plateforme unique de publication ou un nouveau moteur de blog avec une gestion interne des commentaires ne présente aucun intérêt. Avec Diffu, la publication d’un article sur une des instances du réseau sera poussée sur le Fédiverse et les commentaires et réactions faits sur Mastodon, Pleroma, Hubzilla ou autre… seront agrégés pour être restitués directement sur la page de l’article. J’invite les lecteurs à jeter un œil à la maquette que nous avons réalisée pour se faire une idée, elle n’est pas fonctionnelle car cela reste encore un projet.

deant un café, un article en cours de réalisation sur un bureua, avec un stylo rouge. On peut lire sous une photo "My article on Diffu"

Quant au nom Diffu, on lui trouve deux sens : abréviation de Diffusion, ce qui reste l’objectif d’une plateforme de publication d’articles. Et dans sa prononciation à l’anglaise Diff You qui peut se comprendre Differentiate yourself – Différenciez vous ! C’est un peu ce que l’on fait lorsqu’on livre son avis, son expertise, ses opinions ou ses pensées dans un article.

Il existe déjà des logiciels fédérés de publication, tels que Plume ou WriteFreely. Quelles différences entre Diffu et ces projets ?

Absolument, ces deux applications libres, elles aussi, proposent de nombreux points de similitude avec Diffu notamment dans l’interconnexion avec le Fediverse et la possibilité de réagir aux articles avec un simple compte compatible avec ActivityPub.

À ce jour 38 projets dans la Fédération, selon le site https://the-federation.info/#projects

La première différence est que pour Plume et WriteFreely, il est nécessaire de créer un compte sur l’instance que l’on souhaite utiliser. Avec Diffu, suivant les restrictions définies par l’administrateur⋅e de l’instance, il sera possible de créer un article juste en donnant son identifiant Mastodon par exemple (pas le mot de passe, hein, juste le pseudo et le nom de l’instance). L’auteur recevra un lien secret par message direct sur son compte Mastodon lui permettant d’accéder à son environnement de publication et de rédiger un nouvel article. Ce dernier sera associé à son auteur ou autrice, son profil Mastodon s’affichant en signature de l’article. Lors de la publication de l’article sur le Fediverse, l’autrice ou l’auteur sera mentionné⋅e dans le pouet qu’il n’aura plus qu’à repartager. L’adresse de la page de l’article sera utilisable sur les autres réseaux sociaux bien évidemment.

Nous voyons plus les instances Diffu comme des services proposés aux possesseurs de comptes ActivityPub. Comme on crée un Framadate ou un Framapad en deux clics, on pourra créer un article.

Les modes de modération et de workflow proposés par Diffu, la thématique choisie, les langues acceptées, la définition des règles de gestion permettront aux administrateurs de définir le public pouvant poster sur leur instance. Il sera par exemple possible de n’autoriser que les auteurs ayant un compte sur telle instance Mastodon, Diffu devenant un service complémentaire que pourrait proposer un CHATONS à ses utilisateurs Mastodon.

Ou, à l’opposé, un défenseur de la liberté d’expression peut laisser son instance Diffu open bar, au risque de voir son instance bloquée par d’autres acteurs du Fediverse, la régulation se faisant à plusieurs niveaux. Nous travaillons encore sur la définition des options de modération possibles, le but étant de laisser à l’administrateur⋅e toute la maîtrise des règles du jeu.

Les options retenues seront clairement explicites sur son instance pour que chacun⋅e puisse choisir la bonne plateforme qui lui convient le mieux. On imagine déjà faire un annuaire reprenant les règles de chaque instance pour aider les auteurs et autrices à trouver la plus appropriée à leur publication. Quitte à écrire sur plusieurs instances en fonction du sujet de l’article : « J’ai testé un nouveau vélo à assistance électrique » sur diffu.velo-zone.fr et « Comment installer LineageOS sur un Moto G4 » sur diffu.g3l.org.

L’autre différence avec Plume et WriteFreely est le langage retenu pour le développement de Diffu. Nous avons choisi PHP car il reste à nos yeux le plus simple à installer dans un environnement web et nous allons tout faire pour que ce soit vraiment le cas. Le locataire d’un simple hébergement mutualisé pourra installer Diffu : on dézippe le fichier de la dernière version, on envoie le tout par ftp sur le site, on accède à la page de configuration pour définir les options de son instance et ça fonctionne. Idem pour les mises à jour.

Nous avons déjà des contacts avec les dev de Plume qui sont tout aussi motivés que nous pour connecter nos plateformes et permettre une interaction entre les utilisateurs. C’est la magie du Fediverse !

Vous êtes en phase de crowdfunding pour le projet Diffu. À quoi va servir cet argent ?

Tout simplement à nous libérer du temps pour développer ce logiciel. On ne peut malheureusement pas se permettre de laisser en plan l’activité de Befox pendant des semaines car cela correspondrait à une absence complète de revenu pour nous deux. C’est donc notre société Befox qui va récolter le fruit de cette campagne et le transformer en rémunération. Nous avons visé au plus juste l’objectif de cette campagne de financement même si on sait que l’on va passer pas mal de temps en plus sur ce projet mais quand on aime…

Il faut aussi mentionner les 8 % de la campagne destinés à rétribuer la plateforme de financement Ulule.

Comment envisages-tu l’avenir de Diffu ?

Comme tout projet libre, après la publication des premières versions, la mise en ligne du code source, nous allons être à l’écoute des utilisateurs pour ajouter les fonctionnalités les plus attendues, garder la compatibilité avec le maximum d’acteurs du Fediverse. On sait que le protocole ActivityPub et ceux qui s’y rattachent peuvent avoir des interprétations différentes. On le voit pour les plateformes déjà en places comme Pleroma, Mastodon, Hubzilla, GNUSocial, PeerTube, PixelFed, WriteFreely et Plume… c’est une nécessité de collaborer avec les autres équipes de développement pour une meilleure expérience des utilisateurs.

Comme souvent ici, on te laisse le mot de la fin, pour poser LA question que tu aurais aimé qu’on te pose, et à laquelle tu aimerais répondre…

La question que l’on peut poser à tous les développeurs du Libre : quel éditeur de sources, Vim ou Emacs ?

Image : https://framalab.org/gknd-creator/

 

La réponse en ce qui me concerne, c’est Vim bien sûr.

Plus sérieusement, cela me permet d’évoquer ce que je trouve génial avec les Logiciels Libres, le fait qu’il y en a pour tous les goûts, que si un outil ne te convient pas, tu peux en utiliser un autre ou modifier/faire modifier celui qui existe pour l’adapter à tes attentes.

Alors même si Plume et WriteFreely existent et font très bien certaines choses, ils sont tous les deux différents et je suis convaincu que Diffu a sa place et viendra en complément de ceux-ci. J’ai hâte de pouvoir m’investir à fond dans ce projet.

Merci pour cette interview, à bientôt sur le Fediverse !

 




Mes données dans un nuage ? — Oui mais le mien

Plutôt que de se résigner à l’usage de services en ligne n’offrant aucune garantie réelle de confidentialité, Frank Karlitschek a décidé de ne pas se contenter de prêcher la bonne parole mais de passer à l’acte en élaborant (avec d’autres) un projet qui remporte un succès grandissant : un logiciel libre et open source de stockage de données. En revenant sur l’historique du projet ownCloud, il nous rappelle au passage les clés de la réussite (ne perdons pas de vue la proportion importante de projets open source qui n’aboutissent jamais) : développement collaboratif du code ouvert, prenant appui sur des outils et choix techniques ayant déjà une large base de développeurs, flexibilité, compatibilité multi-plateforme…

Cet article donne quelques indications plus précises sur les technologies mises en œuvre qui peuvent laisser perplexe le lecteur non développeur, mais la démarche et la philosophie de l‘open source y apparaîtront pour tous avec clarté. L’enjeu, c’est de rendre à l’utilisateur le contrôle de ses données.

Au fait, Framasoft dispose depuis un an de son propre ownCloud [1], pourquoi pas vous ?

Pourquoi j’ai créé OwnCloud et l’ai rendu open source

par Frank Karlitschek, fondateur de ownCloud et mainteneur de l’architecture globale du projet.

Article original : Why I Built OwnCloud and Made It Open Source Traduction Framalang : Asta, r0u, KoS, Wan, Omegax, goofy, Diab

Il y a 4 ans, j’étais au CampKDE à San Diego, je donnais une conférence sur la protection des données, mettant en garde le public sur les risques pour leur vie privée auprès des fournisseurs de cloud – en particulier Dropbox. « — Eh bien fais-le toi-même », m’a-t-on dit. Bien sûr, j’avais déjà créé des choses dans le passé, alors bien sûr, j’ai dit que j’allais le faire. Et c’est là que j’ai commencé mon odyssée, en premier lieu pour me protéger moi-même, mes amis et mes collègues de l’espionnage des gouvernements et d’autres méchants, et plus tard – quand j’ai vu l’intérêt croître dans le monde – pour concevoir un projet concret et efficace.

je n’avais pas envie d’envoyer mes données à un service tiers pour qu’il les stocke on ne sait où

Évidemment, je devais décider d’un certain nombre de choses avant de commencer, notamment ce que je voulais que fasse le logiciel, quelle plateforme de développement utiliser, comment le structurer et bien sûr il fallait que je lui trouve un nom : ownCloud (NdT : littéralement, « le nuage qu’on possède »).

Mes amis et moi avions besoin d’un moyen de synchroniser nos images, nos documents et même nos vidéos en passant d’un appareil à l’autre (au lieu d’utiliser une clé USB), nous voulions aussi partager ces fichiers avec nos amis et nos proches. À l’époque, Dropbox devenait très populaire, mais je n’avais pas envie d’envoyer mes données à un service tiers pour qu’il les stocke on ne sait où. Je voulais créer une plateforme que mes amis puissent utiliser sur les espaces de stockage qu’ils avaient déjà, à la différence du cloud, pas seulement pour synchroniser et partager, mais aussi une plateforme assez flexible pour qu’on puisse y créer des applications.

Bien sûr ownCloud allait être open source.

Je faisais déjà partie de la communauté open source, mais ce n’est pas la seule raison. En faisant de l‘open source je concevais un code qui serait complètement transparent (et donc aurait peu de risques de comporter des « portes dérobées » pour entrer dans mes données). De plus je pouvais compter sur un grand nombre de personnes animées des mêmes convictions pour m’aider à créer ownCloud, je n’étais donc pas tout seul. Et je pouvais réutiliser les technologies d’autres projets. Comme SABREDAV, qui est le framework que nous utilisons pour la communication WebDAV du serveur (CalDAV, CardDAV et WebDAV sont tous utilisés par ownCloud), et nous utilisons aussi jQuery. Nous avons également utilisé csync pour les capacités de synchronisation bi-directionnelle du client de bureau et Qt pour l’interface utilisateur multi-plateforme. Je n’ai pas eu à réinventer la roue une fois de plus, je n’ai eu qu’à assembler ce qui existait déjà pour que tout fonctionne.

Mais comme je l’ai déjà dit, je savais ce que je voulais : ownCloud devait être plus qu’une « app ». Bien sûr, stocker les données d’une manière sûre et sécurisée est une chose importante. Mais en fin de compte, les gens veulent faire quelque chose de leurs données, alors j’ai voulu ajouter davantage de fonctionnalités à travers les applications ownCloud. Les applications sont des extensions qui peuvent implémenter des fonctionnalités telles que la détection de virus, la journalisation des accès et des changements de fichiers, le versionnage, le chiffrement, l’édition de fichiers et bien d’autres choses. Ce genre d’intégration du stockage de fichiers avec d’autres services est essentiel pour le développement futur.

Je voulais que mon projet soit flexible, de sorte que les gens puissent s’appuyer sur ownCloud (et beaucoup l’ont fait, avec une application type « Google News », un streamer de vidéos, un lecteur de musique, un calendrier – et plus encore) et que ownCloud puisse s’intégrer dans de nombreux environnements. Par exemple, n’importe quel client WebDAV devait pouvoir accéder à ownCloud dès le départ et le concept d’applications internes est là aussi depuis le début du projet.

Bien entendu, nous sommes plus avancés à présent — il y a des API de partage et d’administration, des API internes pour les applications utilisant OCS, il existe des bibliothèques pour mobile (que nous avons rendues open source) et qui permettent l’intégration à d’autres applications mobiles, une base de données clés-valeurs pour un usage général de stockage de données, de synchronisation, et davantage encore. Ensuite, il y a l’intégration de systèmes de stockage externe comme FTP, S3, SWIFT, CIFS, iRODS et beaucoup d’autres. Mais même à l’époque où nous avons commencé, les intentions étaient claires – construire quelque chose d’assez flexible pour que les gens puissent créer des solutions auxquelles nous n’avions pas pensé.

Et c’est justement ça, la puissance de l‘open source.

Nous (ma communauté grandissante et moi) avons évalué différentes options pour trouver la bonne technologie qui pourrait tourner sur chaque plateforme, du micro serveur jusqu’à des clusters de serveurs, qui aurait toutes les fonctionnalités et serait connue d’un grand nombre de développeurs. C’est pourquoi nous avons opté pour PHP et JS pour la partie serveur, C++ pour la synchronisation des Clients, Objective-C pour iOS et Java pour Android.

Il y avait plusieurs critères architecturaux à remplir dès le départ : multiplateforme, facilité d’extension, support des infrastructures, haute disponibilité basée sur les composants les plus largement utilisés. Donc, nous avons choisi PHP, pour cibler la pile « LAMP » (Linux / Apache / MySQL / PHP) qui est la plus répandue et éprouvée des plateformes permettant tout cela.

C’est également un projet open source et PHP est disponible gratuitement, facile à trouver, et multiplateforme (variantes Windows et Linux, IIS, Apache et autres serveurs Linux). Il bénéficie d’une communauté massive de développeurs dont beaucoup sont très expérimentés. Enfin, c’est un langage facilement accessible pour la communauté. Avec tout ça, c’était une évidence.

Franck Karlitschek le créateur de ownCloud

« L‘open source est la seule solution pour un stockage de données réellement sécurisé »

Comme j’ai commencé ce projet par une conférence sur la sécurité et la confidentialité, il était essentiel d’avoir la meilleure sécurité possible pour les API. J’ai choisi un chiffrement SSL fort pour toutes les API WebDAV et REST. L’authentification est faite via la méthode basique, qui est très simple et facile à gérer. On peut également utiliser SAML, fourni au travers de son implémentation Shibboleth. En complément OAuth et l’authentification à deux facteurs sont disponibles, et nous profitons même de la flexibilité de ownCloud pour intégrer un backend personnalisé, en utilisant des jetons à la place des mots de passe standards.

Je suis convaincu que le stockage de fichiers n’est pas seulement un service web ou une infrastructure informatique de plus. C’est là où les gens et les entreprises stockent et gèrent leurs données les plus importantes. C’est pourquoi il est essentiel de le rendre aussi sécurisé que possible. Avec un logiciel propriétaire, vous ne pouvez jamais être sûr qu’il n’y a pas une porte dérobée ou d’autres problèmes de sécurité. L’open source est la seule solution pour un stockage de données réellement sécurisé. Voilà ce que j’ai fait et pourquoi je l’ai fait. J’ai mis à ce travail toute ma passion pour l‘open source et il a aussi demandé beaucoup de soin !

Notes

[1] Tiens par exemple, vous voulez de quoi imprimer de chouettes posters qui expliquent ce qu’est le logiciel libre ? C’est par là