Git ist ein Open-Source-Versionskontrollsystem, das von Tausenden von Entwicklern auf der ganzen Welt verwendet wird. Es wird verwendet, um Ihre Softwareänderungen auf Quellebene zu verfolgen. Es ermöglicht Ihnen, Änderungen zu verfolgen, es auf vorherige Stadien zurückzusetzen und eine alternative Version von Dateien und Verzeichnissen zu erstellen.
HTTP Git Server ist ein Open-Source-Projekt, das einen Nginx-Webserver verwendet, um Git-Repositories über Ihr Local Area Network (LAN) bereitzustellen. Es ist sehr einfach und leicht einzurichten. Jeder kann es über die Befehlszeilenschnittstelle verwalten.
In diesem Tutorial werde ich erklären, wie man einen HTTP-Git-Repository-Server mit Nginx unter Debian 11 einrichtet.
Voraussetzungen
- Ein Server mit Debian 11.
- Ein gültiger Domainname, auf den Ihre Server-IP verweist.
- Auf Ihrem Server ist ein Root-Passwort konfiguriert.
Installieren Sie Nginx und andere Abhängigkeiten
Zuerst müssen Sie den Nginx-Webserver und andere erforderliche Pakete installieren, um einen HTTP-Git-Server einzurichten. Sie können alle mit dem folgenden Befehl installieren:
apt-get install nginx git fcgiwrap apache2-utils unzip -y
Sobald alle Pakete installiert sind, können Sie mit dem nächsten Schritt fortfahren.
Ein Git-Repository erstellen
Als nächstes müssen Sie ein Verzeichnis erstellen, um das Git-Repository zu speichern. Lassen Sie uns ein Verzeichnis namens myrepo erstellen im Nginx-Webstammverzeichnis:
mkdir /var/www/html/myrepo
Als nächstes ändern Sie das Verzeichnis in myrepo und erstellen Sie ein weiteres Verzeichnis für Benutzer:
cd /var/www/html/myrepo
mkdir user1.git
Navigieren Sie als Nächstes zum Benutzerverzeichnis und initialisieren Sie das Git-Repository mit dem folgenden Befehl:
cd user1.git
git --bare init
Sie erhalten die folgende Ausgabe:
Initialisiertes leeres Git-Repository in /var/www/html/myrepo/user1.git/
Aktualisieren Sie als Nächstes die Git-Serverinformationen mit dem folgenden Befehl:
git update-server-info
Ändern Sie als Nächstes den Besitz von myrepo und legen Sie die richtige Berechtigung mit dem folgenden Befehl fest:
chown -R www-data:www-data /var/www/html/myrepo
chmod -R 755 /var/www/html/myrepo
Erstellen Sie als Nächstes einen Benutzer namens user1 und legen Sie ein Passwort fest:
htpasswd -c /var/www/html/myrepo/htpasswd user1
Sie können das Passwort wie folgt festlegen:
Neues Passwort:Neues Passwort erneut eingeben:Passwort für Benutzer user1 wird hinzugefügt
Sie können Ihr Passwort mit dem folgenden Befehl überprüfen:
cat /var/www/html/myrepo/htpasswd
Beispielausgabe:
user1:$apr1$LoyCEkzA$Fjq5nBbLhBRdaxCQBBUQd1
Nginx so konfigurieren, dass es das Git-Repository bedient
Als Nächstes müssen Sie eine Konfigurationsdatei für den virtuellen Nginx-Host erstellen, um das Git-Repository bereitzustellen.
nano /etc/nginx/conf.d/git.conf
Fügen Sie die folgenden Zeilen hinzu:
server {listen 80; root /var/www/html/myrepo; # index.php zur Liste hinzufügen, wenn Sie PHP verwenden index index.html index.htm index.nginx-debian.html; server_name git.ihredomain.com; location / { # Zuerst versuchen, die Anfrage als Datei zu liefern, # dann als Verzeichnis, dann auf die Anzeige von 404 zurückfallen. try_files $uri $uri/ =404; } Standort ~ (/.*) { client_max_body_size 0; auth_basic "Git-Anmeldung"; auth_basic_user_file "/var/www/html/myrepo/htpasswd"; schließen Sie /etc/nginx/fastcgi_params ein; fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; fastcgi_param GIT_HTTP_EXPORT_ALL ""; fastcgi_param GIT_PROJECT_ROOT /var/www/html/myrepo; fastcgi_param REMOTE_USER $remote_user; fastcgi_param PATH_INFO $1; fastcgi_pass unix:/var/run/fcgiwrap.socket;}}
Speichern und schließen Sie die Datei, wenn Sie fertig sind, und überprüfen Sie dann Nginx auf Syntaxfehler:
nginx -t
Sie erhalten die folgende Ausgabe:
nginx:Die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist oknginx:Der Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreich
Starten Sie abschließend den Nginx-Dienst neu, um die Änderungen zu übernehmen:
systemctl startet nginx neu
Sie können den Nginx-Status auch mit dem folgenden Befehl überprüfen:
systemctl status nginx
Sie erhalten die folgende Ausgabe:
Verbindung zum Git-Repository vom Client herstellen
An dieser Stelle wird der Git-HTTP-Server mit Nginx eingerichtet. Jetzt ist es an der Zeit, es vom Client-Rechner aus zu verbinden und zu testen.
Installieren Sie zuerst das Git-Paket auf dem Client-Rechner mit dem folgenden Befehl:
apt-get install git -y
Erstellen Sie als Nächstes mit dem folgenden Befehl ein Verzeichnis für Ihr Projekt:
mkdir-Projekt
Navigieren Sie als Nächstes zu Ihrem Projektverzeichnis und initialisieren Sie Git mit dem folgenden Befehl:
CD-Projekt
git init
Konfigurieren Sie als Nächstes Git mit Ihrer E-Mail-Adresse und Ihrem Benutzernamen:
git config --global user.email "[email protected]"
git config --global user.name "user1"
Fügen Sie als Nächstes Ihren Git-HTTP-Server mit dem folgenden Befehl hinzu:
git remote add origin http://[email protected]/user1.git
Als nächstes erstellen Sie ein Verzeichnis namens dev01 und fügen darin eine Datei hinzu:
mkdir dev01
echo "Dies ist meine erste Anwendung"> dev01/file1
Als nächstes fügen Sie Ihr erstelltes Verzeichnis und Ihre Datei zum Git-Repository hinzu:
git hinzufügen .
Übernehmen Sie als Nächstes die Änderungen mit dem folgenden Befehl:
git commit -a -m "Dateien und Verzeichnisse hinzufügen"
Sie erhalten die folgende Ausgabe:
[master (root-commit) 0299d83] Dateien und Verzeichnisse hinzufügen 1 Datei geändert, 1 Einfügung (+) Erstellungsmodus 100644 dev01/Datei1
Laden Sie als Nächstes Ihre Datei und Ihr Verzeichnis mit dem folgenden Befehl auf den HTTP-Git-Server hoch:
git push origin master
Sie werden aufgefordert, Ihr Passwort für den Zugriff auf den Git-Server anzugeben:
Passwort für „http://[email protected]“:
Sobald Sie verbunden sind, erhalten Sie die folgende Ausgabe:
Zählen von Objekten:4, fertig. Schreiben von Objekten:100 % (4/4), 281 Bytes | 281,00 KiB/s, fertig. Gesamt 4 (Delta 0), wiederverwendet 0 (Delta 0) Zu http://git.yourdomain.com/user1.git * [neuer Zweig] master -> master
Sie können Ihr Repository auch direkt vom Git-Server mit dem folgenden Befehl herunterladen:
git-Klon http://[email protected]domain.com/user1.git
Sie erhalten die folgende Ausgabe:
Klonen in 'user1'...Passwort für 'http://[email protected]':remote:Aufzählung von Objekten:4, done.remote:Zählung von Objekten:100 % (4/4), done.remote:Gesamt 4 (Delta 0), wiederverwendet 0 (Delta 0), packen-wiederverwendet 0Objekte entpacken:100 % (4/4), fertig.
Schlussfolgerung
In der obigen Anleitung haben Sie gelernt, wie Sie einen HTTP-Git-Server mit Nginx unter Debian 11 einrichten. Sie können dieses Setup jetzt in Ihrer lokalen Entwicklungsumgebung implementieren und Ihr Projekt über die Befehlszeile verwalten und verfolgen.