Gogs hinter einem Reverse Proxy betreiben

Gogs ist ein Git-Service welcher eine ähnliche Funktionalität wie der bekannte Dienst GitHub zur Verfügung stellt. Standardmäßig läuft der Dienst auf dem Port 3000. Möchte man ihn über die normalen Ports für HTTP (80) bzw. HTTPS (443) erreichbar machen, kann man hierfür einen Reverse Proxy nutzen. Dafür eignen würde sich zum Beispiel Nginx, der im ersten Schritt auf dem Server installiert werden muss:

apt-get install nginx

Anschließend wird die Konfiguration angelegt:

nano /etc/nginx/sites-available/example

In diesem Fall befasst sich die Konfiguration mit der verschlüsselten Kommunikation per HTTPS und der Weiterleitung von unverschlüsselten Verbindung in Richtung der verschlüsselten Verbindung.

server {
        listen 80;
        listen [::]:80;

        server_name example.com;

        return 301 https://$host$request_uri$is_args$args;
}

server {
    listen 443;
    listen [::]:443 default_server;

    ssl on;
    ssl_certificate        /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key    /etc/letsencrypt/live/example.com/privkey.pem;

    server_name example.com;

    client_max_body_size 500m;

    location / {
        proxy_pass https://localhost:3000;
    }
}

Nachdem die Konfiguration für Nginx hinterlegt ist, wird die Standardkonfiguration entfernt und ein symbolischer Link für die neue Konfiguration erstellt. Anschließend wird Nginx neugestartet, damit die geänderte Konfiguration wirksam wird:

rm /etc/nginx/sites-enabled/default
ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/example
service nginx restart

Nach der Anpassung der Nginx-Konfiguration, muss die app.ini (sie befindet sich im gogs/custom/conf/ Ordner) von Gogs angepasst werden und dort die neue ROOT_URL ohne zusätzlichen Port angegeben werden. Anschließend kann auf Wunsch, per Firewall, der Port 3000 für Zugriffe von außen gesperrt werden.

Aktivieren Sie JavaScript um das Video zu sehen.
Video-Link: https://seeseekey.net/archive/118039

4 Kommentare » Schreibe einen Kommentar

  1. Hey!
    Check mal gitea.io, was einige Features mehr hat und seit Januar als Fork von Gogs von der Community gebaut wird.
    Disclaimer: Ich bin einer der Maintainer.

    • Als langer Gogs-Nutzer kann ich mich der Gitea-Empfehlung nur anschliessen. Im Gegensatz zu Gogs ist Gitea ein lebendiges Projekt mit einer Vision dahinter. Freut mich total, wie es da vorangeht.

      Disclaimer: Gogs-Contributor

      • Könntet ihr eure Erfahrungen Pro und Contra etwas genauer beschreiben? Würde mich stark interessieren.

        • Der Gogs-Entwickler lässt keine ernsthafte Beteiligung zu und ist öfter mal für mehrere Monate am Stück gar nicht erreichbar. Er akzeptiert zwar Pull-Requests, entscheidet aber völlig allein, was mit Gogs passiert und ist absolut ungewillt auch nur mindestens eine zweite Person als Maintainer einzusetzen.

          Diese Probleme wurden bei Gitea angegangen. Zudem sind die Aktiven bei Gitea die gleichen, die vorher bei Gogs die hauptsächlichen Commiter waren (neben Unknwon).

          Unknwon kümmert sich bei Gogs allein um die Issues, bei Gitea ist es ein ganzes Team. Probleme werden viel schneller behoben. Ausserdem gibts bei Gitea direkt einsetzbare daily-builds.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.