Nativen Git Server unter Linux aufsetzen

Wer sein Git Repository zur gemeinsamen Bearbeitung für Quelltexte benutzen möchte benötigt einen Git Server. Der Git Server ermöglicht die Kollaboration mehrere Entwickler auf der gleichen Codebasis. Die Installation des Git Clients auf einem Linux Server ist zwar ein erster Schritt zur eigenen Serverlösung aber bei weitem nicht ausreichend. Um den Zugriff mehrere Personen auf ein Code Repository zu ermöglichen benötigen wir eine Zugriffsberechtigung. Schließlich soll das Repository öffentlich über das Internet erreichbar sein. Wir möchten über die Benutzerverwaltung verhindern, dass unberechtigte Personen den Inhalt der Repositories lesen und verändern können.

Für den Betrieb eines Git Servers gibt es viele hervorragende und komfortable Lösungen, die man einer nativen Serverlösung vorziehen sollte. Die Administration eines nativen Git Servers erfordert Linux Kenntnisse und wird ausschließlich über die Kommandozeile bewerkstelligt. Lösungen wir beispielsweise der SCM-Manager haben eine grafische Benutzeroberfläche und bringen viele nützliche Werkzeuge zur Administration des Servers mit. Diese Werkzeuge stehen bei einer nativen Installation nicht zur Verfügung.

Wieso sollte man nun Git als nativen Server Installieren? Diese Frage lässt sich recht leicht beantworten. Der Grund ist wenn der Server auf dem das Code Repository bereitgestellt werden soll nur wenige Hardware Ressourcen besitzt. Besonders Arbeitsspeicher ist in diesem Zusammenhang immer ein wenig problematisch. Gerade bei angemieteten Virtuellen Private Servern (VPS) oder einem kleinen RaspberryPI ist das oft der Fall. Wir sehen also es kann durchaus Sinn ergeben einen nativen Git Server betreiben zu wollen.

Als Voraussetzung benötigen wir einen Linux Server auf dem wir den Git Server installieren können. Das kann ein Debian oder Ubuntu Server sein. Wer CentOs oder andere Linux Distributionen verwendet muss anstatt APT zur Softwareinstallation den Paketmanager seiner Distribution nutzen.

Wir beginnen im ersten Schritt mit der Aktualisierung der Pakete und der Installation des Git Clients.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install git
Bash


Als zweiten Schritt erstellen wir einen neuen Benutzer mit dem Namen git und legen für diesen ein eigenes home Verzeichnis an und aktivieren dort den SSH Zugriff.

sudo useradd --create-home --shell /bin/bash git
sudo su - git
cd /home/git/
mkdir .ssh/ && chmod 700 .ssh/
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
Bash


Nun können wir im dritten Schritt in dem neu angelegten home Verzeichnis des git Users unsere Git Repositories erstellen. Diese unterscheiden sich gegenüber dem lokalen Arbeitsbereich darin das diese den Source Code nicht ausgecheckt haben.

mkdir /home/git/repos/project.git
cd /home/git/repos/project.git
git init --bare
Bash


Leider sind wir noch nicht ganz fertig mit unserem Vorhaben. Im vierten Schritt müssen wir die Benutzerberechtigung für das erstellte Repository setzen. Dies geschieht durch das Ablegen des öffentlichen Schlüssels auf dem Git Server für den SSH Zugriff. Dazu kopieren wir den Inhalt aus der Datei unseres privaten Schlüssels in die Datei /home/git/.ssh/authorized_keys in eine eigene Zeile. Möchte man nun vorhandene Nutzern den Zugriff verwehren kommentiert man lediglich mit einem # die zeie des privaten Schlüssels wieder aus.

Wenn alles korrekt durchgeführt wurde erhält man den Zugriff auf das Repository über folgenden Kommandozeilenbefehl: git clone ssh://git@<IP>/~/<repo>

Dabei ist <IP> durch die tatsächliche Server IP zu ersetzen. Für unser Beispiel lautet der korrekte Pfad für <repo> project.git es ist also das von uns erstellte Verzeichnis für das Git repository.

Auf dem nativen Git Server können mehrere Repositories angelegt werden. Dabei gilt zu beachten, dass alle berechtigenden Nutzer auf alle so angelegenen Reposiories lesenden und schreibenden Zugriff haben. Das lässt sich nur dadurch einschränken, dass auf dem Linux Server der unsere Git Repositories bereitstellt mehrere Benutzer auf dem Betriebssystem angelegt werden denen dann die Repositories zugewiesen werden.

Wir sehen das eine native Git Server Installation zwar schnell umgesetzt werden kann, diese aber für die kommerzielle Softwareentwicklung nicht ausreichend ist. Wer gerne Experimentiert kann sich eine virtuelle Maschine erstellen und diesen Workshop darin ausprobieren.

Ruby: die Entwicklungsumgebung einrichten

Setzen Sie in wenigem Minuten eine Ruby Entwicklungsumgebung für die ersten Schritte mit dem Web...

Linux verstehen: die Wiederentdeckung der Freude an Technologie

Es ist an der Zeit wieder die Kontrolle über seine Hardware zu bekommen, denn um...

Tschüß Privatsphäre, Tschüß Freiheit

Je öfter wiederholt werden muss wie gut unsere Meinungsfreiheit ist um so weniger können wir...

Arbeiten mit Textdateien auf der Linux-Shell

Die Kommandozeile ist unter Linux ein mächtiges Werkzeug. In diesem Artiekl lernen Sie verschiedene Helferlein...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert