publier avec indiekit et comprendre sa logique
21.08.26 · dernière modification : 21.08.26
Sans doute dans un élan de procrastination ou bien pour prendre soin de mon espace d'écriture, qui est quelque part mon espace de travail, j'ai eu envie de pouvoir fluidifier ma capacité à publier du contenu sur ce site en ayant d'autres options que de faire tout le processus de publication à la main.
J'ai profité du calme de la prérentrée sans les enfants pour me mettre devant l'établi numérique installé Indiekit, un petit logiciel est parfait pour cela. Il prend en main une partie des opérations nécessaires pour la publication de contenus web. Sa documentation est claire et didactique avec des diagrammes respectables, mais tout en anglais. Je vais donc être assez verbeux pour faire du débroussaillage en français.
Sa particularité est d'articuler les standards et les conventions de l'IndieWeb pour être à la fois interopérable et malléable, le côté "kit". Il s'agit beaucoup moins d'un gestionnaire de contenus (aka content management system ou CMS) que d'un système de traduction qui permettra à d'autres logiciels (éditeurs de texte, applications de microblogging et générateur de site (statique)) de communiquer entre eux en automatisant la plupart des tâches propres à la publication de fichiers textes sur le web. Oui, une API, ou Application Programming Interface, quoi. Si vous aviez l'habitude d'hocher la tête pensivement à l'énonciation de cet acronyme, voilà, c'est un exemple. Vu qu'Indiekit reste relativement confidentiel, il y a certainement moyen de faire un contre-kems à la personne qui vous balance juste un terme technique l'air de rien.
Indiekit n'est donc pas faire fonctionner un site web. Il viendra en complément d'un système comme Jekyll, Hugo, ou Eleventy pour citer ceux qui se marieront bien sans effort particulier. Il permettra par contre à tous les logiciels et services implémentant Micropub de faire entrer du contenu dans les systèmes précédemment cités. Tout l'intérêt est une forme d'interopérabilité. On peut utiliser sparkles un jour IA writer le lendemain, et puis Sunlit pour mettre des photos. Indiekit vient tout de même avec une interface web assez simple qui fait son taf comme on dit. L'interopérabilité vient toujours avec des approximations et il faudra s'accommoder, parfois, de faire des retouches. D'ailleurs rien n'empêche de continuer à mettre des fichiers texte à la main dans git pour les publier en parallèle.
Le seul taf d'Indiekit, c'est de transformer, à votre place, du contenu en fichiers. Il produit des fichiers et les mets dans content store qui peut être quelque part sur la même machine, un FTP à l'ancienne, dans un bucket S3, ou équivalent, ou dans un dépôt git disposant d'une API, souvent calquée sur celle de GitHub.
Le contenu de ce site est actuellement stocké sur codeberg, qui est une instance de Forgejo qui est un fork de Gitea. Indiekit fournit de quoi mettre les fichiers qu'il produit sur un dépôt Gitea et cela fonctionne avec zéro effort pour codeberg. La vie est bien faite, parfois. Cela me facilitera beaucoup la vie quand je me déciderai à auto-héberger mes dépôts git. Plan qui est actuellement mis au frigo avec le prix des disques durs qui sont partis sur la lune.
Indiekit a par contre besoin d'un serveur parce que c'est un service. Il n'est pas juste là pour fournir des pages web à un navigateur, il a besoin de faire des calculs, c.-à-d. transformer une information entrante (le contenu) en information sortante (des fichiers texte). Pour l'installer, à minima, il faut donc pouvoir exécuter du javascript avec nodejs et d'un domaine, ou sous-domaine, public pour être accessible par les autres logiciels. Un container cloud minimaliste devrait très bien faire l'affaire. Je ne l'ai pas trouvé dans le catalogue des applications Yunohost alors que cela se prêterait bien au jeu.
Mon instance Indiekit fonctionne sur mon homelab, un bien grand mot pour désigner une tour d'ordinateur allumée en permanence, pratique pour se réchauffer les pieds l'hiver, qui a le droit à une troisième vie, rejoignant ainsi le stéréotype des personnes âgées qui dorment de moins en moins en vieillissant. Cela rajoute un peu de complexité parce qu'il faut alors faire des trous ici et là pour que le serveur soit accessible depuis l'internet. Je n'augmente pas ma facture cloud, mais ma facture d'électricité.
Il est possible de faire fonctionner Indiekit sans avoir besoin d'aucune autre donnée que de son fichier de configuration. Pour que le système se souvienne de ce qui a été publié et d'y apporter des modifications, il faudra passer par l'installation d'un serveur de gestion de base de données spécifique, MongoDB. La plupart des fournisseurs cloud fournissent des containers permettant son usage sans avoir à l'installer et le gérer soi-même. De ce que j'en ai vu, c'est loin d'être un passage obligé et peut vite faire doublon avec à la fois les données finales, mais aussi le système ou la méthodologie utilisés pour la gestion locale des textes. À voir en fonction des préférences personnelles. Cela dit, la configuration est très aisée.
Ce qui m'avait séduit au premier abord, c'était la philosophie du POSSE, Publish (on your) Own Site, Syndicate Elsewhere dont l'idée est de centraliser l'espace de publication, mais de multiplier la diffusion sur d'autres espaces aussi bien fermés qu'ouverts. Par exemple, je publie un nouvel article sur mon site et la magie technologique fait apparaître un post Mastodon indiquant son existence. Cela existe depuis la nuit du web grâce aux flux RSS et à un peu de tuyauterie, comme le littéral, mais défunt Yahoo Pipes. Les grosses plateformes comme Facebook proposaient ce genre de services, mais c'est aussi dans le scénario de base du capitalisme de plateforme que de couper les entrées une fois que les usages sont devenus captifs. Il est également toujours possible de bricoler des choses en "no-code" avec les successeurs de Yahoo Pipes comme n8n. Avoir de fonctionnalités officiellement permet justement de se prémunir des secousses de la tectonique des plaques des grands mouvements d'architecture du web.
À l'heure actuelle, Indiekit permet officiellement de syndiquer sur Bluesky, Mastodon et Internet Archive.
Au final, je n'ai pas (encore) activé cette fonctionnalité parce que je préfère partager manuellement des liens vers mes contenus plutôt que de confondre Mastodon avec un agrégateur RSS. J'ai le même problème avec les newsletters trop bavardes. Je crois qu'on gagnerait tous en confort et en calme à ne pas essayer de se pirater nos attentions respectives en maximisant l'exposition de nos productions. Dans l'autre sens, je suis toujours bien content de voir une personne partagée un lien vers sa production personnelle, même si cela fait doublon, car la répétition donne un rappel parfois nécessaire tombant à un meilleur moment.
Ricardo Mendes a également publié un greffon qui permet d'ajouter tout ce qu'il faut pour transformer un site web en nœud ActivityPub. Ce qui n'est pas une mince affaire, car cela ajoute toute une couche complexe, comme le fait de suivre et de pouvoir être suivi, liker ou repartager sur le fédivers. La perspective de pouvoir utiliser phanpy, un client web pour Mastodon qui est très appréciable pour son approche calme, pour ajouter des notes et interagir directement avec des comptes du fédivers est très appétissante.
Utiliser Indiekit est aussi une porte d'introduction à l'Indieweb, qui n'est pas seulement une documentation technique, mais aussi une communauté avec laquelle dialoguer et s'aligner. La différenciation entre articles et notes est, par exemple, le fruit d'une coopération. Plutôt que de réinventer une typologie de contenu ex nihilo, il est ainsi possible de s'appuyer sur la typologie de la communauté. La contrainte est donc d'adopter un langage commun. Cela ne posera pas de problème pour un nouveau site web ou un site web existant qui ne s'est pas transformé en labyrinthe au fil du temps, un blog qui aura su rester un blog, par exemple.
Je me suis arrêté dans le bidouillage une fois que j'ai pu publié des articles et des signets. Il reste encore beaucoup à faire et à découvrir. Je suis déjà très satisfait de ce qu'Indiekit m'a rendu capable de faire et d'apprendre. Il y a aussi de la petite joie de préparer des nouvelles fournitures pour la rentrée.
👋
📣
🕵️
📜