Gitblit

Gitblit ist eine Java Web-Anwendung, welche Git Repositories verwalten kann. Eine Out-of-the-Box Lösung zum Hosten von Sourcecode. Läuft hervorragend unter Jetty.

Installation von Gitblit GO

Die Gitblit GO Version kommt mit eigenem Jetty als Server.

Siehe Anleitung.

mkdir dev
cd dev
wget http://dl.bintray.com/gitblit/releases/gitblit-1.6.2.tar.gz
tar -xvf gitblit-1.6.2.tar.gz

Konfiguration

Apache dient als Frontend für die Subdomain <dev.oberguru.net> und Zugriff auf Gitblit mit HTTPS-Port 8444.

Apache Konfiguration

Siehe Gitblit-Doku. In httpd.conf:

### dev.oberguru.net
<VirtualHost 78.47.145.233:443>
    ServerName dev.oberguru.net
    ErrorLog logs/dev.oberguru.net.error.log
    CustomLog logs/dev.oberguru.net.acces.log combined
    RewriteEngine On
    ProxyRequests Off
    ProxyVia Off
    ProxyPreserveHost On
    ProxyPass / https://localhost:8444/
    ProxyPassreverse / https://localhost:8444/
    RequestHeader set X-Forwarded-Context /
    SSLProxyEngine on
</VirtualHost>

Gitblit Konfiguration

Gitblit kann durch die Datei gitblit.properties konfiguriert werden. Diese befindet sich im Basisordner baseFolder, welcher beim Start von Gitblit als Parameter mit angegeben werden kann:

java -jar gitblit.jar --baseFolder data

Oder als Umgebungsvariable:

GITBLIT_BASE_FOLDER=...

Alle wesentlichen Konfigurationsdateien, und sofern nicht anders angegeben, die Repositories, befinden sich dort.

HTTPS Port festlegen, nur HTTPS, nur lokaler Zugriff:

server.httpPort = 0
server.httpsPort = 8444
server.httpsBindInterface = localhost

Name und URL der Seite:

web.siteName = dev.oberguru.net               
web.canonicalUrl = https://dev.oberguru.net        

Logo mit Link, 120x45 Pixel, logo.png in BaseFolder hochladen:

web.headerLogo = ${baseFolder}/logo.png          
web.rootLink = https://dev.oberguru.net          

Header, CSS Farben:

web.hideHeader = false                    
web.headerBackgroundColor = #edab01            
web.headerForegroundColor = #000000           
web.headerHoverColor = #ffffff             
web.headerBorderColor = #c99101               
web.headerBorderFocusColor = #c99101          

Unnötiger Schnickes weg:

web.allowGravatar = false
web.allowFlashCopyToClipboard = false

Kein Forking:

web.allowForking = false

Kein GIT+SSH:

git.daemonPort = 0
git.sshPort = 0

Nur HTTPS push:

git.acceptedPushTransports = HTTPS

Lokale Zeitzone, dt. Zeit/Datums-Darstellungen:

web.timezone = Europe/Berlin
web.datestampShortFormat = dd.MM.yy
web.datestampLongFormat = dd.MM.yyyy
web.datetimestampLongFormat = dd.MM.yyyy HH:mm

Für eigene Begrüßungstexte kann eine Markdown Datei hochgeladen und verwendet werden:

web.repositoriesMessage =  ${baseFolder}/willkommen.md

Probleme mit codierten Slashs bei Apache / Jetty.

web.forwardSlashCharacter = -

Weitere Anpassungen

Für andere Sachen, die über die Konfigurationsmöglichkeiten hinausgehen, wie Styling, Menüeinträge, Änderungen des HTML kann ein Plugin oder ein Fork erstellt werden.
Link zum Plugin Template: https://github.com/gitblit/gitblit-cookbook-plugin.

Benutzerverwaltung

Die Datei users.conf enthält die Benutzerverwaltung. Es gibt einen voreingerichteten Admin-Account admin mit Standard-Passwort admin und sollte sofort geändert werden.

Start von Gitblit als Service unter CentOS

Im Installationsverzeichnis befindet sich ein Start-Skript service-centos.sh. Dieses editieren und installieren mit install-service-centos.sh. Danach wie üblich:

service gitblit start | stop | restart

Vorkonfigurierte .gitignore Dateien

Im Ordner gitignore gibt es für verschiedene Entwicklungsumgebungen jeweils eine vorkonfigurierte .gitignore Datei, welche beim Anlegen eines neuen Repository verwendet werden kann.
Zum Beispiel Java.gitignore:

*.class

target
.classpath
.project
.settings

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*