Chapters ▾ 2nd Edition

4.7 Git på servern - GitWeb

GitWeb

Nu när du har grundläggande läs/skriv-åtkomst kanske du vill sätta upp ett enkelt webbaserat gränssnitt. Git levereras med ett CGI-skript som heter GitWeb som ibland används för detta.

GitWebs webbaserade gränssnitt
Figur 49. GitWebs webbaserade gränssnitt

Om du vill se hur GitWeb skulle se ut för ditt projekt kan du starta en tillfällig instans om du har en lätt webserver installerad, till exempel lighttpd eller webrick. På Linux är lighttpd ofta installerat, så du kan prova att köra git instaweb i projektkatalogen. Om du kör macOS med Ruby kan webrick vara ett bra val. För att starta instaweb med en annan server än lighttpd använder du flaggan --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]

Det startar en HTTPD-server på port 1234 och öppnar sedan automatiskt en webbläsare med sidan. Det är ganska enkelt. När du är klar kan du stänga ned servern med samma kommando och flaggan --stop:

$ git instaweb --httpd=webrick --stop

Om du vill köra webbgränssnittet permanent för ditt team eller ett öppet källkodsprojekt behöver du konfigurera CGI-skriptet i din vanliga webserver. Vissa Linuxdistributioner har ett gitweb-paket som du kan installera med apt eller dnf, så du kan börja där. Vi går snabbt igenom en manuell installation. Först behöver du Git-källkoden (som kommer med GitWeb) och generera CGI-skriptet:

$ git clone https://git.kernel.org/pub/scm/git/git.git
$ cd git/
$ make GITWEB_PROJECTROOT="/srv/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/

Observera att du måste tala om var dina Git-kodförråd finns med variabeln GITWEB_PROJECTROOT. Därefter behöver du konfigurera Apache att köra CGI för skriptet, till exempel med en 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>

GitWeb kan serveras av vilken CGI- eller Perl-kapabel webserver som helst, så om du föredrar något annat bör det vara enkelt att sätta upp. När detta är klart kan du besöka http://gitserver/ för att se dina kodförråd på webben.