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*