Libervia v0.8 « La Cecília »

goffi 30/11/2021, 23:02 planet-libre seenthis SàT Libervia project libre release

Je suis fier d'annoncer la sortie de Libervia 0.8 « La Cecília » (anciennement nommé « Salut à Toi »), après plus de 2 ans de développement.

Cette version est une avancée majeure pour préparer le futur du projet. Voyons les principales nouveautés.

Changement de nom

Par soucis de simplicité, le projet a été renommé en « Libervia » (qui était auparavant le nom du frontal web), et tous les frontaux officiels ont maintenant un nom évident comme Libervia Web , Libervia Desktop / Mobile (c'est le même frontal dans les 2 cas), Libervia CLI pour Command-Line Interface (interface en ligne de commande), et Libervia TUI pour Terminal User Interface (interface utilisateur pour terminaux). Le backend (service d'arrière-plan) devient, comme vous pouvez le deviner, Libervia Backend. Les anciens noms sont toujours utilisés comme alias.

En plus de la volonté de simplification, le changement de nom a été fait pour s'adapter à un public international : certaines personnes pensaient que « Salut à Toi » était réservé à des personnes francophones uniquement. Espérons que ce sera plus simple pour tout le monde, et que les gens ne seront plus perdus avec tous les noms qui étaient utilisés auparavant.

Notez que le changement de nom influence aussi votre fichier de configuration qui s'appelle désormais libervia.conf (sat.conf fonctionne toujours pour le moment). Les sections y ont été mises à jour avec de nouveau noms (pour configurer l'interface en ligne de commande, vous devez maintenant utiliser la section [cli] au lieu de [jp], pour l'interface web, c'est à présent [web] au lieu de [libervia]). Veuillez vérifier la documentation si nécessaire.

Changements techniques

Libervia a été porté en Python 3, ce qui a ouvert la porte à d'autres changements.

Brython a été intégré à Libervia Web, pour remplacer "Pyjamas" (un port en Python de GWT), qui n'était plus maintenu.

Nunjucks est aussi désormais intégré à Libervia Web, ce qui permet l'utilisation commune de certains modèles avec Jinja. C'est particulièrement utile pour faire des pages qui fonctionnent avec ou sans JavaScript.

L'implémentation d'OMEMO a été complétée avec le chiffrement des salons de discussion (MUC) et des fichiers (via XEP-0454: OMEMO Media Sharing).

De nombreuses autres modifications ne sont pas expliquées dans cette note pour éviter de la rendre indigeste. Vous pouvez vous référer à la liste des changements (en anglais) pour plus d'informations.

Nouveau thème par défaut pour Libervia Web

Un nouveau thème basé sur le très bon cadriciel CSS Bulma est devenu le thème par défaut. Grâce à lui, l'interface est plus claire et agréable à utiliser.

La liste des événements avec le nouveau thème

Invitations

Un système d'invitation simple a été intégré au frontal web, et il peut être utilisé soit pour donner accès à quelque chose à quelqu'un ayant déjà un compte XMPP, soit pour inviter quelqu'un par courriel. Le but est d'être capable de partager des choses (comme un album photo ou un événement) avec famille et amis sans s'attendre à ce qu'ils ou elles installent un logiciel ou créent un compte quelconque.

Inviter des personnes à voir un album photo

Listes

Un gestionnaire de tickets décentralisé est implémenté depuis la verison 0.7, et il est notamment utilisé pour gérer les tickets de Libervia lui-même. Jusqu'ici, il fonctionnait grâce à une fonctionnalité non standard disponible uniquement sur Libervia Pubsub (anciennement « SàT Pubsub », un composant Pubsub/PEP indépendant du serveur développé en parallèle de Libervia).

Cette fonctionnalité a été renommée avec le terme plus générique « listes » et utilise désormais XEP-0346: Form Discovery and Publishing, ce qui la rend utilisable avec un service pubsub générique.

Toutes sortes de listes peuvent être créées, que ce soit des tickets pour suivre les rapports de bogues ou demandes de fonctionnalités pour un projet, des listes de tâches à faire, de course, etc. Grâce à l'utilisation de XMPP pubsub, ces listes peuvent être fédérées, et les permissions peuvent être gérées facilement (pour, par exemple, permettre aux membres de la famille de modifier une liste de courses).

Liste de courses sur Libervia Web

Actuellement, 3 types de listes sont disponibles (tickets génériques, tâches, courses), mais on peut s'attendre à en voir plus dans les futures versions.

Albums photo

Des nombreuses améliorations ont été faites pour les albums photo du frontal web. Ils peuvent désormais être créés ou supprimés depuis Libervia Web, des photos ou des vidéos peuvent être téléversées, un diaporama utilisable avec un écran tactile et/ou sur petits écrans est disponible, ogv.js a été intégré pour rendre possible le visionnage de vidéos en Ogg Vorbis/Opus/Theora ans WebM VP8/VP9/AV1 sur les plateformes qui ne le supportent pas nativement et le système d'invitations mentionné plus haut a été intégré.

Vous pouvez désormais utiliser un diaporama pour voir vos photos et vidéos

Bureau

L'interface utilisateur de Libervia Desktop a également été mise à jour : la barre de menu supérieure a été supprimée, le glisser/déposer de fichiers est maintenant possible suivant la plateforme, la messagerie instantanée a un défilement infini, un nouvel écran de « sélection de conversation » rend le choix d'une entité avec qui discuter ou d'un salon à joindre plus faciles, les pièces jointes des messages sont affichées de manière plus agréable, entre autres améliorations.

Le sélecteur de tchat sur Libervia Desktop

Du travail a aussi été effectué sur Libervia Mobile (qui ne fonctionne que sur Android pour le moment), mais ce frontend n'est pas encore assez stable pour les utilisateurs finaux.

Joindre un fichier sur Libervia Mobile

Ligne de commande

L'interface en ligne de commande est à présent entièrement documentée (en anglais) et suite au changement de nom peut être utilisé soit avec la commande libervia-cli, soit la version courte li (l'ancien jp fonctionne encore pour le moment). Parmi les nouvelles commandes on peut mettre en avant li file get qui peut télécharger un fichier avec la gestion du schéma aesgcm (c.-à-d. « OMEMO Media Sharing », le partage de média via OMEMO), qui en fait une sorte de wget avec OMEMO. li file upload gère aussi le chiffrement de bout en bout, il est ainsi facile de partager un fichier chiffré depuis la ligne de commande ou un script.

La couleur d'arrière-plan est maintenant automatiquement détectée sur les émulateurs de terminaux compatibles et le thème est choisi en conséquence.

Mais aussi…

Composant de partage de fichiers

Libervia peut s'utiliser comme un composant (ce qui peut être vu comme un plugin générique pour serveur XMPP), et il inclut un composant de partage de fichiers.

Ce composant stocke les fichiers qui peuvent être retrouvés soit selon les permissions accordées, soit publiquement.

Les fichiers peuvent être téléversés ou téléchargés via XEP-0234: Jingle File Transfer et XEP-0363: HTTP File Upload est maintenant aussi implémenté, ce qui rend possible de partager des fichiers avec des liens HTTPS.

Ce composant peut maintenant être utilisé pour remplacer les implémentations internes aux serveurs XMPP de « HTTP File Upload ». En plus de la gestion des permissions fines, il n'y a pas de taille limite pour les fichiers et des quotas par utilisateurs peuvent être mis en place. Veuillez vous référer à la documentation pour voir comment faire. Les fichiers téléversés peuvent être retrouvés en utilisant XEP-0329: File Information Sharing et supprimés grâce aux commandes Ad-Hoc (XEP-0050: Ad-Hoc Commands).

Ce composant est nécessaire pour utiliser la fonctionnalité d'album photos.

Libervia Pubsub

Un composant Pubsub/PEP (anciennement appelé « SàT Pubsub ») est développé en parallèle de Libervia. Il vise à fournir une implémentation complète et indépendante du serveur.

