Écrire, écrire, écrire, publier autrement

Contexte: écrire différemment

Ça fait plusieurs années que je n’ai plus de comptes sur les réseaux sociaux. J’ai gardé LinkedIn pour le travail, je m’en sers aussi comme relais pour ma veille technologique et le partage de mes articles.

J’ai déjà un blog, celui-ci, dédié à des articles plus techniques ou dans un format plus structuré. J’aimerais éviter d’y publier des billets plus courts ou hors-sujet.

Depuis quelque temps, je voulais créer un espace où partager mes lectures, mes découvertes, mes recommandations. Moins pour être lu que pour m’inciter à écrire régulièrement.

Problème: publier sans dépendre d’une grosse plateforme

Par souci de cohérence, je cherchais une solution de diffusion décentralisée, sans m’encombrer avec un nouvel outil ou CMS.

J’utilise depuis plusieurs années un petit VPS, géré avec YunoHost, qui me facilite grandement la vie.

Solution: Forgejo + Docsify

Sur mon serveur, je fais tourner ma propre instance de Forgejo, une forge logicielle pour gérer mes projets personnels avec Git, une alternative open source à GitHub ou GitLab. Avec Forgejo, je dispose déjà d’un outil fiable, avec backup, qui me permet de gérer le cycle de vie de mes contenus. Dans mon cas, chaque article n’est rien d’autre qu’un fichier Markdown versionné dans un répertoire public hébergé sur mon instance Forgejo.

Autre point, je trouvais inutile de compliquer le processus de publication avec une chaîne d’intégration et de déploiement continu. Je n’ai pas besoin de générer un site statique, ni de viser un quelconque référencement.

Par contre il me fallait rendre accessible mon blog avec un rendu propice à la consultation des articles. J’ai opté pour Docsify, un générateur de site statique pensé à l’origine pour la documentation, qui permet d’afficher directement des fichiers Markdown sous forme de pages web, un peu à la manière de solutions comme Docusaurus.

La bonne surprise, c’est que Docsify est portée sur YunoHost. Il ne me restait qu’à créer un nouveau sous-domaine que j’ai nommé anti-minitel (faute de meilleure inspiration sur le moment).

J’ai légèrement adapté le code en m’appuyant sur le projet Docsify-This, qui effectue un rendu client de fichiers Markdown, transformant dynamiquement leur structure en pages web, sans compilation amont.

Il y a la possibilité de personnaliser les paramètres d’exposition du fichier

J’ai rencontré des problèmes de CORS, que j’ai résolu en ajustant la configuration du proxy Nginx géré par YunoHost. J’ai configuré les en-têtes HTTP dans les réponses de Forgejo pour autoriser le rendu des requêtes émises depuis mon instance Docsify.

vim /etc/nginx/conf.d/social.clementisaia.fr.d/forgejo.conf
nginx config
systemctl reload nginx

Grâce à la réponse de la commande curl, j’ai pu vérifier que les en-têtes HTTP nécessaires étaient bien présents, mon instance Docsify peut désormais rendre correctement les pages Markdown issues de mon dépôt Forgejo.

Maintenant que la publication et la distribution des articles sont en place, il me restait à couvrir un autre besoin, permettre aux lecteurs d’être notifiés des nouvelles publications. J’ai d’abord envisagé l’utilisation de RSS-Bridge afin de générer un flux RSS à partir de mon dépôt Forgejo. L’idée c’est de permettre de suivre l’évolution du répertoire et déclencher une notification à chaque création de tag, correspondant à une nouvelle publication. Forgejo prend justement en charge le format Atom, un standard plus moderne et mieux structuré que RSS (RFC 4287).

Par exemple: https://social.clementisaia.fr/clementis/en-vrac/tags.atom

Les lecteurs compatibles (comme Miniflux, FreshRSS ou Thunderbird) peuvent s’abonner à ce flux et afficher les nouvelles publications via la parution des tags. J’ai découvert un peu plus tard que Forgejo proposait aussi un flux RSS dédié aux tags.

On pourrait imaginer publier sur les réseaux sociaux les nouveaux articles depuis le flux RSS avec des outils comme n8n déjà déployable via Yunohost

Pour les commentaires ils peuvent se faire simplement via des issues sur Forgejo. Mais on pourrait imaginer une solution intégrée comme Remark42 pour venir compléter le blog.

Le sommaire du blog avec ce système de publication:
https://anti-minitel.clementisaia.fr/?basePath=https://social.clementisaia.fr/clementis/en-vrac/raw/branch/main/decembre-2025&homepage=05.12.2025.md&toc=true&browser-tab-title=&font-family=Helvetica,sans-serif&link-color=0a04b5&dark-mode=auto#/?id=lecture-dapocalypse-nerds

Lorsque j’ajoute une nouvelle publication, le nouvel article apparait bien dans le flux RSS. J’utilise la date de publication comme nom de tag.

Bonne lecture

Publié le
Catégorisé comme tech

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *