GitList Installation und Konfiguration

Wie bereits im Artikel über gitolite angekündigt, folgt nun der versprochene Post bzgl. Installation und Konfiguration von gitlist. Gitlist stellt dabei ein Web-Interface für die Repositories eurer Projekte dar und orientiert sich optisch stark an gitHub. Es ist möglich mehrere Projekte/Repositories, separate Branches und einzelne Commits anzuzeigen.

gitlist webinterface

Vorbereitung Link to heading

Zunächst müssen wir uns gitlist von der offiziellen Projektseite herunterladen. Das geht relativ fix mittels wget und sollte keine großen Probleme machen.

# Verzeichnis erstellen
mkdir -p /var/www/gitlist/
# Verzeichnis wechseln
cd /var/www/gitlist
# downloaden von gitlist
wget –no-check-certificate https://s3.amazonaws.com/gitlist/gitlist-0.4.0.tar.gz

Installation von gitlist Link to heading

Zur Installation sollten wir das Archiv noch entpacken und mit den entsprechenden Rechten versehen.

# Archiv entpacken
tar -xzvf gitlist-0.4.tar.gz
# Rechte anpassen
chown -R www-data:www-data /var/www/gitlist
find /var/www/gitlist/ -type d -exec chmod 775 {} \; 
find /var/www/gitlist/ -type f -exec chmod 664 {} \;
# Cache Verzeichnis benötigt gesondert Rechte
chmod 777 /var/www/gitlist/cache

Schon ist gitlist installiert. Natürlich muss euer Web-Server ( bspw. apache, nginx oder lighttpd) entsprechend konfiguriert werden, damit er den Inhalt auch entsprechend anzeigen kann.

Konfiguration von gitlist Link to heading

Im erstellten Verzeichnis gitlist sollte sich neben einigen PHP-Skripten auch eine Datei mit dem Namen „config.ini-example“ befinden. Diese wird zunächst kopiert bzw. umbenannt.

cp config.ini-example config.ini

Die Datei sollte im Groben so aussehen:

[git]
client = '/usr/bin/git' ; Your git executable path
default_branch = 'master' ; Default branch when HEAD is detached
repositories[] = '/home/git/repositories/' ; Path to your repositories
                                           ; If you wish to add more repositories, just add a new line

; WINDOWS USERS
;client = '"C:\Program Files (x86)\Git\bin\git.exe"' ; Your git executable path
;repositories[] = 'C:\Path\to\Repos\' ; Path to your repositories

; You can hide repositories from GitList, just copy this for each repository you want to hide
; hidden[] = '/home/git/repositories/BetaTest'

[app]
debug = false
cache = true

; If you need to specify custom filetypes for certain extensions, do this here
[filetypes]
; extension = type
; dist = xml

; If you need to set file types as binary or not, do this here
[binary_filetypes]
; extension = true
; svh = false
; map = true

; set the timezone
[Date]
; timezone = UTC

Unter der Annahme, dass der Befehl git sich unter /usr/bin finden lässt ist Zeile 4 sehr entscheidend. Sie setzt den Pfad, unter dem sich eure Repositories finden lassen. Sollen einige Repositories ausgeblendet werden, so kann man diese nach dem Muster in Zeile 12 einfügen. Es bietet sich an, hier das Repository für die Verwaltung (gitolite-admin) einzutragen.

Anpassung von gitolite Link to heading

Leider muss die Standard umask von gitolite angepasst werden, da sonst die Rechte zu restriktiv vergeben werden und die Inhalte der einzelnen References aus den Repositories nicht gelesen werden können.

Dazu verändert man die Datei gitolite.rc unter /home/git/.gitolite.rc in Zeile 21 entsprechend ab.

# Orginal
-    UMASK                           =>  0700
# Änderung
+    UMASK                           =>  0002

Führt man diese Änderung nicht aus, so wird gitlist sich jedesmal beschweren, dass es keine Informationen des Repositories lesen konnte und euch mit einer Fehlermeldung begrüßen/abspeisen.