Libervia Pubsub est publié en même temps que le client XMPP Libervia, et a, lui aussi, été porté sur Python 3.

Parmi les nouveautés, la recherche en texte plein a été implémentée (XEP-0431: Full Text Search in MAM), ainsi que la XEP-0346: Form Discovery and Publishing qui remplace les schémas de nœud (qui étaient non standard), et PEP fonctionne à présent pour le serveur lui-même, ce qui le rend utilisable pour la XEP-0455: Service Outage Status.

Images Docker

Les images Docker on été mises à jour et déplacées directement dans le dépôt libervia-backend (dans le sous-dossier docker).

Site officiel

Le site officiel a été mis à jour avec un nouveau thème (basé sur le nouveau thème de Libervia Web).

Installation

Libervia est disponible sur plusieurs distributions NU/Linux (au moins Debian et dérivées et Arch Linux). Malheureusement, la version actuellement dans Debian n'est pas à jour (à cause d'une publication à des dates différentes de Debian et Libervia), espérons que la nouvelle version sera disponible dans un dépôt « backport » rapidement.

Vous pouvez facilement installer Libervia sur n'importe quelle distribution en utilisant pipx:

$ pipx install libervia-backend
$ pipx install libervia-desktop

Ensuite lancez libervia-backend et un frontal (comme libervia-cli ou libervia-desktop). Reportez-vous à la documentation pour plus de détails.

Des images Docker sont disponibles, et en particulier un fichier web-demo.yml peut être utilisé avec docker-compose pour rapidement mettre en place une démo locale :

$ hg clone https://repos.goffi.org/libervia-backend 
$ cd libervia-backend/docker
$ docker-compose -f web-demo.yml up

Ensuite ouvrez votre butineur sur http://localhost:8880 et utilisez l'identifiant demo avec le mot de passe demo.

Et après ?

Un projet basé sur Libervia a été sélectionné par NLnet pour une subvention. Ce projet est en 2 parties : travailler sur une passerelle XMPP ⟺ ActivityPub, puis sur le chiffrement de bout en bout pour pubsub et les fichiers. Vous trouverez plus d'informations (en anglais) sur ce billet de blog et sur la page du projet NLnet. Ce projet est déjà bien entamé, et vous pouvez suivre la progression sur mon blog (qui est propulsé par Libervia/XMPP) ou sur le système de gestion de tickets (lui aussi propulsé par Libervia/XMPP). Un énorme merci à NLnet/NGI0 Discovery Fund !

D'autre part, il est prévu de travailler pour améliorer l'expérience utilisateur et la fonctionnalité de messagerie instantanée (en particulier sur le frontal web). Libervia vise à être particulièrement adapté pour les réseaux privés destinés à la famille et aux amis.

Enfin, j'ai eu la bonne surprise de voir que Libervia Web est utilisé pour le blog de jmp.chat. JMP est une entreprise qui vous fourni un numéro de téléphone qui peut être utilisé avec XMPP et SIP (vous pouvez appeler ce numéro depuis un téléphone traditionnel et recevoir l'appel vocal depuis un client XMPP)

Voilà qui conclu cette note de version. À bientôt !

E

edhelas 01/12/2021, 07:54

M

matlag 01/12/2021, 17:09

Passerelle ActivityPub et chiffrement de bout en bout Pubsub

goffi 23/04/2021, 11:48 planet-libre seenthis jabber-xmpp SàT Libervia project libre ActivityPub e2ee nlnet

Bonjour,

c'est avec grand plaisir que je vous annonce qu'un projet de passerelle ActivityPub <=> XMPP doublé d'une adaptation du chiffrement de bout en bout à PubSub a été sélectionné pour une subvention par NLnet/NGI0 Discovery Fund (avec un soutien financier de la commission européenne "Next Generation Internet") : https://nlnet.nl/project/Libervia/

Ce gros projet est divisé en 27 étapes, et va occuper la plupart de mon temps dédié au projet Libervia (anciennement "Salut à Toi", le projet a été renommé, je vais expliquer cela, en anglais, dans une "progress note" à venir).

