Self-hosting

Forgejo : quitter GitHub pour son propre forge

J’ai longtemps mis tout mon code sur GitHub. C’est la norme du métier, c’est gratuit, c’est là que vivent les autres développeurs. Mais au fil des projets perso qui s’accumulaient — des bots Discord, des thèmes WordPress, deux ou trois applis Symfony, des modules Foundry — une question s’est installée : est-ce que tout doit vraiment vivre chez Microsoft ? Le jour où j’ai installé Forgejo sur mon serveur, j’ai eu ma réponse.

Forgejo est un fork récent de Gitea, né d’un désaccord sur la gouvernance. La communauté qui a forké voulait un projet purement open source, porté par une fondation à but non lucratif, à l’abri d’un rachat commercial. Cette histoire de fork n’est pas anecdotique : la gouvernance d’un outil, c’est ce qui décide de ce qu’il deviendra dans cinq ans. C’est rarement le critère qu’on regarde en premier, et souvent celui qui compte le plus longtemps.

À l’usage, le dépaysement est minime. L’interface ressemble à GitHub, les pull requests s’appellent pull requests, les issues fonctionnent pareil, l’éditeur web permet les retouches rapides, et l’API est assez compatible pour que la plupart des outils tiers tournent sans rien changer. Pour un usage perso ou en petite équipe, la transition est invisible — pas seulement techniquement, mais dans la tête.

Ce qu’on perd, et qu’il faut assumer

Autant être honnête, quitter GitHub n’est pas gratuit. Trois pertes, concrètes :

  • La visibilité publique : les étoiles, la découvrabilité par les recruteurs, le visiteur qui tombe par hasard sur un dépôt.
  • Les GitHub Actions et leurs minutes gratuites, qu’il faut remplacer par sa propre CI.
  • Les intégrations tierces qui se branchent par défaut sur GitHub.

Pour un développeur en recherche d’emploi, ça pèse. Ma réponse a donc été pragmatique plutôt que dogmatique : Forgejo pour tout, et un miroir public vers GitHub pour les projets dont je veux la vitrine. Le dépôt de référence reste chez moi ; GitHub devient une devanture, plus un coffre-fort.

Ce choix n’a de sens que si on tient à garder la main complète sur son versioning, ou qu’on a des contraintes de souveraineté sur le code. Si on dépend vraiment de l’écosystème social de GitHub, ça n’a aucun intérêt — et c’est un choix, pas une faiblesse. De mon côté, Forgejo tourne sur servyass depuis plusieurs mois, tous mes commits passent par lui, et le jour où GitHub changera ses CGU, je n’aurai rien à migrer.