Comment configurer un serveur Git privé sur votre hébergement Web

La gestion du code et la collaboration avec les membres de l'équipe sont essentielles pour tout projet de développement. Bien que des plateformes comme GitHub et GitLab soient populaires, la configuration de votre propre serveur Git privé sur votre hébergement Web peut vous donner plus de contrôle sur vos projets, garantir la confidentialité et potentiellement réduire les coûts. Ce didacticiel vous guidera à travers les étapes de configuration d'un serveur Git privé sur votre hébergement Web.

1. Pourquoi configurer un serveur Git privé ?

Avant de plonger dans la configuration, il est important de comprendre les avantages d'avoir votre propre serveur Git:

  • Confidentialité: Votre code reste totalement privé et sous votre contrôle.
  • Personnalisation: Personnalisez le serveur pour répondre à vos besoins et flux de travail spécifiques.
  • Aucune limite d'utilisateur: Évitez les limitations sur le nombre de référentiels privés ou de collaborateurs.
  • Rentable: pour les équipes comptant plusieurs utilisateurs, l’auto-hébergement peut être plus abordable que les plans payants sur les plateformes populaires.

2. Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants:

  • Un VPS ou un serveur dédié: L'hébergement partagé ne fournit généralement pas l'accès et les ressources nécessaires à la configuration d'un serveur Git.
  • Accès SSH: Vous aurez besoin d'un accès SSH à votre serveur pour installer et configurer le serveur Git.
  • Connaissances de base de Linux: Une familiarité avec la ligne de commande et Linux est essentielle.

3. Installer Git sur votre serveur

Tout d'abord, vous devez installer Git sur votre serveur. Suivez ces étapes:

  1. Mettre à jour le serveur: Run the following command to ensure your server’s package list is up to date:
    sudo apt-get update
  2. Installer Git: Install Git by running:
    sudo apt-get install git
  3. Vérifier l'installation: Check that Git has been installed correctly by typing:
    git --version

4. Créer un utilisateur Git

C'est une bonne pratique de créer un utilisateur distinct pour gérer vos dépôts Git:

  1. Créer un nouvel utilisateur: Run the following command to create a user named ‘git’:
    sudo adduser git
  2. Configurer l’accès SSH: Add your SSH key to the new user’s authorized keys to enable secure access:
    sudo mkdir /home/git/.ssh
    sudo touch /home/git/.ssh/authorized_keys
    sudo nano /home/git/.ssh/authorized_keys

    Collez votre clé SSH publique dans le fichier authorized_keys, puis enregistrez et quittez.

  3. Définir les autorisations: Adjust permissions for the SSH directory:
    sudo chown -R git:git /home/git/.ssh
    sudo chmod 700 /home/git/.ssh
    sudo chmod 600 /home/git/.ssh/authorized_keys

5. Créer un référentiel

Vous pouvez maintenant créer votre premier dépôt Git:

  1. Créer un répertoire pour les référentiels: Log in as the ‘git’ user and create a directory for your repositories:
    sudo su - git
    mkdir repos
    cd repos
  2. Initialiser un référentiel: Create a new Git repository by running:
    git init --bare votre-projet.git

    Cela crée un référentiel nu, idéal pour les référentiels distants vers lesquels le code est poussé et extrait.

6. Clonage et transfert vers le référentiel

Une fois votre référentiel configuré, vous pouvez désormais le cloner sur votre machine locale et y envoyer du code:

  1. Cloner le référentiel: On your local machine, run:
    git clone git@votre-ip-serveur:/home/git/repos/votre-projet.git
  2. Ajouter des fichiers et valider: Add your files to the repository, commit them, and push the changes:
    cd your-project
    echo "# Your Project" >> README.md
    git add .
    git commit -m "Initial commit"
    git push origin master

7. Gestion de plusieurs référentiels

Si vous prévoyez d'héberger plusieurs référentiels, vous pouvez simplement répéter les étapes de création de référentiel pour chaque projet:

  • Créez un nouveau répertoire pour chaque référentiel sous /home/git/repos/.
  • Initialisez chaque nouveau référentiel avec git init --bare your-new-project.git.
  • Accédez et gérez chaque référentiel indépendamment via SSH.

8. Sécuriser votre serveur Git

La sécurité est un aspect essentiel de l'hébergement d'un serveur Git privé. Voici quelques étapes pour améliorer la sécurité:

  • Désactiver l'authentification par mot de passe: Configurez SSH pour autoriser uniquement l'authentification par clé en modifiant /etc/ssh/sshd_config et en définissant PasswordAuthentication no.
  • Configuration du pare-feu: Utilisez des outils comme UFW pour autoriser uniquement les ports nécessaires (par exemple, SSH) et bloquer les autres.
  • Sauvegardes régulières: implémentez des sauvegardes régulières de vos référentiels pour éviter la perte de données.

9. Configuration des interfaces Web (facultatif)

Si vous préférez une interface Web pour gérer vos dépôts, vous pouvez installer des logiciels comme GitWeb ou Gitea:

  • GitWeb: Une interface Web simple pour visualiser les référentiels Git.
  • Gitea: Un service Git auto-hébergé qui fournit une interface conviviale similaire à GitHub.

Les deux options nécessitent une configuration et une installation supplémentaires, mais peuvent grandement améliorer la convivialité de votre serveur Git.

Conclusion

La configuration d'un serveur Git privé sur votre hébergement Web vous offre un contrôle complet sur votre code, garantit la confidentialité et permet une personnalisation adaptée à votre flux de travail. En suivant ce guide, vous pouvez créer et gérer vos propres référentiels Git, garantissant ainsi que votre processus de développement reste sécurisé et efficace.