In diesem Artikel beschreibe ich die Installation und Konfiguration von Git und gitolite auf einem Debian-Server (genauer gesagt Debian Wheezy). Die Installation wird per Konsole durchgeführt. Grundlegende Kenntnisse von Git bzw. dem Umgang mit der Konsole werden vorausgesetzt.

Konfiguration

1. Einloggen auf dem Server z.B. per SSH
1
$ ssh USER@SERVER.TLD -p PORT
2. Installieren der Pakete git-core und gitolite
1
$ sudo apt-get install git-core gitolite
3. Erstellen des Git Benutzers
1
$ sudo adduser git
4. Als Git Benutzer einloggen
1
$ su git
5. RSA Key erstellen
1
$ ssh-keygen -t rsa
6. Gitolite konfigurieren

Gitolite benötigt zum initialen Setup den Public Key des Git-Admins. Ich gehe nachfolgend davon aus, dass dieser bereits unter /tmp/gitadmin.pub abgelegt wurde. Der Key kann nach der Installation wieder gelöscht werden.

1
$ gl-setup /tmp/gitadmin.pub

Das Setup öffnet eine Konfigurationsdatei, diese kann ohne weitere Änderungen gespeichert werden.

7. Repositories einrichten

Von dem Rechner aus, von dem der gitadmin.pub Key stammt, können nun Repositories eingerichtet werden. Dafür wird ein spezielles Admin-Repository verwendet.

1
$ git clone ssh://git@SERVER.TLD:PORT/gitolite-admin.git

Im Verzeichnis gitolite-admin gibt es zwei Ordner. Im Verzeichnis keydir werden die Public Keys der Benutzer abgelegt, die Zugriff auf Git-Repositories haben sollen. Im Verzeichnis conf befindet sich die Konfigurationsdatei gitolite.conf. Diese enthält alle Repositories und Zugriffsberechtigungen. Die Basiskonfiguration sieht folgendermaßen aus:

1
2
repo    REPOSITORY_NAME
        RW+     =   USER_NAME

REPOSITORY_NAME beinhaltet den Namen des Repositories, USER_NAME muss exakt dem Namen einer Public-Key-Datei ohne Dateiendung entsprechen. Per git commit und git push werden die Änderungen gespeichert und auf den Server übertragen. Gitolite legt nun automatisch die Repositories an, die in der Konfigurationsdatei genannt werden.

8. Repositories verwenden

Benutzer, die Lese- und Schreibrechte auf ein Repository haben, können nun ganz normal mit den Reporitories arbeiten, z.B.:

1
$ git clone ssh://git@SERVER.TLD:PORT/REPOSITORY_NAME.git

Repositories löschen

Um vorhandene Repositories zu löschen, genügt es, diese aus der Konfigurationsdatei zu entfernen. Gitolite löscht dabei allerdings nicht das entsprechende Repository-Verzeichnis auf dem Server, dieses muss manuell gelöscht werden.

Erweiterte Konfiguration von gitolite

Gitolite ermöglicht eine viel umfassendere Konfiguration der Repositories als im Beitrag gezeigt, wie etwa die Beschränkung von Benutzern auf bestimmte Branches oder das Anlegen von Benutzergruppen. Diese Einstellungen können in der gitolite Dokumentation nachgeschlagen werden.