Le fediverse avec un site statique
www.rako.space est un site statique, hébergé par ce super collectif qu'est Deuxfleurs qui agit pour construire un internet convivial: une gestion collective plutôt que verticale, une infrastructure technique accessible et simple plutôt que des datacenter. Si l'hébergement des services par des entreprises capitalistes, centralisatrices et dominatrices est un problème, l'auto-hébergement est une réponse élitiste; l'entr-hébergement collectif est la voie la plus à même de nous sortir de ce marasme. Chez Deuxfleurs j'ai un espace pour mettre mes fichiers qui forment un site web statiques, sans serveur dynamique.
J'avais auparavant un compte sur le fediverse, rakoo@blah.rako.space, que j'hébergeais moi-même (avec Pleroma). Ça marchait, mais c'était de l'auto-hébergement: dès qu'il y a un problème c'est pour ma pomme. Et ça n'a pas manqué: après avoir redémarré le serveur, la base de données n'a pas redémarré, et donc plus de services. Plutôt que de chercher une n-ième fois pourquoi j'ai décidé de changer: plutôt que de faire tout soi-même, je vais utiliser les services de Bridgy Fed
Bridgy Fed est un service qui fait le pont entre plusieurs protocoles de "réseaux sociaux": ActivityPub et Atproto, mais aussi le web, et il y en a même d'autres disponibles. Le seul qui m'intéresse est ActivityPub. En modelant mon site web au bon format je peux ainsi publier sur le fediverse, suivre, recevoir des réponses, etc... sans avoir à me créer de compte. Bridgy Fed s'occupera de toute la partie dynamique, envoyer et recevoir les posts, les like, et mon site sera la "base de données".
C'est aussi un des problèmes qui m'embête le plus avec le fediverse: chaque instance est techniquement isolée, et il n'est pas possible facilement de passer de l'une à l'autre. Il n'y a pas de bonne raison à ça, puisque la seule explication est que la migration n'est pas prévue et donc les gens qui développent ne s'en occupent pas vraiment. On dit souvent que le fedivers c'est comme l'email, et c'est vrai: si j'ai un compte chez Yahoo et que je veux changer je dois me créer une nouvelle adresse et la configurer. Dans le monde de l'email il y a même des moyen de garder son addresse, si j'ai mon propre nom de domaine; dans le fedivers non.
Bridgy Fed résout plusieurs de ces problèmes. J'ai mon nom de domaine avec mon site, le contenu est là; je n'ai pas besoin de plus pour stocker mes données. Il ne manque que la "glue". Voyons comment faire pour la mettre en place.
microformats2
La première étape est de formater le site web pour qu'il soit utilisable programmatiquement. Ça tombe bien, c'est un site web: html est déjà une manière de structurer les données, il faut donner les bonnes instructions pour que tout le monde puisse en fairo quelque chose.
Le standard utilisé ici est microformats2. C'est un ensemble de classes à ajouter sur les éléments pour leur donner des fonctions différentes:
- h-entry sur un élément le marque comme étant le coeur du contenu
- h-author indique que l'auteurice sera indiqué•e dedans
- e-content indique que le texte est à l’intérieur
La documentation (en anglais seulement, malheureusement) donne plus de détails, voici un exemple simple:
<article class="h-entry"> <div class="e-content>Oh non, c'est Bouboule Boum Boum! </div> <a class="h-author" href="/me.html">Aang</a> </article>
Ces classes doivent être rajoutées sur le contenu que l'on souhaite distribuable: sur les articles/notes, mais aussi la page principale.
On peut utiliser le site indiewebify.me pour tester si tout est correct, si les bonnes informations sont correctement indiquées
Ce standard fait partie du mouvement indieweb, qui promeut la réappropriation de ses propres espaces personnels sous forme de sites web, et la socialisation à travers ces sites.
Ce qui est bien avec cette spécification c'est qu'il y a tout un tas de formats pris en compte: les articles longs, les notes courtes (les pouets), les images, les événements, ... il est possible de faire ce que l'on veut. C'est bien plus pratique que n'importe quelle plateforme fediverse existante.
Une fois ces changements faits, et avec un flux rss/atom à jour (mais votre flux rss/atom est déjà fonctionnel, n'est-ce pas ?), Bridgy Fed prend le relais
Bridgy Fed
La première chose à faire ce sont les redirections de .well-known/host-meta et .well-known/webfinger vers Bridgy Fed. Les instructions sont dans la documentation. Ces chemins sont utilisés par le protocole (entre autres) pour identifier le site comme étant fediverse-compatible, et donner la main à Bridgy Fed pour gérer tout ça.
Deuxfleur a un petit souci technique ici: les query ne sont pas redirigées, il faut le faire manuellement: .well-known/webfinger doit être renvoyé vers https://fed.brid.dy/.well-known/webfinger?resource=acct:@mon.site.web@mon.site.web
Rediriger les chemins en question.
Note: si votre site est un www.truc.tld qui ne redirige pas vers truc.tld il faut ouvrir un ticket à l'auteur. Il faudra aussi que tous les liens soient absolus. C'est un comportement connu de l'auteur...
Ensuite il faut aller sur fed.brid.gy et entrer son site web. La plateforme va automatiquement détecter la page
À partir de là Bridgy prend le relais: la page principale est lue, le flux rss/atom est découvert, les articles et/ou notes sont lues. Bridgy Fed "crée" un compte @mon.site.web@mon.site.web qui peut être cherché sur le fediverse, auquel on peut s'abonner, etc... et Bridgy Fed enverra les nouveaux posts !
Premiers retours
La distinction entre notes et articles est subtile. Pour faire une note il faut qu'il n'y ait pas de titre: pas de balise title , pas de classe p-name. Dans Mastodon les notes s'affichent comme des pouets, les articles sont juste un lien vers la page; le titre est celui choisi, le sommaire (affiché sur la carte dans Mastodon) est le texte dans le flux rss/atom.
Le flux, d'ailleurs, est rafraichi quand Bridgy Fed veut bien. Le moyen préféré est d'envoyer des webmention pour signaler l'existence de nouveaux posts. L'avantage est un contrôle plus fin sur ce qui est envoyé (et donc une déviation possible du flux), une mise à jour immédiate et pas de polling, mais à l'inverse ça demande un peu plus de travail. À mettre en place très vite !
Bridgy Fed est une super idée, ça marche, mais l'infrastructure est totalement basée sur le cloud de Google (l'auteur y travaille). À terme j'aimerais avoir un service équivalent en dehors de Google, pourquoi pas gérée par Deuxfleurs si on peut faire rentrer dans l'infrastructure particulière.