7 des meilleures alternatives auto-hébergées à Github

Après l’acquisition de Github par Microsoft, de nombreux développeurs ont recherché des alternatives pour héberger leur code. Microsoft (et de nombreuses autres grandes entreprises) a l’habitude d’acheter des technologies, des sites et des produits éprouvés pour étendre son influence. Skype est un exemple, et maintenant Github l’est aussi.
Heureusement, il existe beaucoup d’autres systèmes de contrôle de version parmi lesquels choisir. Tous n’ont pas la même fonctionnalité que Github, mais en fonction de vos besoins, les options sont plutôt bonnes. Cet article passera en revue certaines des meilleures alternatives auto-hébergées à Github que vous pouvez installer sur votre propre machine dès aujourd’hui.
Table des matières
- GitLab
- Gogs
- Trac
- GitBucket
- Gitea
- Mercurial
- Fossil
1. GitLab
Même avant que Microsoft n’acquière Github, GitLab était déjà une plateforme populaire de gestion de code alternative. C’est un outil DevOps open source avec des fonctionnalités de planification, de test, d’emballage et de publication. Il est également doté d’un wiki et de fonctionnalités de suivi des problèmes, ce qui le rend incroyablement attrayant pour les utilisateurs qui souhaitent avoir une expérience “similaire à Github” auto-hébergée.

Bien que vous puissiez utiliser GitLab comme plateforme de gestion de code auto-hébergée, ses développeurs proposent également une version SaaS premium payante. Celle-ci inclut des fonctionnalités supplémentaires comme la possibilité de se synchroniser avec un serveur LDAP et des pipelines CI/CD avancés.
Cela dit, vous pouvez déployer GitLab sur votre machine ainsi que sur leur plateforme d’hébergement gratuitement. L’édition Premium, quant à elle, commence actuellement à 29 $ par utilisateur et par mois.
Astuce : découvrez ce qui différencie GitLab de Github et déterminez lequel est le meilleur pour vous.
2. Gogs
Gogs est une plateforme d’hébergement Git légère que vous pouvez déployer sur presque tout type de matériel. Écrite en Go, ses développeurs ont conçu le programme pour qu’il soit aussi rapide que possible tout en dépendant de peu ou pas de dépendances externes. Par exemple, il est possible d’exécuter Gogs sur un système avec seulement 512 Mo de RAM.

L’un des plus grands atouts de Gogs est qu’il est incroyablement facile à exécuter même sur des serveurs virtuels. Par défaut, Gogs est également livré avec tous les outils dont vous avez besoin pour gérer votre code, suivre les problèmes et documenter vos modifications. Ainsi, Gogs est une excellente option si vous recherchez une alternative à Github “sans tracas” avec le meilleur “rapport puissance/poids”.
Bon à savoir : apprenez les bases de la gestion d’un référentiel Git.
3. Trac
Trac est une plateforme simple et très flexible de gestion de code pour Linux. Contrairement à GitLab et Gogs, Trac peut fonctionner à la fois avec Subversion et Git pour son système de contrôle de version en arrière-plan. Cela le rend utile si vous avez déjà un projet fonctionnant sur l’un de ces systèmes.

En plus d’être un outil flexible, Trac est également un wiki amélioré et un système de suivi des problèmes pour votre projet. Il peut gérer divers tickets, attribuer différents rôles ainsi que créer des niveaux de priorité pour chaque problème dans votre référentiel.
De plus, Trac propose également un certain nombre de plugins qui peuvent modifier le comportement par défaut de votre instance. Par exemple, il dispose d’un plugin qui vous permet d’intégrer Trac à un projet Github existant. Par conséquent, Trac est un bon choix si vous devez surveiller régulièrement et attentivement l’avancement des projets.
Astuce : Si vous n’avez besoin que d’une solution simple de pastebin utilisant Git, consultez Opengist.
4. GitBucket
GitBucket est un clone de GitHub basé sur la JVM et écrit en Scala. Il n’a pas autant de fonctionnalités que les autres applications de la liste. En fait, son principal avantage est sa similitude avec GitHub. En d’autres termes, si vous commencez à ressentir le manque de GitHub, vous pouvez toujours recourir à GitBucket.

