Simon Szustkowski

Ein Blog über alles, was mir gerade so durch den Kopf geht

Apr 2, 2012

gitweb auf dem Uberspace

gitweb ist ein Web-Frontend für git-Repositories, ähnlich wie GitHub, aber selbst gehostet. Es war übrigens auch die Vorlage für GitPHP.
Die meisten Blogs beschreiben die Installation auf einem Rechner, auf dem man Vollzugriff hat, inklusive Root-Rechten, da die Installation über den Paketmanager der jeweiligen Distribution erfolgen soll. Aber auch das manuelle Setup ist ziemlich einfach.
Hier einmal Schritt für Schritt:

  1. git clone git://git.kernel.org/pub/scm/git/git.git
  2. cd git/gitweb
  3. make
  4. Einen Ordner im Web-Verzeichnis anlegen.
  5. cp *.cgi NEUER_ORDNER
  6. cp -r static/* NEUER_ORDNER
  7. cd NEUER_ORDNER
  8. In dem neuen Ordner die Datei gitweb_config.perl anlegen, und mit folgendem Inhalt füllen, und ggf. anpassen:
 # Wo liegt die git executable?
 $GIT = "/usr/bin/git";

 # Wo liegen die Git Repositories?
 $projectroot = "/home/user/repositories";

 # Wie nennen wir die Seite im UI-String?
 $home_link_str = "My gitweb service";

 # Welche Dateien brauchen wir fuer die schicke Darstellung?
 @<a href="http://twitter.com/stylesheets" rel="nofollow" target="_blank" title="View stylesheets's Twitter Profile">stylesheets</a> = ("gitweb.css");
 $logo = "git-logo.png";
 $favicon = "git-favicon.png";

 # Wie nennen wir die Seite?
 $site_name = "My Gitweb";

 # nicer-looking URLs
 $feature{'pathinfo'}{'default'} = [1];
 $my_uri = "http://git.mydomain.de";
 $home_link = $my_uri || "/";
  1. Eine .htaccess anlegen, und folgendes da rein schreiben, und ggf. anpassen: AuthName "git repository" AuthUserFile "/home/user/passwd" require valid-user Options +ExecCGI AddHandler cgi-script .cgi RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^.* /gitweb.cgi/$0 [L,PT]
  2. Voila.