Wie Sie Ihren eigenen Git-Server betreiben
Lernen Sie in diesem Tutorial aus unserem Archiv, wie Sie Ihren eigenen Git-Server einrichten.
Git ist ein von Linus Torvalds entwickeltes Versionierungssystem, das von Millionen von Anwendern rund um den Globus genutzt wird. Unternehmen wie GitHub bieten Code-Hosting-Dienste an, die auf Git basieren. Berichten zufolge ist GitHub, eine Code-Hosting-Site, der größte Code-Hosting-Dienst der Welt. Das Unternehmen behauptet, dass derzeit 9,2 Millionen Menschen in 21,8 Millionen Repositories auf GitHub zusammenarbeiten. Große Unternehmen wechseln jetzt zu GitHub. Sogar der Suchmaschinengigant Google schließt sein eigenes Google Code und wechselt zu GitHub.
Betreiben Sie Ihren eigenen Git-Server
GitHub ist ein großartiger Dienst, allerdings gibt es einige Einschränkungen und Beschränkungen, besonders wenn Sie eine Einzelperson oder ein kleiner Akteur sind. Eine der Einschränkungen von GitHub ist, dass der kostenlose Dienst kein privates Hosting des Codes erlaubt. Sie müssen eine monatliche Gebühr von $7 bezahlen, um 5 private Repositories zu hosten, und die Kosten steigen mit mehr Repos.
In Fällen wie diesen oder wenn Sie mehr Kontrolle wollen, ist der beste Weg, Git auf Ihrem eigenen Server zu betreiben. Sie sparen nicht nur Kosten, Sie haben auch mehr Kontrolle über Ihren Server. In den meisten Fällen hat ein Großteil der fortgeschrittenen Linux-Benutzer bereits einen eigenen Server, und Git auf diesen Servern laufen zu lassen, ist wie „frei wie Bier“.
In diesem Tutorial werden wir über zwei Methoden sprechen, Ihren Code auf Ihrem eigenen Server zu verwalten. Die eine ist der Betrieb eines bloßen, einfachen Git-Servers und die zweite ist über ein GUI-Tool namens GitLab. Für dieses Tutorial habe ich einen vollständig gepatchten Ubuntu 14.04 LTS-Server verwendet, der auf einem VPS läuft.
Git auf dem Server installieren
In diesem Tutorial betrachten wir einen Anwendungsfall, bei dem wir einen entfernten Server und einen lokalen Server haben und zwischen diesen Maschinen arbeiten. Der Einfachheit halber nennen wir sie remote-server und local-server.
Zunächst installieren Sie Git auf beiden Rechnern. Sie können Git aus den Paketen installieren, die bereits über die Repos oder Ihre Distros verfügbar sind, oder Sie können es manuell tun. In diesem Artikel werden wir die einfachere Methode verwenden:
sudo apt-get install git-core
Dann fügen Sie einen Benutzer für Git hinzu.
sudo useradd gitpasswd git
Um den Zugriff auf den Server zu vereinfachen, richten wir ein passwortloses ssh-Login ein. Erstellen Sie zunächst einen ssh-Schlüssel auf Ihrem lokalen Rechner:
ssh-keygen -t rsa
Sie werden nach dem Speicherort für den Schlüssel gefragt, drücken Sie einfach die Eingabetaste, um den Standardspeicherort zu verwenden. Die zweite Frage ist die nach einer Passphrase, die für den Zugriff auf den Remote-Server benötigt wird. Es werden zwei Schlüssel generiert – ein öffentlicher Schlüssel und ein privater Schlüssel. Notieren Sie sich den Speicherort des öffentlichen Schlüssels, den Sie im nächsten Schritt benötigen.
Nun müssen Sie diese Schlüssel auf den Server kopieren, damit die beiden Rechner miteinander kommunizieren können. Führen Sie den folgenden Befehl auf Ihrem lokalen Rechner aus:
cat ~/.ssh/id_rsa.pub | ssh git@remote-server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Nun melden Sie sich per ssh auf dem Server an und erstellen ein Projektverzeichnis für Git. Sie können den gewünschten Pfad für das Repo verwenden.
git@server:~ $ mkdir -p /home/swapnil/project-1.git
Wechseln Sie dann in dieses Verzeichnis:
cd /home/swapnil/project-1.git
Erstellen Sie dann ein leeres Repo:
git init --bareInitialized empty Git repository in /home/swapnil/project-1.git
Wir müssen nun ein Git Repo auf dem lokalen Rechner erstellen.
mkdir -p /home/swapnil/git/project
Und wechseln Sie in dieses Verzeichnis:
cd /home/swapnil/git/project
Nun erstellen Sie die Dateien, die Sie für das Projekt benötigen, in diesem Verzeichnis. Bleiben Sie in diesem Verzeichnis und starten Sie git:
git init Initialized empty Git repository in /home/swapnil/git/project
Nun fügen Sie Dateien zum Projektarchiv hinzu:
git add .
Jedes Mal, wenn Sie eine Datei hinzufügen oder Änderungen vornehmen, müssen Sie den obigen Befehl add ausführen. Außerdem müssen Sie bei jeder Änderung an einer Datei eine Commit-Nachricht schreiben. Die Commit-Nachricht sagt im Grunde, welche Änderungen vorgenommen wurden.
git commit -m "message" -a message 2 files changed, 2 insertions(+) create mode 100644 GoT.txt create mode 100644 writing.txt
In diesem Fall hatte ich eine Datei namens GoT (Game of Thrones-Review) und ich habe einige Änderungen vorgenommen, also wurde beim Ausführen des Befehls angegeben, dass Änderungen an der Datei vorgenommen wurden. Im obigen Befehl bedeutet die Option „-a“ Commits für alle Dateien im Repo. Wenn Sie Änderungen an nur einer Datei vorgenommen haben, können Sie den Namen dieser Datei angeben, anstatt ‚-a‘ zu verwenden.
Ein Beispiel:
git commit -m "message" GoT.txt message 1 file changed, 1 insertion(+)
Bis jetzt haben wir auf dem lokalen Server gearbeitet. Jetzt müssen wir diese Änderungen auf den Server pushen, damit die Arbeit über das Internet zugänglich ist und Sie mit anderen Teammitgliedern zusammenarbeiten können.
git remote add origin ssh://git@remote-server/repo-<wbr< a="">>path-on-server..git
Jetzt können Sie Änderungen zwischen dem Server und dem lokalen Rechner mit der Option „push“ oder „pull“ übertragen:
git push origin master
Wenn es andere Teammitglieder gibt, die mit dem Projekt arbeiten wollen, müssen sie das Repo auf dem Server auf ihren lokalen Rechner klonen:
git clone git@remote-server:/home/swapnil/project.git
Hier ist /home/swapnil/project.git ist der Projektpfad auf dem entfernten Server, tauschen Sie die Werte für Ihren eigenen Server aus.
Dann wechseln Sie das Verzeichnis auf dem lokalen Rechner (tauschen Sie Projekt mit dem Namen des Projekts auf Ihrem Server aus):
cd /project
Jetzt können sie Dateien bearbeiten, Commit-Änderungen schreiben und diese dann auf den Server schieben:
git commit -m 'corrections in GoT.txt story' -aAnd then push changes:
git push origin master
Ich nehme an, dass dies für einen neuen Benutzer ausreicht, um mit Git auf dem eigenen Server zu beginnen. Wenn Sie nach einigen GUI-Tools suchen, um Änderungen auf lokalen Rechnern zu verwalten, können Sie GUI-Tools wie QGit oder GitK für Linux verwenden.
Verwendung von GitLab
Dies war eine reine Kommandozeilenlösung für Projektbesitzer und Mitarbeiter. Es ist sicherlich nicht so einfach wie die Verwendung von GitHub. Leider ist GitHub zwar der größte Code-Hosting-Dienst der Welt, aber seine eigene Software ist nicht für andere verfügbar. Es ist nicht Open Source, also können Sie sich nicht den Quellcode schnappen und Ihr eigenes GitHub kompilieren. Im Gegensatz zu WordPress oder Drupal können Sie GitHub nicht herunterladen und auf Ihren eigenen Servern laufen lassen.
Wie in der Open-Source-Welt üblich, gibt es unendlich viele Möglichkeiten. GitLab ist ein schickes Projekt, das genau das tut. Es ist ein Open-Source-Projekt, das es Benutzern ermöglicht, ein GitHub-ähnliches Projektmanagementsystem auf ihren eigenen Servern zu betreiben.
Sie können GitLab verwenden, um einen GitHub-ähnlichen Dienst für Ihre Teammitglieder oder Ihr Unternehmen zu betreiben. Sie können GitLab verwenden, um an privaten Projekten zu arbeiten, bevor Sie sie für öffentliche Beiträge freigeben.
GitLab verwendet das traditionelle Open-Source-Geschäftsmodell. Es gibt zwei Produkte: eine kostenlose Open-Source-Software, die Benutzer auf ihren eigenen Servern installieren können, und einen gehosteten Dienst, ähnlich wie GitHub.
Die herunterladbare Version hat zwei Editionen – die kostenlose Community-Edition und die kostenpflichtige Enterprise-Edition. Die Enterprise-Edition basiert auf der Community-Edition, verfügt aber über zusätzliche Funktionen, die sich an Unternehmenskunden richten. Sie ist mehr oder weniger vergleichbar mit dem, was WordPress.org oder WordPress.com anbieten.
Die Community-Edition ist hoch skalierbar und kann 25.000 Benutzer auf einem einzelnen Server oder Cluster unterstützen. Einige der Funktionen von GitLab sind: Git-Repository-Verwaltung, Code-Reviews, Issue Tracking, Activity Feeds und Wikis. Es wird mit GitLab CI für kontinuierliche Integration und Bereitstellung geliefert.
Viele VPS-Anbieter wie Digital Ocean bieten GitLab-Droplets für Benutzer an. Wenn Sie es auf Ihrem eigenen Server betreiben möchten, können Sie es manuell installieren. GitLab bietet ein Omnibus-Paket für verschiedene Betriebssysteme an. Bevor wir GitLab installieren, sollten Sie einen SMTP-E-Mail-Server konfigurieren, damit GitLab bei Bedarf E-Mails verschicken kann. Es wird Postfix empfohlen. Installieren Sie also Postfix auf Ihrem Server:
sudo apt-get install postfix
Bei der Installation von Postfix werden Ihnen einige Fragen gestellt; überspringen Sie diese nicht. Wenn Sie sie übersehen haben, können Sie sie jederzeit mit diesem Befehl neu konfigurieren:
sudo dpkg-reconfigure postfix
Wenn Sie diesen Befehl ausführen, wählen Sie „Internet Site“ und geben Sie die E-Mail-ID für die Domain an, die von Gitlab verwendet werden soll.
In meinem Fall habe ich sie mit:
This e-mail address is being protected from spambots. You need JavaScript enabled to view it
Wählen Sie „Tab“ und erstellen Sie einen Benutzernamen für Postfix. Auf der nächsten Seite werden Sie aufgefordert, ein Ziel für die Mail anzugeben.
Im Rest der Schritte verwenden Sie die Standardoptionen. Sobald Postfix installiert und konfiguriert ist, machen wir mit der Installation von GitLab weiter.
Laden Sie die Pakete mit wget herunter (ersetzen Sie den Download-Link durch die neuesten Pakete von hier):
wget https://downloads-packages.s3.amazonaws.com/ubuntu-14.04/gitlab_7.9.4-omnibus.1-1_amd64.deb
Dann installieren Sie das Paket:
sudo dpkg -i gitlab_7.9.4-omnibus.1-1_amd64.deb
Jetzt ist es Zeit, GitLabs zu konfigurieren und zu starten.
sudo gitlab-ctl reconfigure
Sie müssen nun den Domainnamen in der Konfigurationsdatei konfigurieren, damit Sie auf GitLab zugreifen können. Öffnen Sie die Datei.
nano /etc/gitlab/gitlab.rb
In dieser Datei bearbeiten Sie die ‚external_url‘ und geben Sie die Server-Domäne an. Speichern Sie die Datei und öffnen Sie dann die neu erstellte GitLab-Site in einem Webbrowser.
Standardmäßig wird „root“ als Systemadministrator angelegt und „5iveL!fe“ als Kennwort verwendet. Melden Sie sich bei der GitLab-Site an und ändern Sie das Kennwort.
Nachdem Sie das Kennwort geändert haben, melden Sie sich bei der Site an und beginnen Sie mit der Verwaltung Ihres Projekts.
GitLab ist voll von Funktionen und Optionen. Ich werde mir beliebte Zeilen aus dem Film „Die Matrix“ ausleihen: „Leider kann man niemandem sagen, was GitLab alles kann. Sie müssen es selbst ausprobieren.“