Chapters ā–¾ 2nd Edition

4.7 Git sur le serveur - GitWeb

GitWeb

Après avoir réglé les accès de base en lecture/écriture et en lecture seule pour vos projets, vous souhaiterez peut-être mettre en place une interface web simple de visualisation. Git fournit un script CGI appelé GitWeb qui est souvent utilisé à cette fin.

L’interface web de visualisation Gitweb.
Figure 49. L’interface web de visualisation Gitweb.

Si vous souhaitez vĆ©rifier Ć  quoi GitWeb ressemblerait pour votre projet, Git fournit une commande pour dĆ©marrer une instance temporaire de serveur si vous avez un serveur lĆ©ger tel que lighttpd ou webrick sur votre systĆØme. Sur les machines Linux, lighttpd est souvent prĆ©-installĆ© et vous devriez pouvoir le dĆ©marrer en tapant git instaweb dans votre rĆ©pertoire de travail. Si vous utilisez un Mac, Ruby est installĆ© de base avec LĆ©opard, donc webrick est une meilleure option. Pour dĆ©marrer instaweb avec un gestionnaire autre que lighttpd, vous pouvez le lancer avec l’option --httpd.

$ git instaweb --httpd=webrick
[2009-02-21 10:02:21] INFO  WEBrick 1.3.1
[2009-02-21 10:02:21] INFO  ruby 1.8.6 (2008-03-03) [universal-darwin9.0]

Cette commande dĆ©marre un serveur HTTP sur le port 1234 et lance automatiquement un navigateur Internet qui ouvre la page d’accueil. C’est vraiment trĆØs simple. Pour arrĆŖter le serveur, il suffit de lancer la mĆŖme commande, mais avec l’option --stopĀ :

$ git instaweb --httpd=webrick --stop

Si vous souhaitez fournir l’interface web en permanence sur le serveur pour votre Ć©quipe ou pour un projet opensource que vous hĆ©bergez, il sera nĆ©cessaire d’installer le script CGI pour qu’il soit appelĆ© par votre serveur web. Quelques distributions Linux ont un package gitweb qu’il suffira d’installer via apt ou dnf, ce qui est une possibilitĆ©. Nous dĆ©taillerons tout de mĆŖme rapidement l’installation manuelle de GitWeb. PremiĆØrement, le code source de Git qui fournit GitWeb est nĆ©cessaire pour pouvoir gĆ©nĆ©rer un script CGI personnalisé :

$ git clone git://git.kernel.org/pub/scm/git/git.git
$ cd git/
$ make GITWEB_PROJECTROOT="/opt/git" prefix=/usr gitweb
    SUBDIR gitweb
    SUBDIR ../
make[2]: `GIT-VERSION-FILE' is up to date.
    GEN gitweb.cgi
    GEN static/gitweb.js
$ sudo cp -Rf gitweb /var/www/

Notez que vous devez indiquer où trouver les dĆ©pĆ“ts Git au moyen de la variable GITWEB_PROJECTROOT. Maintenant, il faut paramĆ©trer dans Apache l’utilisation de CGI pour ce script, en spĆ©cifiant un nouveau VirtualHostĀ :

<VirtualHost *:80>
    ServerName gitserver
    DocumentRoot /var/www/gitweb
    <Directory /var/www/gitweb>
        Options ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
        AllowOverride All
        order allow,deny
        Allow from all
        AddHandler cgi-script cgi
        DirectoryIndex gitweb.cgi
    </Directory>
</VirtualHost>

Une fois de plus, GitWeb peut être géré par tout serveur web capable de prendre en charge CGI ou Perl. La mise en place ne devrait pas être plus difficile avec un autre serveur. Après redémarrage du serveur, vous devriez être capable de visiter https://gitserveur/ pour visualiser vos dépÓts en ligne.

scroll-to-top