Forges git décentralisées et souveraines
Git est distribué par design et pourtant on a passé quinze ans à le recentraliser derrière une poignée de forges. Le réflexe sain existe déjà, le mirroring, mais il s’arrête à mi-chemin. Ce billet part de là et pousse plus loin, jusqu’aux forges réellement décentralisées, celles qui n’ont plus besoin d’un serveur du tout.
1. Le point de départ : git est déjà distribué
Avant de courir après la décentralisation, un rappel qui éviterait bien des usines à gaz. Ton clone local EST déjà un backup complet, avec tout l’historique. Un remote, de son côté, ce n’est qu’une URL et rien n’empêche d’en avoir plusieurs par dépôt :
git remote set-url --add origin git@forgejo.local:user/repo.git
Un git push part alors sur toutes les destinations d’un coup.
Tu peux même régler cela par branche ou par remote nommé, avec origin vers GitHub, backup vers ton Forgejo
, archive vers un GitLab, un Gitea ou un Gitolite self-hosted.
Côté automatisation, les hooks (pre-push, post-commit) déclenchent ce que tu veux sans dépendre d’un service tiers ; un post-push qui synchronise vers un second remote ou qui lance un rsync, c’est trois lignes de shell.
Reste que le vrai sujet, derrière le mirroring, c’est la politique de backup. Un Restic, un Borg ou un Plakar sur tes dépôts locaux, avec rétention et chiffrement et tu obtiendrais une stratégie solide sans même avoir besoin d’un Forgejo. Et je le redis une fois pour toutes, une politique de backup sans test de restore régulier, c’est de la décoration ; tu ne sais pas si ton backup marche tant que tu ne l’as pas restauré.
Jusqu’ici, on reste dans le self-hosting classique. La forge vit sur un serveur, simplement c’est ton serveur. La question intéressante commence quand on retire le serveur.
2. Pourquoi la vraie décentralisation revient maintenant
On a vu récemment Thomas Dohmke, l’ex-CEO de GitHub, lancer Entire, une tentative dans ce sens financée à hauteur de soixante millions de dollars. Ce qui est révélateur, ce n’est pas tant le produit que la motivation affichée, la charge agentique qui martèle désormais les forges centralisées.
Les agents LLM clonent, lisent, ouvrent des PR, déclenchent des CI en boucle et multiplient le trafic sur une infrastructure qui n’avait pas été dimensionnée pour cela. La centralisation, qui était un confort, devient un goulot et un coût. La décentralisation cesse d’être une lubie d’idéaliste pour redevenir une réponse d’ingénieur à un problème de charge et de souveraineté. Mais il faut lire l’annonce pour ce qu’elle est, pas pour le mot qu’elle brandit. Entire, aujourd’hui, ce ne sont pas des pairs mais des miroirs régionaux, GitHub restant la source de vérité et les agents clonent depuis le miroir le plus proche plutôt que depuis un dépôt central unique. La vraie décentralisation, celle où le réseau garderait le code dans une zone donnée sans autorité centrale, est sur la feuille de route, pas dans le produit. Le signal est donc juste, mais le vocabulaire court devant l’implémentation et pour de la prod réellement souveraine aujourd’hui il faut regarder ailleurs.
3. Radicle : full P2P par gossip
Pour de la vraie prod souveraine dès maintenant, deux projets me semblent nettement plus aboutis que les effets d’annonce et Radicle est le premier.
Radicle est full peer-to-peer. La diffusion passe par du gossip entre pairs et les artefacts sociaux, les issues, les patches, les votes, sont stockés directement dans des refs git, donc versionnés et répliqués comme le reste du dépôt. Il n’y a pas de serveur central à maintenir, pas de point de défaillance unique, pas d’autorité à qui demander la permission. C’est le choix de l’autonomie totale, avec la contrepartie assumée d’un modèle mental différent de celui d’une forge web classique.
4. ngit : le compromis pragmatique sur Nostr
L’autre projet abouti, c’est ngit. Lui pose la coordination sur Nostr tout en gardant un git parfaitement natif en dessous.
L’idée est fine, car on ne réinvente pas git, on lui ajoute une couche de coordination décentralisée pour les patches et les discussions, portée par un réseau de relais qu’on peut héberger soi-même. C’est le compromis pragmatique. On garde l’outil que tout le monde connaît, on ne décentralise que ce qui doit l’être et on reste interopérable avec les workflows existants. Là où Radicle vise l’autonomie totale, ngit vise l’adoption sans rupture.
5. rngit sur Reticulum : jusqu’au off-grid
Et puis il y a le cas qui me fait vraiment sourire, dans le bon sens, rngit, qui fait tourner git nativement sur Reticulum (RNS).
Reticulum est une pile réseau chiffrée de bout en bout, conçue pour fonctionner sur à peu près n’importe quel medium, y compris les liaisons très contraintes. rngit fait donc circuler du git par-dessus ce mesh, jusque sur du LoRa ou du packet radio. On parle ici de vrai off-grid souverain, pousser un commit sans Internet, sans FAI, sans DNS, sur des liens radio à quelques kilobits. Inutile de justifier un tel usage par un scénario d’effondrement ; il suffit de zones blanches, de terrains isolés ou simplement de l’envie d’une infrastructure qui ne dépende de personne.
C’est la démonstration la plus nette de l’idée de départ, git est distribué par design et quand on prend ce design au sérieux, on finit par pousser des commits sur de la radio.
6. Où je me situe
Ce panorama recoupe mon propre terrain de jeu autour du pair à pair. J’ai raconté ailleurs comment je transpose cette logique à la distribution des poids de modèles (llmp2p ) et au GitOps lui-même (gitops-p2p ), parce que la question de fond reste la même, comment faire tenir un système sans dépendre d’un point central qu’on ne contrôle pas. La forge décentralisée n’est qu’un cas particulier de ce problème, appliqué à l’outil le plus distribué qu’on ait déjà entre les mains et qu’on s’obstine à recentraliser.
Pas de maître, pas de panne
- Git est distribué par design : ton clone local est déjà un backup et le multi-remote plus quelques hooks couvrent le mirroring sans forge supplémentaire. Une politique de backup sans test de restore reste de la décoration.
- La vraie décentralisation revient parce que la charge agentique sature les forges centralisées ; ce n’est plus une lubie, c’est une réponse de charge et de souveraineté.
- Radicle offre le full P2P par gossip, avec les artefacts sociaux stockés en refs git, pour une autonomie totale au prix d’un modèle mental différent.
- ngit coordonne sur Nostr en gardant un git natif, le compromis pragmatique qui ne décentralise que ce qui doit l’être.
- rngit sur Reticulum fait tourner git jusque sur du LoRa ou du packet radio, le off-grid souverain et la preuve que “distribué par design” peut se prendre au mot.
[edit: 2026] L’implémentation Ansible de tout ceci: le rôle forgejo-runner .