- Le projet de navigateur web Dillo est en cours de migration depuis GitHub vers un serveur auto-hébergé
- Les raisons principales de la migration sont la dépendance au JavaScript, la gouvernance centralisée et les performances lentes relevées sur GitHub
- Le nouveau serveur est exploité sous le domaine dillo-browser.org et utilise un frontend Git léger basé sur cgit ainsi qu’un bug tracker maison, « buggy »
- Toutes les données sont gérées dans un dépôt Git et répliquées sur Codeberg et Sourcehut, ce qui minimise le risque de perte
- La conception s’appuie sur des signatures OpenPGP pour préserver la confiance en cas de perte DNS et renforcer l’autonomie et la pérennité du projet
Contexte
- Le site historique de Dillo était dillo.org, avec un dépôt Mercurial, un serveur de courrier, un bug tracker et les archives de la liste de diffusion
- En 2022, le domaine a été perdu, puis un tiers a créé un site similaire rempli de publicités IA
- Certaines données ont été récupérées, mais pas de manière exhaustive
- Forts de cette expérience, les mainteneurs ont décidé d’éviter une dépendance à un site unique et de bâtir une infrastructure de sauvegarde distribuée
- Le code a d’abord été déposé sur GitHub, mais jugé inadapté à long terme
Limites de GitHub
- GitHub était pratique pour les workflows CI et la gestion des dépôts, mais présente plusieurs limites
- Le frontend ne fonctionne qu’avec le JavaScript, ce qui empêche de consulter les issues et PR avec le navigateur Dillo
- Les pages consomment trop de ressources, provoquant une surcharge inutile pour un rendu HTML simple
- Le risque qu’un acteur unique de gouvernance bloque un compte peut entraîner la suppression de l’accès aux données
- La plateforme ralentit progressivement et exige une connexion Internet rapide
- Le modèle de notifications de GitHub basé sur le « push model » ne s’adapte pas à un mode de développement orienté hors ligne
- L’absence d’outils de modération communautaire dans les projets à fort taux d’utilisateurs non développeurs augmente la fatigue des mainteneurs
- Alors que GitHub s’oriente vers le LLM et l’IA générative, des sites mettent en place des murs JavaScript ou un fingerprinting navigateur renforcé pour bloquer les crawlers LLM
- Cela provoque des effets de bord qui empêchent l’accès via Dillo
Mise en place d’un hébergement propre
- Les services de dépôt existants ne permettaient pas de remplir à la fois les objectifs de suppression du point de défaillance unique et d’exploitation légère
- Nous avons donc choisi d’exploiter un serveur propre et de conserver plusieurs miroirs
- Le domaine dillo-browser.org a été acquis et un petit VPS a été installé
- Il fonctionne de manière plus stable que prévu, en traitant principalement le trafic des bots IA
- Le frontend Git choisi est cgit
- Écrit en C, il consomme moins de RAM et de CPU, et fonctionne sans JavaScript
- Le CSS a été ajusté pour s’afficher correctement dans Dillo
- Accessible via https://git.dillo-browser.org/
- Le bug tracker utilise « buggy », développé en interne
- Il parse des fichiers Markdown pour générer des pages HTML, et chaque bug est stocké dans un dépôt Git
- Lors d’un commit, un hook Git met automatiquement à jour les pages
- Édition possible hors ligne, sans crainte de vulnérabilités de sécurité
- Disponible à https://bug.dillo-browser.org/
- Les archives de la liste de diffusion sont stockées de manière répartie sur 3 services externes, avec ajout prévu d’une copie propre ensuite
Configuration des miroirs
- Toutes les données critiques sont gérées sous forme de dépôts Git et sont répliquées sur Codeberg et Sourcehut
- Si un dépôt arrêté, on peut basculer rapidement vers un autre miroir avec un faible coût de migration
- Le point de défaillance unique reste le DNS (dillo-browser.org)
- En cas de perte du DNS, il est possible d’informer les utilisateurs via mailing lists, Fediverse, IRC
- Les données étant répliquées en git, il n’y a pas de perte fatale
Signature OpenPGP
- Cette page est signée avec la clé GPG de Rodrigo Arias Mallo (32E65EC501A1B6FDF8190D293EE6BA977EB2A253)
- Il s’agit de la même clé que pour les dernières versions de Dillo, et elle est également enregistrée sur le compte GitHub
- Le fichier de signature (index.html.asc) est lié par
<link rel=signature>
- La signature OpenPGP permet de conserver la confiance même en cas de perte DNS
- Prouver la propriété via une confiance basée sur la signature plutôt que par la chaîne de certificats TLS
- Les signatures incluses dans tous les miroirs Git renforcent la résistance aux pertes de données
Avancement de la migration et perspectives
- Le dépôt GitHub n’est pas supprimé immédiatement et continuera d’être mis à jour jusqu’à la fin de la migration
- Une fois terminée, le dépôt sera basculé en mode « archived », avec annonce sur le site officiel
- Les commits et fichiers de release sont conservés pour la rétro-compatibilité descendante
- La nouvelle infrastructure peut être exploitée de manière indépendante avec peu de coûts et de consommation énergétique
- Au vu du niveau actuel des dons et des coûts serveur, elle peut être maintenue au moins pendant 3 ans
- Les soutiens sont possibles via Liberapay si vous le souhaitez : https://liberapay.com/dillo/
Aucun commentaire pour le moment.