Pierre Porcheret




Voir la liste des articles



01 02 2016


Installer un serveur git http

Je cherchais à faire un Github like pour mes projets. Pour faire un serveur git, il existe pas mal de tuto, mais pour un serveur git qui accepte le http...ça se corse...

De plus je voulais que ce serveur git accepte que tout le monde puisse cloner (lire) le projet mais pas pousser (ecrire) dans le projet, donc une lecture anonyme mais une écriture authentifiée.

Installation serveur git

L’installation pour git se fait rapidement :

aptitude install git-core

On crée ensuite le dossier où l’on va installer les projets

mkdir /var/www/git

cd /var/www/git

Création des projets

Le procéder ci-dessous est le même pour chaque projet

mkdir myproject.git

cd myproject.git

git --bare init

chown -R www-data.www-data .

git update-server-info

git config http.receivepack true

 

Installation et configuration de apache

aptitude install apache2

On ajoute ensuite le site git dans conf.d de apache2

nano /etc/apache2/conf.d/git.conf

Ajouter le texte suivant :

=================================================

<VirtualHost *:80>

DocumentRoot /var/www/git

ServerName git.server.local

 

<LocationMatch "^/git/.*/git-receive-pack$">

        AuthType Basic

        AuthName "Git Access"

  AuthUserFile "/data/password"

  Require valid-user

</LocationMatch>

 

SetEnv GIT_HTTP_EXPORT_ALL

SetEnv GIT_PROJECT_ROOT /var/www/git

ScriptAlias /git /usr/lib/git-core/git-http-backend

</VirtualHost>

 

=======================================================

Pensez à modifier le nom de serveur

On relance ensuite apache pour prendre en compte la configuration

service apache2 restart

Création des utilisateurs

htpasswd -c /data/password <utilisateur>

Installation de Gitweb

Pour avoir une vu web des projets, il exsite plusieurs interfaces, la plus simple pour moi est gitweb

aptitude install gitweb

On modifie la configuration pour indiquer les projets

nano /etc/gitweb.conf

changer la ligne :

$projectroot = '/var/cache/git/';

par :

$projectroot = '/var/www/git/';

Ajout d’un theme plus sympa :

git clone https://github.com/kogakure/gitweb-theme.git

./setup -vi –install

On peut alors acceder à la page :

http://<server>/gitweb/

 

Tests

Pour tester, depuis le client, faite un clone :

git clone http://<server>/git/myproject.git

et tenter d'ajouter un fichier :

touch test

git add test

git commit

git push

il devrais alors vous demander une authentification pour pousser les documents

 

sources :

https://git-scm.com/docs/git-http-backend

https://github.com/kogakure/gitweb-theme.git

 


categorie :