gitprep mit nginx und letsencrypt

Kategorie: Blog Veröffentlicht: Donnerstag, 14. September 2017 Drucken E-Mail

Falls wer eine schlanke GUI für private Repositories sucht, dem kann ich Gitprep ans Herz legen. Zu finden ist das Ganze in github unter github.com/yuki-kimoto/gitprep.

Gitprep ist in Perl geschrieben, sehr schlank und schnell. Bietet natürlich allerdings nicht den Funktionsumfang den z.B. Gitlab aufzuweisen hat. Dafür kann man es recht einfach mit dem eigenen Nginx oder Apache betreiben. Ich gehe im folgenden aber nur auf Nginx ein. Das Tutorial beschränkt sich auch auf die Konfiguration von Nginx, wie man Gitprep an sich installiert findet man auf der Projektseite gut beschrieben.

Die Nginx config sieht Folgendermaßen aus:

server {
        listen 80;
        server_name YOUR_DOMAIN;
        return 301 https://$host$request_uri;
}

server {
        listen 443 ssl;
        server_name YOUR_DOMAIN;
        charset utf-8;
        allow all;
        proxy_buffering on;
        proxy_ignore_client_abort on;
        proxy_intercept_errors on;
        proxy_next_upstream error timeout invalid_header;
        proxy_connect_timeout 90;
        proxy_send_timeout 21600;
        proxy_read_timeout 21600;

        ssl_certificate PATH_TO_LETSENRYPT/fullchain.pem;
        ssl_certificate PATH_TO_LETSENRYPT/privkey.pem;

        error_log /var/log/nginx/gitprep.error.log crit;
        access_log /var/log/nginx/gitprep.access.log;

        client_max_body_size 101M;

        root    /var/www/vhosts/gitprep/;

        location / {
                chunked_transfer_encoding off;
                proxy_set_header   Host             $host;
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header   X-Forwarded-HTTPS 0;
                proxy_pass         http://127.0.0.1:10020;
                proxy_redirect     default;
        }

        location ~ /.well-known {
                allow all;
        }
}

Das root Verzeichniss dient nur dazu um Letsencrypt die benötigten Dateien erstellen zu lassen und den Zugang zu ermöglichen. Das kann nach belieben angepasst werden. Damit Letsenrypt die Zertifikate erstellen kann, sollte man Gitprep erstmal nur über Port 80 erreichbar machen. Dann kann man mit

letsencrypt certonly --webroot -w /var/www/vhosts/gitprep/ -d YOUR_DOMAIN

 das Zertifikat erstellen lassen. Danach die Konfiguration im Nginx wieder auf 443 umstellen und Nginx neu starten und schon ist euer Gitprep mit eurer Wunschdomain über SSL erreichbar.

über mich
Michael Pfister
Autor: Michael Pfister
Seit mehr als 12 Jahren Webentwickler mit Schwerpunkt PHP, Javascript und CSS Zur Zeit arbeite ich bei T-Systems Schweiz als System Engineer mit dem Schwerpunkt Automatisierung. Und nebenbei fahr ich noch Fahrrad;-)

Zugriffe: 1549
Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies verwenden.
Weitere Informationen Ok