Cgit

Aus Fedorawiki.de

Wechseln zu: Navigation, Suche


Dieser Artikel ist Teil der HOWTO Sammlung

cgit ist eine CGI-Anwendung, welche in C geschrieben worden ist und ein Web-Interface zur Verfügung stellt. Sie kann als weiteren Befehl angesehen werden, der HTML generiert aus den Repository-Daten. Es ist kein Fork von git, sondern arbeitet mit einer Verbindung zu libgit.a.

cgit-Oberfläche ohne konfigurierte Repositories

Inhaltsverzeichnis

Installation

Die Installation ist mit yum, PackageKit oder yumex schnell erledigt, da sich das Paket im Repository von Fedora befindet.

[root]# yum install cgit


Konfiguration

Die Basis-Daten für die Konfiguration befindet sich in der Datei /etc/cgitrc. Sie kann mit einem Text-Editor (nano oder vim) bearbeitet werden. Für eine Basis-Konfiguration reicht eine kleine Änderung.

Folgende Zeile darf nicht mehr auskommentiert sein.

include=/etc/cgitrepos

Damit klarer ist, welche cgit-Instanz man verwendet, ist es ratsam, den Titel und die Beschreibung anzupassen.

root-title=Local git repositories
root-desc=Tracking the local development

Repositories

Die Datei cgitrepos muss nun angelegt werden.

[root]# touch /etc/cgitrepos

In der Datei /etc/cgitrc befindet sich am Ende ein Beispiel, wie ein Repository eingetragen werden muss. Diese Zeilen können kopiert werden und in die Datei /etc/cgitrepos eingefügt werden. repo.path muss auf ein bare-Repository zeigen, sprich die normalen Entwicklungs-Repositories funktionieren nicht. Der Standard-Pfad für die Repositories ist /var/lib/git/.

Falls noch kein Repository angelegt wurde, kann es mit nachfolgendem Befehl gemacht werden.

git init --bar /var/lib/git/repository.git

Die Berechtigungen lassen standardmässig nur das Erzeugen von Repositories durch root zu. Es wird empfohlen, die den eigenen Gegebenheiten anzupassen.

Der Konfigurationsblock sieht wie folgt aus:

repo.url=test
repo.path=/var/lib/git/repository.git/
repo.desc=The master test repository
repo.owner=test@beispiel.com

Weitere Repositories lassen sich nach dem gleichen Schema hinzufügen. Nur die Einträge kopieren und die Daten ändern.

Für eine Gruppierung der Repositories kann der Konfigurationsblock zum eine Zeile mit der Gruppe erweitert werden.

repo.group=Gruppe


SELinux

Da die meisten Repositories sich wahrscheinlich irgendwo im System befinden, müssen die SELinux-Einstellungen angepasst werden.

Die Datei /usr/share/doc/cgit-0.8.2.1/README.SELinux enthält weitere Details.

Der httpd_enable_cgi-Boolean muss entsprechend gesetzt sein.

[root]# setsebool -P httpd_enable_cgi 1

Die Repository-Verzeichnisse müssen von cgi gelesen werden können.

[root]# semanage fcontext -a -t httpd_sys_content_t "/Pfad/zu/Repositories(/.*)?"

Alternative kann auch mit public_content_t oder public_content_rw_t statt httpd_sys_content_t gearbeitet werden, wenn

Nun muss noch der Kontext aktualisiert werden.

[root]# restorecon -RF /Pfad/zu/Repositories


Starten

Der Webserver muss gestartet werden.

[root]# service httpd restart

Danach kann mit http://localhost/cgit auf die entsprechende Webseite zugegriffen werden.


Siehe auch


Links