Gitblit: Git Web-Oberfläche

Eine einfache, aber funktionale Web-Oberfläche für git – auf den zweiten Blick recht mächtig. Ich bin begeistert:

Gitblit

gitblit-screenshot

Folgende Features hat es unter anderem (und noch viel mehr):

  • Umfangreiche Web-Oberfläche:
    • Repos verwalten: anlegen, nachträglich verändern etc.
    • Benutzer, Gruppen anlegen und zuweisen.
    • Navigieren in den Commit, Quellfiles, Branches… inkl. Diffs.
    • Zeigt auch die Historie von z.B. einzelnen Files an.
    • Statistiken anzeigen.
  • Tickets
    • Diskussionen
    • Code-Reviews
    • Merge in den Branch, wenn Review ok (vgl. git gerrit oder github)
  • Zugriff via git, http, ssh (Auth. via SSH-Keys).
  • Nutzer auch via LDAP.
  • Änderungen als RSS-Feed
  • filestore für Git-LFS
  • Gravatar

Alles sehr naheliegend und straightforward – gefällt mir.

Ich habe mir das via docker-compose installiert. Das auf der Webseite angegebene Docker-Image (jmoger/gitblit) schien mit nicht ganz ausgereift.
Daher habe ich mich für jacekkow/gitblit entschieden.

Mit diesem docker-compose.yml hat das Ganze auf Anhieb funktioniert:

gitblit:
  image: jacekkow/gitblit
  ports:
    - 8443:8443
    - 8086:8080
    - 9418:9418
    - 29418:29418
  restart: always
  volumes:
    - /opt/dockervolumes/gitblit:/opt/gitblit-data

Folgende Änderungen habe ich dann gleich noch in den Properties (bei mir /opt/dockervolumes/gitblit/gitblit.properties) gemacht:

  • Tickets aktiviert:
    tickets.service=com.gitblit.tickets.FileTicketService
    
  • Suche-Indizierung durch Lucene aktiviert:
    web.allowLuceneIndexing=true
    
  • Zeitzone:
    web.timezone = Europe/Berlin
    

Im Ganzen wirklich eine runde Sache.

5 thoughts on “Gitblit: Git Web-Oberfläche

  1. Um gitblit das Versenden von Mail beizubringen habe ich folgendes in die gitblit.properties eingetragen:

    groovy.postReceiveScripts=sendmail-html
    mail.mailingLists=dirk@wor.net
    mail.fromAddress=gitblit@steinkopf.net
    mail.adminAddresses=dirk@bla.bla
    
    web.canonicalUrl=http://docker3.steinkopf.net:8086
    
    # DSTK 2016-03-21 so klappt's:
    mail.server=mail.bla.bla
    mail.port=25
    mail.starttls=true
    mail.username=user
    mail.password=pw
    mail.debug=true
    
  2. Um gitblit hinter einem Apache Reverse-Proxy zu betreiben, verwende ich folgende Einstellungen:

            ...
            RewriteEngine On
            ProxyRequests Off
    
            #ProxyPass        / http://docker-prod.steinkopf.net:8086/
            #ProxyPassReverse / http://docker-prod.steinkopf.net:8086/
            ProxyPass        / http://docker-prod.steinkopf.net:8086/
            ProxyPassReverse / http://docker-prod.steinkopf.net:8086/
    
            Header add X-Forwarded-Proto "https"
            RequestHeader set X-Forwarded-Proto "https"
            Header add X-Forwarded-Port "443"
            RequestHeader set X-Forwarded-Port "443"
    
            # see http://gitblit.com/faq.html#H9
            AllowEncodedSlashes On
            ...
    

    Mit meinem Pull-Request sollten dann auch die generierten URLs stimmen.

    Leider reicht bzgl. der Slash-Problematik AllowEncodedSlashes On nicht aus. Daher noch in die gitblit.properties:

    web.mountParameters=false
    

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.