Écoutez cet article

Vous ne voulez pas pousser votre code vers un dépôt Git hébergé ? Alors, exécutez votre propre serveur Git en interne. Gogs est le moyen le plus simple de le faire. Voici comment le configurer.

Le problème des dépôts hébergés dans le nuage

Git est sans aucun doute le système de contrôle de version le plus répandu. Même pour les projets à un seul développeur, Git apporte de la valeur et des avantages grâce à sa fonctionnalité de gestion des versions. Pour les projets multi-développeurs, Git apporte une toute autre dimension. Avec un dépôt central et distant, Git permet une capacité de collaboration qui transformera la façon dont vos équipes de développement envisagent le contrôle de version.

C’est pourquoi des services tels que GitHub, GitLab et BitBucket existent, et pourquoi ils ont connu un tel engouement et une telle croissance. GitHub héberge à lui seul plus de 200 millions de dépôts. Mais les dépôts hébergés dans le nuage ne conviennent pas à tout le monde. La plupart d’entre eux font payer l’hébergement de dépôts privés. Certains d’entre eux imposent des limites de stockage, d’utilisateurs ou de transfert de données pour les comptes gratuits.

Même si votre utilisation et la taille de votre équipe s’inscrivent dans les limites des comptes gratuits, ou même si vous êtes prêt à payer une licence commerciale, vous ne vous sentirez peut-être pas à l’aise pour stocker votre base de code dans le nuage.

L’alternative consiste à héberger votre propre serveur Git, soit localement sur votre propre réseau, soit en accès privé dans votre propre cloud privé. La mise en place d’un serveur Git offrant une interface Web avec l’aspect, la convivialité et les options que GitHub et ses amis ont rendus si populaires nécessitait auparavant un certain degré de compétences techniques. C’est là qu’intervient Gogs.

Qu’est-ce que Gogs ?

Gogs est un projet relativement nouveau, écrit en Go, qui fournit une instance Git facile à installer, mais avec toutes les fonctionnalités. Il n’y a aucune limite à la taille de l’équipe, au stockage ou à quoi que ce soit d’autre.

Même si vous êtes un programmeur amateur, utiliser Gogs comme un service Git sur votre réseau local vous permet de stocker une copie de votre code loin de votre machine de développement. Lorsque vous – ou quelqu’un d’autre – souhaitez travailler sur un ordinateur différent ou nouveau, il vous suffit de cloner un dépôt depuis votre serveur Gogs, comme vous le feriez depuis GitHub.

Si vous avez l’intention d’utiliser Gogs fréquemment, vous trouverez probablement pratique de l’ajouter aux applications de démarrage de l’ordinateur sur lequel il est exécuté.

Comment installer Gogs

Pour installer Gogs, vous téléchargez le fichier d’archive approprié, le décompressez et exécutez le binaire principal. Vous remplissez quelques formulaires, et Gogs initialise votre référentiel et vous ajoute comme utilisateur administrateur. Vous pouvez ensuite naviguer dans votre instance Gogs, ajouter des utilisateurs et créer des référentiels.

Gogs utilise une base de données pour son stockage dorsal. Il prend en charge MySQL, MariaDB, PostgreSQL et TiDB. Si vous souhaitez utiliser l’un de ces puissants moteurs de base de données, vous devez le localiser et l’installer vous-même, avant d’installer Gogs. Pour les petites équipes, vous pouvez utiliser SQLite3. Si vous optez pour SQLite3, il est installé pour vous. Bien entendu, vous devrez également installer git.

Téléchargez le binaire approprié.

  • Pour la plupart des distributions modernes de Linux, téléchargez le fichier « Linux amd64 ».
  • Si vous utilisez une version 32 bits de Linux, téléchargez le fichier « Linux 386 ».
  • Si vous effectuez une installation sur un Raspberry Pi 2 ou antérieur, téléchargez le fichier « Linux armv7 ».
  • Si vous installez sur un Raspberry Pi 3, 3+ ou plus récent, téléchargez le fichier « Linux armv8 ».
  • Si vous utilisez un Mac Intel, téléchargez le fichier « macOS amd64 ».
  • Pour un Apple Silicon Mac, téléchargez le fichier « macOS arm64 ».

Nous avons téléchargé le fichier ZIP « Linux amd64 », pour une installation sur un ordinateur 64 bits avec Ubuntu 22.10. Le fichier est petit (environ 25 Mo), ne soyez donc pas surpris si le téléchargement est très rapide. C’est normal.

Localisez le fichier dans votre système de fichiers. Si vous avez conservé l’emplacement de téléchargement par défaut de votre navigateur, le fichier se trouve probablement dans votre répertoire « ~/Downloads ». Cliquez avec le bouton droit de la souris sur le fichier et sélectionnez « Extraire » dans le menu contextuel. Certains navigateurs de fichiers peuvent utiliser « Extraire ici » à la place.

