Dans ce didacticiel, nous allons vous montrer comment installer HTTP Git Server sur Ubuntu 20.04 LTS. Pour ceux d'entre vous qui ne le savaient pas, HTTP Git Server est un projet open source qui utilise un serveur Web Nginx pour servir les référentiels Git sur votre réseau local (LAN). Le serveur HTTP Git est étonnamment facile à configurer et à gérer.
Cet article suppose que vous avez au moins des connaissances de base sur Linux, que vous savez utiliser le shell et, plus important encore, que vous hébergez votre site sur votre propre VPS. L'installation est assez simple et suppose que vous s'exécutent dans le compte root, sinon vous devrez peut-être ajouter 'sudo
‘ aux commandes pour obtenir les privilèges root. Je vais vous montrer étape par étape l'installation de HTTP Git Server sur Ubuntu 20.04 (Focal Fossa). Vous pouvez suivre les mêmes instructions pour Ubuntu 18.04, 16.04 et toute autre distribution basée sur Debian comme Linux Mint.
Prérequis
- Un serveur exécutant l'un des systèmes d'exploitation suivants :Ubuntu 20.04, 18.04, 16.04 et toute autre distribution basée sur Debian comme Linux Mint.
- Il est recommandé d'utiliser une nouvelle installation du système d'exploitation pour éviter tout problème potentiel.
- Un
non-root sudo user
ou l'accès à l'root user
. Nous vous recommandons d'agir en tant qu'non-root sudo user
, cependant, car vous pouvez endommager votre système si vous ne faites pas attention lorsque vous agissez en tant que root.
Installer le serveur HTTP Git sur Ubuntu 20.04 LTS Focal Fossa
Étape 1. Tout d'abord, assurez-vous que tous vos packages système sont à jour en exécutant le apt
suivant commandes dans le terminal.
sudo apt update sudo apt upgrade sudo apt install fcgiwrap apache2-utils unzip
Étape 2. Installer Nginx sur Ubuntu 20.04.
Nginx est disponible dans les référentiels Ubuntu par défaut. Pour l'installer, exécutez la commande suivante :
sudo apt install nginx
Une fois l'installation terminée, exécutez les commandes pour permettre à Nginx de démarrer automatiquement au démarrage de votre serveur :
sudo systemctl stop nginx sudo systemctl start nginx sudo systemctl enable nginx
Configuration du pare-feu.
En attendant, vous devez vous assurer que votre pare-feu est configuré pour autoriser le trafic sur les ports HTTP (80) et HTTPS (443). Nginx s'enregistre en tant que service auprès de ufw
:
sudo ufw allow in "Nginx Full"
Étape 3. Installer Git sur Ubuntu 20.04.
Exécutez la commande suivante ci-dessous pour installer Git sur votre système Ubuntu :
sudo apt install git
Confirmez l'installation de Git :
git --version
Étape 4. Créez un référentiel Git.
Nous créons maintenant un répertoire pour stocker le dépôt Git :
mkdir /var/www/html/idroot-repo
Ensuite, changez le répertoire en idroot-repo
et créez un autre répertoire pour les utilisateurs :
cd /var/www/html/myrepo mkdir user.git
Nous allons maintenant initialiser le dépôt avec la commande :
cd user.git git --bare init
Ensuite, mettez à jour le serveur Git avec la commande :
git update-server-info
Donnez au dépôt le propriétaire correct avec la commande :
chown -R www-data:www-data /var/www/html/idroot-repo chmod -R 755 /var/www/html/idroot-repo
Après cela, créez un utilisateur appelé user et définissez un mot de passe pour restreindre l'accès au référentiel git à l'aide de l'authentification de base HTTP :
htpasswd -c /var/www/html/idroot-repo/htpasswd user
Étape 5. Configurez Nginx pour servir le référentiel Git.
Nous créons maintenant un fichier de configuration d'hôte virtuel Nginx pour servir le référentiel Git :
nano /etc/nginx/conf.d/git.conf
Ajoutez les lignes suivantes :
server { listen 80; root /var/www/html/idroot-repo; # Add index.php to the list if you are using PHP index index.html index.htm index.nginx-debian.html; server_name git.your-domain.com; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; } location ~ (/.*) { client_max_body_size 0; auth_basic "Git Login"; auth_basic_user_file "/var/www/html/idroot-repo/htpasswd"; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; fastcgi_param GIT_HTTP_EXPORT_ALL ""; fastcgi_param GIT_PROJECT_ROOT /var/www/html/idroot-repo; fastcgi_param REMOTE_USER $remote_user; fastcgi_param PATH_INFO $1; fastcgi_pass unix:/var/run/fcgiwrap.socket; } }
Enregistrez et fermez le fichier, puis redémarrez le service Nginx pour appliquer les modifications :
nginx -t sudo systemctl restart nginx
Étape 6. Connectez-vous au référentiel Git à partir du client.
Tout d'abord, créez un répertoire pour votre projet avec la commande suivante :
mkdir my-project
Ensuite, accédez au répertoire de votre projet et initialisez Git à l'aide de la commande :
cd my-project git init
Nous vous recommandons de configurer votre Git pour valider l'e-mail et le nom d'utilisateur. Pour ce faire, exécutez les commandes suivantes :
git config --global user.email "[email protected]" git config --global user.name "user"
Après cela, ajoutez votre référentiel Git distant avec la commande suivante :
git remote add origin http://[email protected]/user.git
Ensuite, créez un répertoire appelé dev et ajoutez-y un fichier :
mkdir dev echo "This is my first my application" > dev/file
Nous pouvons maintenant ajouter ces fichiers à git avec la commande :
git add .
Validez les modifications avec la commande :
git commit -a -m "Add files and directories"
Ensuite, poussez tous nos répertoires et fichiers nouvellement créés sur le serveur avec la commande :
git push origin master
Une fois connecté, vous obtiendrez le résultat suivant :
Counting objects: 8, done. Writing objects: 100% (4/4), 512 bytes | 346.00 KiB/s, done. Total 8 (delta 0), reused 0 (delta 0) To http://git.your-domain.com/user.git * [new branch] master -> master
Vous pouvez également télécharger votre référentiel depuis le serveur Git directement à l'aide de la commande suivante :
git clone http://[email protected]/user.git
Félicitations ! Vous avez installé avec succès le serveur HTTP Git. Merci d'avoir utilisé ce didacticiel pour installer le serveur HTTP Git sur votre système Ubuntu 20.04 LTS Focal Fossa. Pour obtenir de l'aide supplémentaire ou des informations utiles, nous vous recommandons consultez le site Web officiel de Git.