Cela dit, GitBucket est doté d’un compte-rendu de dépôt décent, d’un suiveur des problèmes, de la capacité à examiner et accepter des demandes de tirage, ainsi que d’un wiki simple. En dehors de cela, vous pouvez également étendre la fonctionnalité de GitBucket grâce à des plugins. Ce sont de petits morceaux de code qui peuvent introduire de nouvelles fonctionnalités ou modifier celles qui existent déjà pour votre référentiel. Par exemple, vous pouvez installer un plugin GitHub Gist sur votre GitBucket ainsi que des sites web personnalisés similaires à GitHub Pages.
Astuce : consultez certains des meilleurs hooks Git pour optimiser votre référentiel.
5. Gitea
Gitea est une plateforme de gestion de code légère et axée sur la sécurité pour Linux. Basé sur Gogs, il vise à fournir une alternative complète et prête à l’emploi à Github tout en consommant peu ou pas de ressources système.

Certaines des plus grandes fonctionnalités de Gitea par rapport à Gogs sont ses flux RSS intégrés, le support des flux de travail CI/CD, ainsi que plusieurs rôles d’utilisateur pour votre référentiel. De plus, il est également doté de son propre cadre d’extensions qui vous permet d’ajouter des fonctionnalités telles que des sites web personnalisés similaires aux pages GitHub. Gitea est une excellente alternative si vous recherchez un Github auto-hébergé léger et également hautement extensible.
FYI : êtes-vous un utilisateur d’Emacs ? Apprenez comment vous pouvez intégrer Git dans Emacs en utilisant Magit.
6. Mercurial
Contrairement aux entrées précédentes de cette liste, Mercurial est une plateforme de gestion de code complètement différente par rapport à Github. Elle fournit un moyen plus clair et concret de gérer le code qui est plus facile à apprendre pour les nouveaux développeurs logiciels. Semblable à Subversion, Mercurial vise à réduire les encombrements en vous donnant des commandes qui sont déjà similaires à votre système Linux.

L’un des atouts de Mercurial est qu’il est multiplateforme et hautement modulaire. Par conséquent, la plateforme est livrée avec une multitude d’extensions que vous pouvez utiliser pour personnaliser votre flux de travail Mercurial. Par exemple, l’extension hgnested vous permet de créer de plus petits sous-référentiels à l’intérieur de votre principal.
7. Fossil
Fossil est un système de gestion de code source non-Git pour Linux qui se concentre sur la simplicité et la fiabilité. Contrairement à Git et Mercurial, Fossil fournit une plateforme complète et tout-en-un pour développer et partager du code avec d’autres personnes. Dès l’installation, chaque installation de Fossil est livrée avec un forum, un suivi des problèmes, et même un simple chat IRC.

Un point de vente unique de Fossil est qu’il est facile à déployer et flexible selon les exigences de votre machine. Il est possible de créer votre référentiel Fossil à partir d’un seul binaire sans aucune autorisation sudo ainsi que de l’exécuter comme un conteneur en utilisant Docker et Docker Compose. Cela le rend attrayant pour les utilisateurs qui ont déjà un serveur et ont besoin d’une plateforme de gestion de code adaptable facile à déployer dans presque n’importe quel environnement.
Apprendre certaines des meilleures alternatives à GitHub que vous pouvez installer sur votre machine n’est que la première étape pour récupérer votre vie privée numérique en ligne. Explorez ce merveilleux monde de l’auto-hébergement en créant votre propre alternative bit.ly en utilisant Shlink.
Crédit image : Yancy Min via Unsplash. Toutes les modifications et captures d’écran de Ramces Red.