Un répertoire est extrait du fichier ZIP. Il porte le nom du fichier téléchargé. Dans notre cas, il s’appelle « gogs_0.11.91_linux_amd64 ».

Le répertoire extrait, nommé d’après le fichier téléchargé

Double-cliquez sur le répertoire extrait et vous verrez un autre répertoire appelé « gogs ».

Le répertoire gogs

Double-cliquez sur le répertoire « gogs ». Vous verrez les fichiers et répertoires de Gogs. Cliquez avec le bouton droit de la souris dans la fenêtre du navigateur de fichiers et sélectionnez « Ouvrir dans le terminal » dans le menu contextuel.

Pour démarrer votre instance de Gogs, tapez cette commande :

./gogs web

Démarrage du serveur Git gogs

Gogs est lancé et vous indique qu’il écoute sur le port 3000.

Connectez-vous à votre serveur Gogs en ouvrant un navigateur Web et en naviguant jusqu’à l’adresse IP ou le nom de réseau de l’ordinateur sur lequel Gogs est exécuté. Ajoutez « :3000 » après l’adresse IP ou le nom du réseau. N’incluez pas d’espace.

Si vous naviguez sur l’ordinateur sur lequel Gogs est exécuté, vous pouvez utiliser « localhost » comme nom de machine, comme ceci « localhost:3000 ». Notre ordinateur Gogs s’appelle « ubuntu-22-10.local », donc à partir d’un autre ordinateur sur le même réseau, l’adresse à laquelle nous devons naviguer est « ubuntu-22-10.local:3000 », y compris le numéro de port.

La première fois que vous effectuez cette opération, vous verrez apparaître le formulaire qui saisit certaines informations de configuration initiale.

La partie du menu de sélection de la base de données de l’écran de configuration de Gogs

La première chose à faire est de sélectionner « SQLite3 » dans le menu déroulant « Database Type » et de saisir votre nom d’utilisateur dans le champ « Run User ».

Le champ « Run User » de l’écran de configuration de Gogs

Si vous souhaitez mettre en place des notifications par e-mail, vous devrez configurer quelques étapes supplémentaires. Vous devez relayer les e-mails via un serveur de messagerie SMTP (Simple Mail Transfer Protocol) que vous êtes autorisé à utiliser. Si vous êtes un utilisateur de Google Gmail, vous pouvez utiliser le serveur SMTP de Google Gmail.

Pour ce faire, vous devrez paramétrer le serveur de messagerie pour permettre à votre compte d’accepter et de relayer le courrier électronique. Ces paramètres varient d’un serveur de messagerie à l’autre.

Gogs vous demande d’entrer les informations suivantes sur votre serveur de messagerie.

  • Hôte SMTP : L’adresse et le port du serveur de messagerie. Dans notre exemple, il s’agit du serveur SMTP de Google à l’adresse smtp.gmail.com:587.
  • De : L’adresse électronique à partir de laquelle l’e-mail sera envoyé. Pour Gmail, il s’agit de l’adresse électronique Gmail du compte que vous utilisez.
  • Email de l’expéditeur : Doit être la même que ci-dessus. Il s’agit de l’ID du compte de messagerie que Gogs utilisera pour communiquer avec le serveur SMTP.
  • Mot de passe de l’expéditeur : il ne s’agit pas du mot de passe du compte Gmail. Il s’agit du mot de passe spécifique à l’application que vous obtenez de Google lorsque vous configurez votre compte pour autoriser une application à envoyer des e-mails en votre nom.
  • Activer la confirmation d’inscription : Pour que Gogs vérifie les e-mails des utilisateurs, cochez cette case. Les nouveaux utilisateurs recevront un e-mail contenant un lien. Ils doivent cliquer sur ce lien pour prouver que l’adresse électronique est authentique et sous leur contrôle.
  • Activer la notification par courriel : Cochez cette case pour autoriser les notifications par courrier électronique de Gogs.

La partie « Paramètres du service de messagerie » de l’écran de configuration de Gogs

Bien sûr, si vous ne voulez pas être harcelé par des courriers électroniques, vous pouvez ignorer tous les paramètres de messagerie.

Cliquez sur le bouton bleu « Installer Gogs » lorsque vous êtes prêt à poursuivre. Gogs écrit un fichier de configuration, initialise le stockage de la base de données et démarre votre instance Git.

Vous verrez la page d’accueil principale de Gogs.

La page d’accueil de Gogs