La passerelle XMPP <=> ActivityPub va joindre 2 protocoles ouverts et décentralisés majeurs. En pratique, ce sera un composant pour serveur XMPP (utilisable avec n'importe quel serveur), et il va implémenter le protocole "serveur à serveur" de ActivityPub (aussi connu comme « protocole de fédération » ou « Federation Protocol »). Côté XMPP, ce sera principalement un service PubSub (avec quelques extras, comme les messages privés convertis en messages XMPP).

Le blogage XMPP (XEP-0277: Microblogging over XMPP) va être utilisé, et donc n'importe quel client qui l'implémente aura accès aux publications ActivityPub (Libervia et Movim par exemple).

Pour les fonctionnalités présentes dans ActivityPub et pas encore dans XMPP, il est prévu de proposer des « protoXEPs » (c.-à-d. des propositions d'extensions de XMPP) pour les implémenter. Les évènements font aussi parti du projet, et une compatibilité entre Mobilizon et Libervia est prévue, ainsi qu'une protoXEP pour standardiser cela côté XMPP.

Tout ceci est très excitant, parce que ça va étendre les deux réseaux, et donner un coup d'accélérateur aux projets intégrant le blogage et le chat XMPP.

La seconde partie du projet concerne le chiffrement de bout en bout. XMPP a connu des améliorations majeures sur le chiffrement de bout en bout suite au travail fait sur OMEMO, notamment initié avec Conversations, et sur OX, une intégration moderne de OpenPGP. C'est excellent, mais cela se concentrait jusqu'ici sur la messagerie instantanée. Le but va être d'ajouter le chiffrement de bout en bout au PubSub XMPP, avec les protoXEPs et l'implémentation dans Libervia. En d'autres termes, à la fin de ce projet, il sera possible d'utiliser le chiffrement de bout en bout avec toutes les fonctionnalités basées sur Pubsub (comme les blogs, forums, listes ou autre évènements que vous pouvez utiliser avec Libervia), c'est énorme ! Les signatures feront partie du projet aussi, signifiant qu'il sera possible d'authentifier un élément comme un billet de blog d'une façon standardisée.

En plus des standards qui vont bénéficier à la communauté XMPP entière, tout ceci sera implémenté dans Libervia, ce qui inclus mettre à jour l'implémentation actuelle pour arriver à l'état de l'art (c.-à-d. mettre à jour l'implémentation actuelle d'OMEMO et implémenter OX).

La dernière partie du projet sera l'implémentation du chiffrement de bout en bout dans le frontal web. En effet, l'architecture spécifique de Libervia fait qu'OMEMO n'est actuellement pas utilisable depuis le navigateur (l'implémentation est faite dans le « backend »). Pour rendre ceci possible, la bibliothèque Python OMEMO qui est actuellement utilisée va être portée sur WebAssembly et Brython, ce qui va permettre de faire du chiffrement et du déchiffrement directement depuis le navigateur.

Comme vous pouvez vous en rendre compte, c'est beaucoup de travail. Je vais faire la majeure partie de tout ceci, mais je ne serai pas seul (en particulier l'auteur de Python OMEMO fera le port sur wasm/Brython à travers ce projet). Le développement devrait prendre environ un an, la passerelle ActivityPub <=> XMPP étant la première partie.

Je profite de ce billet pour remercier encore NLnet et le programme NGI de l'UE, ainsi que mon employeur (Sourcefabric, qui développe en particulier Superdesk) pour m'avoir permis d'adapter mon rythme de travail.

J'ai adapté les tâches au traqueur de bogues de Libervia (qui fonctionne avec XMPP), aussi vous pouvez voir leur détails (en anglais) et suivre leur progression à cette adresse : https://salut-a-toi.org/bugs?search=nlnet

Enfin, je vais continuer à publier des notes de progression (en anglais), qui devraient aussi être disponible sur ActivityPub plus tard dans l'année ;). Le site web a été mis à jour, avec de nouvelles installations via Flatpak et Docker, RDV sur https://www.salut-a-toi.org.

Si vous avez des questions ou commentaires, n'hésitez pas à vous rentre sur le salon officiel XMPP de Libervia à sat@chat.jabberfr.org, ou à me joindre par exemple via ActivityPub (@Goffi@mastodon.social).

À bientôt.

debacle 23/04/2021, 18:56

E

errormovim 06/05/2021, 11:13

SàT PubSub 0.3.0 est disponible

goffi 21/08/2019, 07:00 jabber-xmpp SàT SàT Pubsub project libre release planet-libre

La version 0.3.0 de SàT Pubsub est disponible.

SàT PubSub est un service XMPP PEP/PubSub indépendant du serveur, qui vise à être complet et universel.

Ce projet est né du constat qu'il est difficile d'avoir des services PEP/PubSub complets sur tous les serveurs XMPP, et que même si c'est le cas ils peuvent tarder à implémenter de nouvelles fonctionnalités ou être difficiles à gérer.

Le projet « Salut à Toi » faisant un usage intensif des fonctionnalités PubSub de XMPP, 2 solutions étaient envisageables :

  • se concentrer sur un serveur XMPP particulier et le recommander, voire le faire évoluer dans la direction voulue. Ceci reviendrait à se bloquer sur une implémentation particulière d'un serveur XMPP et risquer de voir des fonctionnalités fonctionner incorrectement ou pas du tout sur les autres.

  • faire un composant indépendant du serveur, en utilisant des extensions XMPP pour avoir un accès privilégié au serveur

C'est la deuxième option qui a été retenue, SàT PubSub utilise les XEPs (extensions XMPP) Namespace Delegation (XEP-0355) et Privileged Entity (XEP-0356) pour pouvoir fournir des fonctionnalités avancés et PEP.

Bien que « SàT » soit utilisé dans le nom (par son origine), ce composant ne nécessite pas d'utiliser Salut à Toi et peut-être utilisé par tout logiciel XMPP.

SàT PubSub implémentait déjà MAM et RSM (permettant de faire des recherches dans les archives et d'utiliser la pagination pour retrouver les éléments), la version 0.3.0 apporte également :

  • le modèle d'accès presence
  • la gestion de +notify
  • la notion d'administrateurs, qui sont des identifiants (« JID ») avec des accès privilégiés
  • les affiliations
  • la possibilité de retrouver les éléments classés par date de création ou modification avec Order-By (XEP-0413)
  • la fonctionnalité expérimentale « Node Schema », pour associer des types de données à un nœud via les Data Forms (XEP-0004). Cette fonctionnalité est notamment utilisée dans Salut à Toi pour les tickets.
  • la fonctionnalité expérimentale « Serial IDs » qui permet d'attribuer des identifiants d'éléments utilisant des incréments (1, 2, 3, etc.) au lieu de valeurs aléatoires. Ceci est notamment utile pour les tickets.
  • la fonctionnalité expérimentale « PubSub Admin », qui permet aux administrateurs de publier des éléments en spécifiant un autre éditeur (« publisher »). Peut-être utilisé pour restaurer une sauvegarde.
  • la fonctionnalité expérimentale « consistent publisher » qui, une fois activée sur un nœud, garde l'éditeur (« publisher ») original quand un élément est modifié par le propriétaire du nœud ou un administrateur. Ceci permet de modifier l'élément sans empêcher l'éditeur original de le modifier à nouveau lui-même (par exemple en éditant un commentaire de blog, ou en changeant le statut d'un ticket).
  • un fichier de configuration peut désormais être utilisé avec SàT PubSub, évitant d'avoir à spécifier les options – dont le mot de passe – entièrement sur la ligne de commande. Le même fichier que pour Salut à Toi (sat.conf) est utilisé, les options de SàT PubSub doivent être mises dans la section [pubsub]).
  • une nouvelle documentation

Vous trouverez plus de détails dans le CHANGELOG.

Le développement sur la version 0.4 a déjà commencé avec le port pour Python 3 qui est fonctionnel et complète le reste de l'écosystème Salut à Toi.

Pour installer SàT PubSub, il vous suffit d'entrer pip install sat_pubsub dans un environement virtuel Python 2, référez-vous à la documentation pour plus de détails.

E

errormovim 07/10/2019, 22:43

Salut à Toi v0.7 « La Commune »

goffi 24/07/2019, 22:49 jabber-xmpp SàT project libre release planet-libre seenthis

Salut à vous,

c'est avec plaisir et un certain soulagement que je vous annonce la sortie de « Salut à Toi » v0.7 (La Commune).

Pour mémoire « Salut à Toi » (ou SàT) est un écosystème de communication décentralisé, basé sur le standard établi « XMPP ».
Il vous permet de faire de nombreuses choses (messagerie instantanée, partage de fichiers, blogage/microblogage, événements, forums, etc.) et a la particularité d'être multi-interfaces (différents « frontaux » sont disponibles pour le web, le bureau, les appareils mobiles, ou encore le terminal et la ligne de commande).

La préparation de cette version aura pris 3 ans, c'est la première version dite « grand public », autrement dit qui est utilisable par un public qui n'est pas forcément technique, même s'il y a encore des améliorations à faire au niveau de l'interface et l'« expérience utilisateur ».

Il n'est pas question de refaire une longue énumération de fonctionnalités avec captures d'écrans, vous pouvez vous référer à l'annonce de la version alpha pour ceci. Je vais plutôt expliquer certaines nouveautés majeures :

Cagou, l'interface bureau/appareils mobiles

Promis suite à notre modeste campagne de financement participatif, Cagou est le nom du nouveau frontal bureau/appareils mobiles (Android uniquement pour le moment). Pour la petite histoire, c'est une référence à un superbe oiseau qui ne vole pas et aboie, endémique à la non moins superbe Nouvelle-Calédonie, mais aussi un clin d'œil à Kivy, le cadriciel que nous utilisons et dont le nom et logo rappellent le Kiwi de la Nouvelle-Zélande.

Cette interface est donc multi-plateformes, et ne se contente pas de la messagerie instantanée : vous pouvez vous en servir pour transférer des fichiers (par exemple vos films/photos entre votre téléphone et votre ordinateur de bureau), ou comme télécommande pour votre lecteur de médias. Il est bien entendu prévu qu'il gère également le blogage dans un avenir proche.

Cagou est pensé pour être utilisable aussi bien sur un petit écran qu'en plein écran sur un grand moniteur de bureau, et permet de diviser facilement l'écran en zones pour, par exemple, suivre plusieurs salons de discussion en même temps.

Sur Android l'application souffre encore de quelques problèmes de lenteur et même parfois de plantages. Plusieurs problèmes seront corrigés avec le port sur Python 3, aussi considérez cette version comme un premier jet qui permet d'avoir vos commentaires et suggestions.

Cagou sur Android

Chiffrement de bout en bout

Bien que SàT gère le chiffrement de bout en bout depuis plusieurs années via « OTR », cette version voit l'arrivée d'« OMEMO », un algorithme palliant des défauts du précédent (il permet notamment d'envoyer des messages chiffrés hors ligne, ou de les afficher sur plusieurs appareils). OMEMO n'est implémenté qu'en conversation simple (dites « 1:1 », entre 2 personnes) pour le moment, mais la prochaine version verra certainement la gestion des conversations de groupes chiffrées de bout en bout.

Événements, album photos, forums, gestion de tickets, requêtes de fusion

De nombreuses fonctionnalités font leur apparition. Vous pouvez désormais créer et gérer des événements (familiaux par exemples), avec une classique liste d'invités et de réponses types « RSVP » (je viens, je ne viens pas, je viens peut-être). Il est possible d'inviter des gens même s'ils ne sont pas sur le réseau XMPP en utilisant des comptes « invités » générés automatiquement et envoyés à des adresses de courriel.

Vous pouvez créer et partager des albums photos, une spécialisation du partage de fichiers. La création n'est pas encore disponible depuis les interfaces graphiques, c'est une amélioration à prévoir rapidement, la consultation par contre est simple depuis Libervia (l'interface web).

Un forum basique est également de la partie, ainsi qu'une gestion des tickets et requêtes de fusion (« merge requests »). Ces 2 dernières fonctionnalités ont été implémentées pour les besoins du projet, mais elles sont très souples et pourront (dans une prochaine version) facilement être utilisée dans la vie courante (par exemple pour des listes de courses ou de choses à faire).

Tout ceci tire parti des capacités de publication/abonnement (ou « PubSub ») de XMPP, et peuvent profiter de son système de permissions (on peut ainsi imaginer une liste de courses partagée entre les membres de la famille, pour indiquer qui a pris quoi).

À noter que pour en profiter il est actuellement nécessaire d'utiliser le service PubSub « SàT Pubsub », un project fait pour les besoins de Salut à Toi (mais utilisable par tout logiciel XMPP).

un blog sur Libervia

album photo sur Libervia

Cadriciel (framework) web

Le développement de Libervia, le frontal web, l'a mené à devenir un cadriciel (ou « framework ») web. La raison de cette évolution est qu'il fallait une interface très souple, permettant d'implémenter et tester facilement de nouvelles idées ou fonctionnalités. Le but est d'avoir un cadriciel naturellement décentralisé et fédéré (parce que basé sur XMPP), qui s'intègre simplement dans l'écosystème. Je passe rapidement sur les détails techniques, mais il s'agit de lier le moteur de rendu Jinja2 avec SàT et d'utiliser PubSub comme base de données. En outre, le frontal en ligne de commande (jp), permet d'utiliser les même modèles pour faire un rendu statique (par exemple pour générer un blog statique ou des archives d'un salon de discussion).

C'est avec ce cadriciel qu'ont été développées les fonctionnalités mentionnées ci-dessus, elles sont organisées en « pages » qui se veulent simple d'utilisation et peuvent fonctionner sans javascript (quand c'est possible, ce qui n'est pas le cas pour le « chat »). C'est grâce à lui que fonctionne le nouveau site officiel où vous trouverez une documentation d'introduction.

mais encore

Je ne vais pas trop m'étendre, les nouveautés sont trop nombreuses, mais il vaut tout de même la peine de mentionner que SàT peut également être utilisé pour stocker vos fichiers sur le serveur (il peut être utilisé en tant que « composant »), ou que jp, le frontal en ligne de commande permet de gérer beaucoup de choses (retrouver ou publier un article de blog, envoyer un message chiffré ou non, retrouver l'avatar de quelq'un, etc.).

Installation

Salut à Toi est disponible dans Debian et ses dérivées, mais attention c'est le cas seulement pour le backend, et les interfaces console et ligne de commandes, de l'aide serait d'ailleurs apprécié pour empaqueter Cagou (interface bureau/appareils mobiles) et Libervia (interface web).

Il est également disponible sur les dépôts AUR d'Arch Linux, et sur cette distribution il existe des paquets pour installer les versions de développement.

Des paquets Flatpak permettent une installation aisée de Cagou, Primitivus (console) et jp (ligne de commande) sur la plupart des distributions GNU/Linux, vous trouverez les liens sur la page principale du site.
Vous pouvez bien sûr aussi utiliser pip, le gestionnaire de paquets de Python. Un simple pip2 install --user sat suivit d'un pip2 install --user cagou voire d'un pip2 install --user libervia devrait suffire. Les instructions sont disponibles dans la documentation du site.

Pour Android, vous trouverez un Apk sur ce lien. Je vais faire les démarche pour le rentre disponible sur F-Droid, et éventuellement le « play store ».

Bien que SàT devrait techniquement fonctionner sur Mac OS X, Windows et les *BSD, il n'est pas testé sur ces plateformes (car je ne les ai pas à disposition). J'ai eu quelques retours sur Mac. Si des personnes sont intéressées, une aide pour tester et empaqueter serait plus que bienvenue.

Avenir

La principale chose attendue pour la 0.8 est le port sur Python 3, il est enfin possible maintenant que plus aucune dépendance ne bloque, et c'est la seule chose certaine pour la version à venir. Plusieurs grosses pistes sont envisagées ensuite et il va falloir faire des choix, n'hésitez pas à donner votre avis/préférence en commentaire.

Visioconférence

Jingle étant déjà implémentée, la visioconférence est prévue de longue date. Elle ne devrait pas être trop difficile à implémenter pour l'interface web (grâce à WebRTC), mais demandera certainement plus de travail sur bureau/Android (évaluer les différentes options, GSTreamer étant le candidat envisagé pour le moment, et intégrer ça à Cagou). C'est un chantier important.

Améliorer le partage de fichiers

SàT propose déjà un partage de fichiers avancé (plus qu'un simple envoi de fichier sur le serveur), incluant un composant serveur. Il est fort possible que des développements continuent dans cette direction.

partager un répertoire avec Cagou

Version iOS

Il serait techniquement possible de porter Cagou sur iPhone. Il y a plusieurs obstacles à cela, notamment juridique (l'Apple store n'est pas compatible avec la licence actuelle, AGPL 3+). IL faudrait également du matériel dédié, et du temps. Ce n'est clairement pas la priorité, mais sachez qu'une version iOS est envisageable.

Passerelle ActivityPub

Avec cette version, SàT peut désormais être utilisé en « composant », c'est-à-dire un service côté serveur. Cette possibilité peut être mise à profit pour créer une passerelle ActivityPub, ce qui permettrait de communiquer dans les 2 sens avec les projets utilisant ce protocole. Il y a déjà un projet en cours de passerelle XMPP pour Prosody, aussi je vais certainement attendre de voir son évolution avant de me lancer moi-même.

Évolution de la messagerie instantanée

Bien que déjà fonctionnelle, la messagerie instantanée peut devenir très complète si on y consacre du temps. Il s'agirait d'ajouter les quelques fonctionnalités manquantes (réactions, correction du dernier message), d'améliorer la gestion des fichiers, des copier-collers des morceaux de code, d'implémenter le chiffrement de bout en bout en groupe, etc. Tout ceci est prévu, la question est de savoir si on en fait la priorité ou pas.

Amélioration de l'utilisabilité

C'est probablement le chantier qui sera prioritaire une fois le port Python 3 effectué. SàT est déjà bien fourni en fonctionnalité, mais les interfaces ont besoin de travail pour être facilement utilisable. J'aimerais en particulier travailler sur le lancement de l'application et la découverte de contacts. Il y a également beaucoup de « petits détails » qui accumulés prennent du temps mais rendent le logiciel beaucoup plus agréable : intégration au bureau, aux actions de partage, une sélection plus agréable des fichiers, etc.

Voilà pour les pistes envisagées, chacune demande du temps et encore une fois vos commentaires/avis sont les bienvenus. Il y a d'autres idées qui traînent, aussi il va falloir bien choisir les priorités.

Mais…

Salut à Toi est un gros projet qui a un potentiel, mais il est pour le moment développé par une seule personne. Je n'ai qu'un jour par semaine consacré à SàT, et le rythme est très difficile à tenir. Dans les mois qui viennent je vais étudier les options de financement du projet. Il va être nécessaire que je trouve une solution à moyen terme pour que ce projet reste sur les rails.

Liens utiles

  • site officiels: https://salut-a-toi.org
  • documentation: https://salut-a-toi.org/documentation
  • notes de progression (en anglais): https://www.goffi.org/tag/S%C3%A0T%20progress
E

edhelas 25/07/2019, 06:06

E

errormovim 07/10/2019, 22:43

SàT 0.7.0 vient d'entrer en bêta

goffi 07/05/2019, 07:29 jabber-xmpp SàT project libre seenthis planet-libre

La version « 0.7.0 beta 1 » de Salut à Toi vient de sortir. En d'autres termes, nous venons de commencer la phase bêta, il n'y aura plus de nouvelles fonctionnalités (sauf ajustements mineurs), et maintenant il s'agit de se concentrer sur la stabilité, le débogage, et l'utilisabilité.

Pour mémoire, « Salut à Toi » est un écosystème de communication libre, décentralisé, et éthique. Il propose de nombreuses fonctionnalités (messagerie instantanée, chiffrement de bout en bout, blog, partage de fichiers, événements, forums, etc.), et fonctionne nativement sur bureau, appareils mobiles (Android), sur le web, et sans interface graphique (interface console et en ligne de commande).

C'est un soulagement de passer cette étape après l'énorme travail depuis la dernière version (0.6.1), sortie il y a plus de 2 ans 1/2 !

Maintenant c'est à vous de jouer, il faut tester, remonter les problèmes (sur https://bugs.goffi.org ou sur le salon du projet, aussi accessible via le web), et faire vos suggestions, c'est le moment !

Si vous connaissez Python, je cherche des personnes pour m'aider à rendre le project installable sur Windows, Mac OS et *BSD. Je travaille également sur un paquet flatpak. La partie web serait intéressante à avoir sur Yunohost, là encore de l'aide serait appréciée (cf. travail commencé).

Notez que SàT est déjà disponible sur Debian et probablement derivés (la bêta n'y est pas encore par contre), ainsi que sur Arch Linux (utilisez les paquets sat-*-hg pour tester la bêta).

Les instructions d'installation sont disponibles dans la documentation, et je travaille sur un nouveau site web qui en affichera un rendu plus agréable à lire, il devrait être en ligne dans la semaine.

Voici les liens pour les fichiers d'installation, et vous trouverez la plupart d'entre eux sur Pypy (notez que vous devez parcourir « release history » pour voir la version bêta) :

Je fini avec une capture d'écran de la version Android de Cagou, notez que ce blog est également fait avec ce projet :

capture d'écran de Cagou v0.7.0b1 sur Android

E

edhelas 07/05/2019, 07:33

Salut à Toi au FOSDEM ce week-end

goffi 29/01/2019, 17:56 SàT projet libre jabber-xmpp planet-libre seenthis

Salut à Vous,

une petite note pour vous indiquer que je serai présent au FOSDEM et que j'y ferai 2 conférences:

  • « XMPP Beyond Instant Messaging » où je montrerai qu'XMPP est bien plus qu'un protocole de messagerie instantanée. Salle H.1309 (Van Rijn) dimanche à 9:25
  • « Salut à Toi: A Python Based Social Network And More » qui sera une présentation de l'écosystème Salut à Toi. Salle UD2.120 (Chavanne) dimanche à 16:00

Je serai régulièrement au « XMPP lounge », mais je compte aussi voir certaines conférences et autres stands, aussi n'hésitez pas à me pinguer sur le salon XMPP sat@chat.jabberfr.org (accessible également via ce lien) si vous souhaitez discuter et/ou une démonstration.

Salut à Toi est en cours de stabilisation, et la version 0.7 à venir verra l'arrivée de la nouvelle interface bureau/appareils portables (Android en particulier), du partage de fichiers avancé, des événements, de la base d'une forge décentralisée (tickets et « merge requests »), du chiffrement via OMEMO, etc.

À noter aussi l'arrivée d'un cadriciel (framework) web unique en son genre, puisqu'il permet de créer des sites naturellement décentralisés en liant XMPP et Python.

Au plaisir de vous voir !

Salut à Toi à la Pycon à Lille dès demain

goffi 03/10/2018, 09:44 SàT projet release libre GNU-linux jabber-xmpp planet-libre seenthis

Pour les libristes habitant près de Lille, je serai à la Pycon cette semaine avec 2 jours de sprint autour de « Salut à Toi », puis une conférence le samedi à 16:30.

Si vous n'allez pas à la Pycon (et même si vous y allez ;) ), on peut aussi se voir pour une petite bière dans le vieux Lille en soirée. Bref n'hésitez pas à me contacter si vous voulez parler décentralisation, réseaux « sociaux », XMPP et/ou politique !

Salut à Toi 0.7 alpha, contributrices, contributeurs, à vos claviers !

goffi 05/07/2018, 14:05 SàT projet release libre GNU-linux jabber-xmpp planet-libre seenthis

C'est avec plaisir que je vous annonce la sortie de la première version alpha de Salut à Toi 0.7. Cela permet d'une part de vous montrer l'état, les avancées et l'orientation du projet, mais aussi de faire un appel à la contribution. Je vais dans la suite de cet article vous présenter une partie des capacités de Salut à Toi, ainsi que vous expliquer briévement comme les utiliser.

Vous trouverez un lien vers un fichier .apk pour tester sur Android dans la section « Testez ! ».

Pour mémoire, Salut à Toi est un écosystème collaboratif, multi interfaces (web, bureau, appareils portatifs, terminal, ligne de commande), multi-plateformes, et multi-usages. Il permet de gérer vos communications, de vous organiser, de partager vos fichiers, etc. C'est aussi, et avant tout un projet engagé qui prend en compte l'impacte des nouvelles technologies sur nos vies, et qui cherche à stimuler le débat public.

Nous allons nous concentrer sur les interfaces Web, et bureau/appareils portatifs, car ce sont celles qui sont les plus susceptibles d'intéresser le plus grand nombre.

Interface web (appelée « Libervia »)

Libervia a entamé des changements très importants, avec l'apparition d'un cadriciel (« framework » en anglais) web.

L'idée, expliquée dans un billet de blog est de fournir les composants de base (comptes et authentification, permissions, commentaires, etc.) directement utilisables et décentralisés grâce à XMPP. On construit ainsi facilement des sites automatiquement décentralisés et fédérés.

Notez que tout est prévu pour la traduction dans différentes langues, mais que pour l'instant seul l'anglais est disponible. De l'aide serait grandement appréciée pour améliorer cela !

Voyons les fonctionnalités déjà disponibles :

Chat

capture d'une discussion avec le « chat » de Libervia

Probablement le plus évident, il y a une application de messagerie instantanée. Pour l'utiliser il faut cliquer sur « Chat », et vous connecter si ce n'est pas encore fait.

Vous arrivez alors dans un panneau indiquant les salons contenus dans vos marque-pages, il vous suffit de cliquer sur l'un d'eux, ou d'indiquer l'identifiant (jid) d'un nouveau salon. C'est pour le moment assez basique, vous pouvez toutefois entrer « /help » pour avoir accès à liste des commandes textuelles.

Blog

mon blog, qui tourne avec Libervia Une des fonctionnalités phares de SàT, et peu courante dans le monde XMPP (le seul client activement développé le permettant également étant Movim), est le blog (qui est donc décentralisé).

Un clique sur le menu vous amènera sur une page de « découverte » où vous pourrez voir vos contacts ayant un blog. Cliquez sur l'un d'eux pour le lire, ou indiquez un identifiant pour en lire un qui n'est pas dans vos contacts.

Forums

un forum décentralisé qui tourne sur XMPP

Fonctionnalité unique dans le monde XMPP, SàT propose un système de forums, qui permet en pratique d'organiser des discussions dans des catégories. Les forums étant en arrière plan la même chose que les blogs, il est possible d'utiliser un blog comme forum et vice versa.

La création de forums se fait par un ou une administrateur/ice en ligne de commande avec l'outil « jp » (voir ci-dessous).

Événements

la liste personnelle des événements

Autre fonctionnalité unique dans le milieu XMPP (et en décentralisé ?), SàT permet de créer des événements, et bien sûr d'y inviter du monde.

Comme pour les autres fonctionnalités, la page est prévue pour être simple à utiliser : vous avec un bouton « créer un événement », qui vous mène à un formulaire. Un nom, un lieu et une date plus tard (et éventuellement une photo pour le représenter), et votre événement est créé. Vous arrivez alors sur la page d'administration où vous pouvez indiquer les personnes à inviter.

Les événements sont pour le moment privés, uniquement vous et vos invités y ont accès, mais des événements publiques sont prévus.

un invité répond à la demande RSVP d'un événement

À noter qu'il est possible (mais pas encore depuis l'interface web) d'ajouter des champs arbitraires à vos événements, permettant par exemple de préciser ce que vos invités amènent à un pique-nique.

Partage de fichiers

le partage de fichier depuis le navigateur

Là on touche à une fonctionnalité utile au quotidien, et dans beaucoup de circonstances. Salut à toi permettait depuis longtemps de s'envoyer des fichiers, ou d'en déposer sur votre serveur, mais il s'agit ici de partager un ou des répertoires, ou de déposer des fichiers sur un serveur.

Tout ceci est expliqué dans un récent billet de blog, mais je vous donne tout de même 2 exemples pour bien comprendre :

  • vous êtes chez vous, vous venez de prendre une vidéo et des photos sur votre téléphone que vous voulez voir sur votre ordinateur. Vous avez installé Cagou, l'interface bureau/Android de SàT sur votre appareil et partagé votre répertoire photo. Depuis votre ordinateur de bureau, dans la partie « partage de fichiers » vous voyez votre appareil et pouvez télécharger directement la vidéo et les photos. La connexion se fera directement sur le réseau local d'appareil à appareil, vos fichiers ne transiteront pas par un serveur situé on ne sait où.

  • vous avez des fichiers que vous voulez accéder de n'importe où n'importe quand (des photos ou des documents de travail par exemple). Vous les mettez dans un répertoire virtuel sur votre composant de partage de fichier (une instance SàT également, voir plus bas), et vous y accédez aussi simplement que dans l'exemple précédent.

Notez que bien qu'avec Cagou la connexion se fait directement quand c'est possible, ça n'est pas encore le cas pour Libervia qui téléchargera d'abord le fichier sur le serveur avant de la fournir en HTTPS. La connexion directe nécessitera WebRTC qui est prévu pour la version 0.8.

Les permissions se gèrent très simplement : vous indiquez qui a le droit d'accéder à vos fichiers en quelques cliques.

Les fichiers passent pour le moment en clair (non chiffré), mais ceci ne devrait plus être le cas d'ici la version finale.

Albums photos

un album photo avec un commentaire

Basé sur la fonctionnalité précédente, un mode album photos permet de présenter un dossier qui ne contient que des photos avec une vue adaptée, et de le commenter.

Les permissions sont très utiles ici, permettant de ne laisser, par exemple, que votre famille visionner un album.

Il n'est pas encore possible d’accéder à un album depuis l'interface de Libervia, pour tester vous allez devoir changer l'URL à la main depuis le partage de fichiers (en remplaçant files/list par photos/album).

Tickets

les tickets de SàT, les premiers ont été importés de Bugzilla

Développé pour nos propres besoins, SàT permet désormais de gérer des tickets à la façon d'une forge logicielle. On est dans le classique ticket de suivi, rapport de bogue, tâche à faire, etc.

Les champs sont libres, il est ainsi très facile d'utiliser cette fonctionnalité pour tout type de listes : tâches à faire, mais aussi, par exemple, liste de courses.

Requêtes de fusion

un patch essentiel est en cours de revue

Dans la lignée des tickets, SàT gère également les « requêtes de fusion » (ou « merge requests » en anglais). Développé et utilisé en premier lieu pour le développement de SàT lui-même, ce système a l'avantage de ne pas être lié à un outil particulier (comme Git ou Mercurial). Il est actuellement utilisé avec Mercurial, mais il est possible de l'utiliser avec ce que l'on souhaite, et cela n'est pas réservé au développement de code logiciel.

Ces 2 dernières fonctionnalités font de SàT une forge décentralisée. Même si elle est encore basique, elle a l'avantage d'être simple d'utilisation, souple et facilement adaptable, et surtout il n'existe pas ou peu de forge décentralisées à l'heure actuelle (on peut sans doute compter Fossil, et peut être d'autres).

Encore une fois, l'arrivée de contributions permettrait d’accélérer les choses et d'en faire un outil très puissant.

Application

la partie dynamique, qui est en maintenance minimal et sera réécrite pour la 0.8

Pour conclure ce petit tour de Libervia, notons l'application qui vous amènera à une version entièrement dynamique, plus élaborée mais également plus difficile à utiliser, la version de base voulant être facile à prendre en main.

L'application web Libervia permet d'utiliser des widgets que vous pouvez déposer côte à côte, de faire du chiffrement de bout en bout (via OTR), ou de publier des billets de blog en mode simple ou WYSIWYG, avec la syntaxe qui vous convient (Markdown par exemple).

Il s'agit de l'application historique qui pour des raisons techniques n'est plus qu'en maintenance minimale et comporte un certain nombre de problèmes (comme le contact qui apparait 2 fois, visible dans la capture ci-dessus). Elle sera réécrite pour SàT 0.8, mais est laissée dans cette version en l'état pour ceux qui souhaitent toujours l'utiliser.

Cagou (bureau/Android)

Promise suite à notre campagne de financement, qui nous a permis de récolter un peu plus de 3000 €, Cagou est notre nouvelle interface de bureau et pour appareils Android. Elle se veut moderne, facile à utiliser, et puissante.

Son interface originale est inspirée de Blender, elle permet de diviser l'écran pour afficher plusieurs widgets en même temps. Cette interface a été pensée pour qu'on puisse l'utiliser même sans connaître cette capacité de division, tout en étant évidant à utiliser une fois celle-ci découverte.

Pour utiliser un widget, cliquez tout simplement sur l’icône en haut à gauche du widget en cours pour sélectionner un autre.

Pour le moment, 5 widgets sont disponibles : chat, liste de contacts, partage de fichiers, sélectionneur de widgets et paramètres.

Tout en haut, vous avez un menu (uniquement sur le bureau) et une zone de notification, ou les messages apparaissent quelques secondes (et sont visibles en entier en cliquant sur la tête de Cagou gauche). De l'autre côté, une autre tête de Cagou peut apparaître quand vous recevez des notifications nécessitant une action de l'utilisateur (nouveau contact par exemple, ou demande d'authentification, voir ci-dessous). Ainsi pas de popup qui vole le focus quand vous tapez un message ou autre.

Split

Originalité de Cagou, inspirée de Blender, il est possible de diviser l'écran à volonté en cliquant sur les zones avec 3 points (en haut et à gauche) puis en les faisant glisser. Si la barre apparaît en rouge, cela veut signifie que vous allez fermer la zone. Une image animée devrait rendre les choses plus claires :

démonstration des capacités de séparation des widgets (split) de Cagou

Vous pouvez ainsi vous organiser comme vous l'entendez, et surveiller plusieurs choses en même temps. À terme il devrait être possible de garder les dispositions pratiques pour les remettre en place facilement.

Chat

capture du mode « chat » de Cagou

Le chat devrait être relativement intuitif. La zone du haut indique le salon ou l'identifiant (JID) de la personne avec laquelle vous discutez. Il est possible d'entrer un autre identifiant manuellement pour changer de salon, par exemple entrez sat@chat.jabberfr.org pour venir sur le salon de Salut à Toi.

Toujours en haut, l’icône « cadenas » à droite (visible uniquement dans les conversations 1/1) vous permet de chiffrer de bout en bout la conversation, avec OTR uniquement pour l'instant (voir plus bas).

Si vous avez plusieurs conversations en cours, vous pouvez passer de l'une à l'autre en balayant l'écran avec votre doigt horizontalement (mouvement aussi appelé « swipe »). Seules les conversations non déjà visibles sur l'écran seront disponibles, et pour le moment elles sont dans un ordre alphabétique (il est fort probable que les conversations récentes soit disponibles en premier d'ici la version stable).

Enfin dans la zone du bas, outre la zone de saisie vous voyer un bouton + cerclé qui permet d'ouvrir le panneau d'envoi de médias. Sur bureau vous n'avez pour le moment que la possibilité de choisir un fichier, mais sur Android vous pouvez sélectionner/prendre une photo, une vidéo, sélectionner un fichier, ou encore enregistrer un message audio. Dans tous les cas, vous pouvez choisir si vous voulez téléverser le fichier sur votre serveur, ou l'envoyer directement à votre correspondant, sans passer par le serveur.

Transfert de fichiers

Le principe a déjà été expliqué pour Libervia, voici une animation montrant comment partager un répertoire sur Cagou :

partager un répertoire depuis Cagou

Comme vous le voyez, il suffit de faire un clique/appui long sur le répertoire ou fichier à partager, et de sélectionner les personnes qui y auront accès.

Si vous cliquez sur le bouton « share local files » dans la zone d'en-tête pour changer de mode et voir les appareils qui partagent. Vous verrez alors apparaître – comme sur Libervia – 3 zones : la première avec les éventuels composants de partage, la deuxième avec vos propres appareils (votre téléphone ou ordinateur de bureau par exemple), et enfin les appareils de vos contacts. Là encore, la zone de saisie permet de filtrer les appareils affichés.

voir les appareils qui peuvent partager des fichiers

Authentification sur un site externe

SàT est un projet qui pousse à l'exploitation des différentes possibilités de XMPP, et notamment l'authentification sur des sites externes. Le principe est de pouvoir vous authentifier sans créer de compte sur n'importe quel site en indiquant juste votre JID.

Démonstration en vidéo, grâce au site de démo mis en place par jnanar, l'écran sur la droite est un téléphone (capturé avec scrcpy):

s'authentifier très simplement avec XMPP

Vous pouvez très facilement intégrer cela dans votre propre site soit en utilisant le composant de Chteufleur (qui est d’ailleurs à l'origine de l'implémentation dans SàT, un grand merci à lui), soit en utilisant un serveur où c'est déjà en place (c'est pas exemple le cas sur jabberfr grâce aux GA – gentils admins – de ce site).

Notez bien qu'une fois ceci en place, dans votre site vous n'avez besoin d'effectuer qu'une seule requête HTTPS pour valider une authentification (et ça serait super qu'un lecteur fasse l'implémentation pour LinuxFr).

Contacts

Pas besoin de s'éterniser sur ce mode, mais il est bon de savoir qu'il permet d'ajouter un contact en cliquant sur le bouton idoine en haut. Un/une clique/touche long(ue) permet également de supprimer un contact.

Un clique simple va lancer le mode discussion avec la personne choisie.

Ligne de commande (JP)

Il y a beaucoup trop de choses nouvelles dans jp pour tout décrire ici.

Quelques informations utiles tout de même :

  • dans jp on met toujours les commandes puis les arguments (jp [commande] [sous-commande] --arg_1 --arg_2 --etc)
  • jp [commande] --help vous permet de savoir comment utiliser une commande
  • jp shell vous permet d'avoir une invite de commande REPL
  • il est possible d'avoir des commandes haut niveau et bas niveau. Par exemple pour le blog, vous pouvez avoir les billets d'un blog mis en forme en faisant jp blog get -s blogueur@quelquepart.ext -O fancy, ou le XML bas niveau avec jp pubsub get -s blogueur@quelquepart.ext -n urn:xmpp:microblog:0
  • beaucoup de commandes disposent d'un système de mise en forme avec --output (ou -O). ainsi jp blog get -s blogueur@quelquepart.ext -O json vous permet de retrouver les métadonnées d'un fil de blog en JSON
  • jp est capable de générer des sites statiques grâce à --output template
  • quand le générateur de site le supporte, vous pouvez directement utiliser l'URL d'un blog pour l'éditer. Par exemple, je peux éditer un de mes derniers billets de blog en faisant jp blog edit -u https://www.goffi.org/b/khii3yEKWDhmNYSDt5GGrY/vers-forge-decentralisee-basee-xmpphttps://www.goffi.org/b/khii3yEKWDhmNYSDt5GGrY/vers-forge-decentralisee-basee-xmpp est l'URL de la page générée en HTML. Je me retrouve alors avec mon éditeur de texte affichant le code de ma page d'un côté (dans la syntaxe de mon choix) et les métadonnées de l'autre. Notez que cela fonctionne avec les sites générés par Libervia, mais également avec Movim.

Petite démonstration du shell pour lire un blog :

lecture d'un blog depuis le shell (jp)

Testez !

Vous pouvez tester tout cela, les instructions d'installations sont disponibles (en anglais seulement, nous manquons de moyens pour traduire) sur le wiki en cliquant ici.

SàT (backend + jp (CLI) + Primitivus (TUI)) est disponible dans Debian experimental (merci à Robotux, Naha, Debacle et les autres empaqueteurs).

SàT et ses frontaux (jp, Primitivus, Cagou, Libervia) sont disponibles sur Arch Linux (merci à jnanar et Link Mauve)

Nous avons eu confirmation que SàT et Cagou fonctionnent sur Mac OS X (merci à xma), nous aimerions du monde pour tester également sur Windows, BSD*, ou autre.

Vous pouvez tester sur Android en cliquant sur ce lien depuis votre appareil (il faut avoir autorisé les installations depuis les sources externes).

Notez bien qu'il s'agit d'une version alpha, ce qui signifie :

  • que ça plante, le code n'est pas encore stable
  • que toutes les fonctionnalités ne sont pas finies, ou présentes
  • que ça n'est pas optimisé
  • que ça n'est pas poli (graphiquement, il ne va vous insulter si vous êtes gentil avec lui)

Ah, en parlant de fonctionnalité non encore présente, il y a de très fortes chances que le chiffrement de bout en bout avec OMEMO soit implémenté d'ici la version finale, grâce entre autres à la disponibilité d'un nouveau module Python (merci à Syndace, son auteur). Le chiffrement de bout en bout est déjà disponible depuis plusieurs années, mais via OTR uniquement jusqu'ici.

Participez !

Une dernière animation pour vous montrer la détection automatique de la langue, une fonctionnalité expérimentale :

détection de la langue, puis filtrage des messages

Arrêtons-nous là pour les fonctionnalités, mais nous n'avons pas fait le tour.

Comme vous le voyez, il y a de quoi s'amuser et il y en a pour tous les goûts dans ce projet. Et ça tombe bien, avec les grandes vacances, vous avez certainement du temps devant vous, idéal pour contribuer sur un projet unique et engagé (engagez-vous qu'il disait) !

Vous pouvez commencer, par exemple, avec ce tutoriel pour écrire un greffon qui fonctionnera avec tous les frontaux.

N'hésitez pas à passer sur le salon XMPP de SàT (sat@chat.jabberfr.org, aussi accessible sans compte via le web).

Si jamais vous n'avez pas le temps (les pique-niques à plage c'est bien aussi), un soutien sur Liberapay et/ou une adhésion à l'association nous aide.

Essayez de faire passer le mot autour de vous, le projet manque de visibilité et a besoin de vous. Si vous souhaitez héberger une instance, vous pouvez commencer à tester (dans une partie « expérimentale/non stable » de votre site), et à nous faire des retours. Nous cherchons aussi du monde pour nous aider à empaqueter partout où c'est possible.

Merci d'avance, et à bientôt !

E

edhelas 05/07/2018, 14:11

Vers une forge décentralisée basée sur XMPP

goffi 06/06/2018, 05:43 SàT XMPP jabber-xmpp seenthis planet-libre project

Avec la récente annonce concernant le changement de propriétaire de la plus grosse forge centralisée connue, on a vu resurgir ici et là des questionnements sur la création d'un outil similaire mais décentralisé.

J'ai profité de l'occasion pour rappeler le travail effectué pour implémenter tickets et requêtes de fusion (« merge requests ») dans Salut à Toi (SàT), travail qui était passé relativement inaperçu quand j'ai écrit à ce sujet, il y a 6 mois.

Désormais je souhaite apporter quelques précisions sur le pourquoi de ces outils.

Tout d'abord pourquoi pas la grosse forge ? Après tout une importante partie des logiciels libres actuels l'utilise déjà !
D'une part parce que ce n'est pas libre, et nous nous sommes engagés dans notre contrat social à utiliser tant que possible des logiciels libres, y compris pour l'infrastructure. D'autre part parce que c'est centralisé, et là encore notre contrat social est clair à ce sujet, même si c'est moins essentiel pour l'infrastructure que pour SàT lui-même. Enfin parce que nous utilisons à l'heure actuelle Mercurial, et que la forge la plus connue est construite autour de Git.
Ne cachons pas toutefois que nous nous sommes déjà posés la question notamment en assemblée générale (cf. les comptes rendus), nous étions intéressés en particulier par la visibilité.

« C'est centralisé ? Mais « Git » est décentralisé ! » est une réflexion que l'on entend souvent et elle est vraie, Git (et Mercurial, et d'autres) est décentralisé. Mais une forge n'est pas le gestionnaire de version, c'est tous les outils autour : hébergement, tickets, gestion des modifications (merge/pull requests), commentaires, wikis, etc. Et ces outils là ne sont pas décentralisés à l'heure actuelle, et même s'ils sont souvent accessibles par des API spécifiques aux services, ils restent soumis aux lois de la centralisation, c'est-à-dire du service qui héberge (et des aléas techniques de ce service). Cela veut également dire que si le service ne veut pas d'un projet, il peut le refuser, l'effacer, le bloquer.

La centralisation, c'est aussi la facilité pour cataloguer et rechercher… pour les projets qui sont sur ce service. Rendant de facto toute tentative extérieure moins visible et donc augmentant ses difficultés. C'est une situation que nous connaissons bien avec Salut à Toi (nous sommes également absents des « réseaux sociaux » propriétaires et centralisés pour les mêmes raisons), et que nous jugeons inacceptable. Il va sans dire que se concentrer sur une plateforme ne fait qu'encourager et prolonger cet état de fait. Notons tout de même qu'il n'est pas question ici de dénigrer ceux qui ont fait des choix différents, ces réflexions étant liées à notre implication politique forte et les contraintes changent d'un cas à l'autre.

Pourquoi, alors, ne pas utiliser des projets libres existants, avancés et fonctionnels comme Gitlab ? D'une part parce que nous travaillons avec Mercurial et non Git, et d'autre part parce que nous serions là aussi dans la centralisation. Il y a une autre raison : c'est qu'il n'existe pas ou peu (Fossil peut être ?) de forges décentralisées, et nous avons déjà tout ce qu'il nous faut avec SàT et XMPP. Et puis il y a un certain plaisir à créer les outils qui nous manquent.

SàT se veut un écosystème complet, offrant la majeure partie si ce n'est tous les outils nécessaires pour s'organiser et communiquer. Mais il est aussi générique et réutilisable. C'est pourquoi le système de « merge requests » n'est pas lié à un outil particulier (Git ou Mercurial), il peut être utilisé avec d'autre logiciels, et n'est d'ailleurs par réservé au développement de code. C'est une autre brique qui sera utilisée là où ça sera utile.

Pour conclure, je rappelle que si vous voulez voir une alternative décentralisée, éthique et engagée pour construire nos logiciels, nous organiser et communiquer, on peut la rendre possible en coopérant et contribuant, que ce soit avec du code, de la conception graphique (design), des traductions de la documentation des tests, etc.
Nous avons récemment eu de l'aide pour l'empaquetage sur Arch (merci à jnanar et aux mainteneurs précédents), et il y a des efforts continus pour l'empaquetage sur Debian (merci à Robotux, Naha, Debacle et les autre empaqueteur XMPP sur Debian). Si vous pouvez participer, merci de regarder comment nous contacter sur le site officiel), ensemble on peut faire la différence.
Si vous manquez de temps, vous pouvez aussi nous soutenir sur Liberapay: https://liberapay.com/salut_a_toi. Merci d'avance !

E

edhelas 06/06/2018, 06:34

Le partage de fichiers arrive dans la prochaine version de Salut à Toi

goffi 28/05/2018, 07:54 SàT XMPP jabber-xmpp seenthis planet-libre project

La dernière grosse fonctionnalité avant la préparation de la version alpha, le partage de fichiers, et désormais disponible pour Salut à Toi.

SàT est capable d'envoyer ou recevoir des fichiers depuis des années, soit directement quand 2 personnes sont connectées en même temps, ou via un téléversement sur le serveur (via « HTTP upload »).

Il est maintenant possible de partager une hiérarchie de fichiers, ou en d'autres termes un ou plusieurs répertoires. Il y a 2 cas d'utilisation principaux : avec un composant, ou un autre client.

partager un répertoire avec Cagou

Partager un répertoire avec un client

La première façon d'utiliser le partage de fichiers est directement entre 2 appareils. Ceci peut être utilisé, par exemple, pour partager des photos prises sur votre téléphone avec votre ordinateur de bureau, ou pour rapidement donner accès à des documents de travail à vos collègues.
Pour gérer les permissions, vous n'avez qu'à donner les JIDs (identifiants XMPP) des personnes autorisées (ou à cliquer sur les contacts dans Cagou, l'interface graphique).

Le transfert utilise la technologie Jingle, qui va permettre de choisir la meilleure façon d'envoyer le fichier. Cela signifie que si vous êtes sur le même réseau local que l'autre appareil (ce qui est le cas dans le précédant exemple de partager des photos prises sur le téléphone avec votre ordinateur de bureau, quand vous êtes à la maison), la connexion reste en local, et le serveur ne verra que le « signal », c'est à dire les données nécessaires à l'établissement de la connexion.

Mais si vos appareils ne sont pas sur le même réseau local, la connexion est toujours faisable, et SàT essaiera d'utiliser une connexion directe quand c'est possible.

partage de fichiers avec un client

Ci-dessus vous pouvez voir avec quelle simplicité on peut partager un répertoire avec Cagou, l'interface bureau/Android de Salut à Toi.

Le partage de fichiers avec un composant

SàT peut maintenant gérer des composants (qui sont plus ou moins des greffons génériques pour les serveurs XMPP), et un premier permet à un utilisateur de téléverser, lister, ou retrouver des fichiers.

Ceci est vraiment pratique quand vous voulez garder des fichiers privés pour une utilisation ultérieure (et y accéder depuis n'importe quel appareil), ou pour partager un album photo, par exemple, avec votre famille. Cette fonctionnalité est sur la voie d'un service similaire à ce qu'on appelle de nos jours « stockage sur le cloud », sauf que vous pouvez garder le contrôle sur vos données.

partage de fichiers avec un composant

Comme vous pouvez le voir, c'est très similaire à ce qu'il se passe entre 2 clients.

De plus avec le nouveau système d'invitation de SàT, vous pouvez partager des fichiers même avec des personnes qui n'ont pas de compte.

Quelques notes

Le transfert de fichier n'est pas encore chiffré, mais c'est prévu rapidement avec OX (OpenPGP) ou OMEMO.
La fonctionnalité de base est là et fonctionne, mais il y a encore des améliorations prévues à plus ou moins long terme : des quotas pour les utilisateurs, la synchronisation de fichiers, le chiffrement de bout en bout, ou encore la recherche avancée.

Tester

Vous trouverez sur le wiki les instructions sur comment utiliser cette fonctionnalité (en anglais).

Bien sûr vous aurez besoin de la version de développement pour tester. N'hésitez pas à demander de l'aide sur le salon SàT : sat@chat.jabberfr.org (ou avec un butineur).

Un paquet est désormais disponible pour Cagou sur AUR pour les utilisateurs d'Arch Linux, un grand merci à jnanar pour ceci.

Besoin d'aide !

SàT est un très gros projet, avec de fortes racines éthiques. Il est unique sur plus d'un point, et nécessite beaucoup de travail. Vous pouvez aider à sa réussite soit en nous soutenant sur Liberapay soit en contribuant (jetez un œil au site officiel ou venez sur le salon pour plus d'infos).

Le prochain billet sera à propos de la sortie de la version alpha, restez en ligne ;)