Le premier compte utilisateur que vous créez se verra automatiquement attribuer des droits d’administrateur. Cliquez sur le lien « Register ».

Création d’un compte sur le serveur Gogs

Remplissez le formulaire « Sign Up » avec votre nom de compte, un mot de passe pour ce compte (entrez-le deux fois), et les chiffres du Captcha. Cliquez sur le bouton vert « Créer un nouveau compte ». La page « Connexion » s’affiche.

Connexion à Gogs

Saisissez votre nom de compte et votre mot de passe, puis cliquez sur le bouton vert « Connexion ».

Visite rapide de Gogs

Si vous êtes familier avec n’importe quelle autre instance Git accessible par le Web, vous vous retrouverez très facilement dans Gogs.

Le tableau de bord de Gogs avant la création de tout dépôt

L’affichage du « tableau de bord » de Gogs est un peu clairsemé jusqu’à ce que vous ayez un dépôt avec lequel travailler. Cliquez sur le bouton bleu « + », et remplissez le formulaire « Nouveau référentiel ».

Il demande un nom de référentiel, s’il est privé ou public, et une description.

Créer un nouveau référentiel en fournissant un nom et d’autres détails

Les trois champs suivants permettent de créer des fichiers à partir de modèles.

Trois champs qui contrôlent la création de fichiers par défaut à partir de modèles

  • Le menu « .gitignore » vous permet de sélectionner un modèle pour votre fichier « .gitignore » configuré avec des paramètres en fonction des langues sélectionnées. Vous pouvez faire plus d’un choix dans ce menu, pour répondre aux dépôts qui utilisent un mélange de technologies de développement.
  • Le menu « Licence » vous permet de choisir une licence dans une liste complète.
  • Le menu « Readme » a une seule option, un fichier « README.md » par défaut.

Cochez la case « Initialiser ce référentiel avec les fichiers et le modèle sélectionnés », puis cliquez sur le bouton vert « Créer un référentiel ».

Un référentiel nouvellement créé contenant trois fichiers générés automatiquement

Votre nouveau référentiel s’affiche pour vous. Gogs a créé nos trois fichiers standard pour nous, et les a ajoutés au référentiel avec le message de validation « Initial commit ».

Nous avons cloné le référentiel sur notre ordinateur, ajouté un fichier appelé « ack.c », l’avons commité et poussé vers notre référentiel Gogs distant. Tout cela a été fait en utilisant les commandes standard de Git.

Ajouter un fichier au dépôt local et le pousser vers Gogs

Comme prévu, notre nouveau fichier apparaît dans notre dépôt Gogs.

Le dépôt dans lequel le nouveau fichier a été poussé avec succès.

En cliquant sur un fichier, nous pouvons voir le contenu de ce fichier. Les fichiers Markdown sont interprétés pour vous, avec des titres, des liens, des listes et toutes les autres fonctionnalités de Markdown. Les fichiers « README.md » sont généralement écrits en Markdown.

Le contenu du fichier README.md généré automatiquement

En cliquant sur l’icône crayon « Edit », nous pouvons directement modifier notre fichier « README.md ». Nous avons ajouté du texte, utilisé des balises Markdown pour insérer des hyperliens et des italiques, puis validé nos modifications. Tout cela depuis Gogs.

Le fichier README.md mis à jour

De retour dans la vue de notre dépôt, notre fichier « README.md » mis à jour s’affiche, et l’entrée « README.md » de la liste des fichiers présente un nouveau message de validation et l’heure de mise à jour.

Le fichier README.md mis à jour avec un nouveau message de validation et un nouvel horodatage.

Le serveur Git le plus facile à utiliser – sans exception

Gogs est un triomphe absolu. Il allie parfaitement fonctionnalité et simplicité.

Il est prêt à l’emploi et répond aux besoins de la majorité des amateurs ou des petites équipes de développement. Certaines de ses options avancées sont activées en modifiant le fichier de configuration qui, par défaut, se trouve à « ~/Downloads/gogs_0.12.10_linux_amd64/gogs/custom/conf/app.ini ». Notez que le chemin d’accès reflète la version de Gogs que vous utilisez.

L’administration générale du système peut être effectuée à partir du panneau d’administration, situé dans Votre profil > Panneau d’administration.

Bien que la documentation de Gogs soit brève au point d’être laconique, cela signifie qu’il est facile de trouver ce que vous cherchez et que les descriptions sont suffisamment détaillées pour que vous puissiez les suivre.

Si vous vous méfiez des référentiels hébergés dans le nuage, qui sont en fin de compte sous le contrôle d’autres personnes, envisagez d’utiliser Gogs localement. Vous ne perdrez pas de fonctionnalités, mais vous gagnerez en contrôle et en garantie de confidentialité.