Anonim

Warum Gitlab?

Schnellzugriff

  • Warum Gitlab?
  • Konfiguration
  • Abhängigkeiten installieren
  • Installieren Sie Gitlab
  • Führen Sie das Setup aus
  • Ersteinrichtung
  • SSH einrichten
    • Für reguläres SSH
  • Konfigurieren Sie UFW
  • Schlussgedanken

Es gibt viele großartige Optionen zum Hosten Ihrer Projekte und zum Teilen Ihres Codes. Sie können jetzt kostenlos ein Github-Konto einrichten. Warum sollten Sie sich also die Mühe machen, Gitlab selbst einzurichten?

Es gibt ein paar gute Argumente dafür, nicht zuletzt die Privatsphäre. Gitlab gehört dir. Sie hosten es und Sie besitzen es. So können Sie steuern, wer Zugriff auf Ihre Repositorys hat. Das bedeutet auch, dass Sie die Kontrolle über die Plattform selbst haben. Sie unterliegen keinen Unternehmensrichtlinien, willkürlichen Änderungen der Preise oder der Datenerfassung.

Selbst gehostete Versionskontrolle bedeutet auch, dass Sie nicht auf einen Dienst angewiesen sind, um auf Ihren Code zuzugreifen. Sicher, die Chancen, dass Github oder ein ähnlicher Dienst aufgrund eines Ausfalls nicht verfügbar ist, sind gering, aber möchten Sie lieber, dass dies überhaupt keine Möglichkeit ist?

Gitlab ist auch sehr einfach einzurichten und erfordert lediglich einen Linux-Server, auf dem die Open-Source-Gitlab-Software ausgeführt wird. Die meisten davon sind vorkonfiguriert und können ausgeführt werden.

Konfiguration

Bevor Sie beginnen, müssen Sie ein VPS einrichten, um Gitlab zu hosten, es sei denn, Sie planen, es lokal zu hosten. Hosting-Unternehmen wie DigitalOcean und Linode bieten kostengünstige Optionen, mit denen Sie Ihren Server in Betrieb nehmen können.

Es ist auch eine gute Idee, einen Domainnamen für Ihren Server zu kaufen. Sie können auch eine Unterdomäne eines vorhandenen Domainnamens auf Ihrem Gitlab-Server angeben. In beiden Fällen wird der Zugriff auf die Weboberfläche erleichtert.

Diese Anleitung folgt Ubuntu 16.04 LTS. Es ist die neueste Langzeit-Support-Version von Ubuntu und es ist sehr einfach damit zu arbeiten. Debian Stretch (Stable) wäre auch eine großartige Option, und die meisten dieser Anleitung werden auch damit funktionieren. Sowohl DigitalOcean als auch Linode richten Ihren Server mit dem Betriebssystem Ihrer Wahl ein, sodass Ubuntu nicht installiert werden muss.

Abhängigkeiten installieren

Wenn Sie Ubuntu zum ersten Mal starten, sollten Sie das System aktualisieren, um sicherzustellen, dass keine Sicherheitskorrekturen verfügbar sind. Mach das zuerst.

$ sudo apt update Upgrade von $ sudo apt

Nachdem das Update abgeschlossen ist, müssen Sie einige Dinge installieren, damit Gitlab gestartet werden kann. Verwenden Sie apt, um diese ebenfalls zu installieren.

$ sudo apt install locken openssh-server ca-Zertifikate postfix

Das ist es. Sie können das Gitlab-Installationsskript ausführen.

Installieren Sie Gitlab

Gitlab unterhält ein eigenes Debian / Ubuntu-Repository. Laden Sie das vom Gitlab-Team bereitgestellte Installationsskript herunter und führen Sie es aus, um das Repository auf Ihrem Server zu aktivieren.

$ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

Das sieht vielleicht viel aus, aber es lädt nur das Skript herunter und weist die Kommandozeilen-Shell an, es auszuführen. Das Skript benötigt einige Sekunden, um das Repository zu durchlaufen und einzurichten. Danach können Sie das Gitlab-Paket installieren.

$ sudo apt install gitlab-ce

Diese Installation dauert einige Minuten. Gitlab wird in einem großen Paket mit dem Namen "Omnibus-Paket" geliefert. Es enthält alles, was Gitlab benötigt, und alles zusammen.

Führen Sie das Setup aus

Es gibt ein Setup-Skript, das Sie ausführen müssen, damit Gitlab konfiguriert werden kann. Es ist in dem Paket enthalten, das Sie gerade installiert haben, sodass Sie es jetzt ausführen können.

$ sudo gitlab-ctl neu konfigurieren

Das Skript benötigt einige Minuten, um alles zu durchlaufen. Meist wird das Datenbank-Backend für Gitlab eingerichtet. Auf dem Bildschirm werden viele Ruby on Rails-Migrationen ausgeführt. Es kann eine Weile dauern, aber wenn es fertig ist, ist Gitlab einsatzbereit.

Ersteinrichtung

Öffnen Sie Ihren Webbrowser und navigieren Sie zu Ihrem Gitlab-Server. Sie werden von einer Seite begrüßt, auf der Sie aufgefordert werden, ein Administratorkennwort einzurichten. Dies ist natürlich das Passwort für Ihr Administratorkonto. Standardmäßig lautet der Kontoname "root".

Nachdem dieses Konto eingerichtet wurde, können Sie sich entweder anmelden oder ein reguläres Benutzerkonto registrieren und sich anmelden. Sobald Sie sich angemeldet haben, haben Sie Zugriff auf das gesamte Gitlab-Dashboard, um Repositorys zu erstellen und zu verwalten.

SSH einrichten

Sie möchten keine Änderungen an Ihren Projekten mit Kennwörtern vornehmen müssen. Es ist ein Schmerz, und es ist nicht sehr sicher. Das Beste, was Sie tun können, ist, ein SSH zu erstellen, um sich automatisch von jedem Computer mit installiertem Schlüssel anzumelden.

SSH-Schlüssel können auf Linux und Mac sehr einfach erstellt werden. Unter Windows 10 sollte der Vorgang über die verfügbare OpenSSH-App identisch sein.

Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus, um Ihren Schlüssel zu erstellen. Sie können den -C '' - Teil weglassen, wenn Sie nur die Anmeldeinformationen Ihres Computers verwenden möchten. Andernfalls ist eine E-Mail-Adresse normalerweise der richtige Anruf.

$ ssh-keygen -b 4096 -t rsa -C ''

Der Prozess führt Sie durch ein paar Schritte. Die Standardeinstellungen sind meistens gut und alles ist ziemlich selbsterklärend. Wenn Sie Ihrem Schlüssel ein Kennwort zuordnen möchten, benötigen Sie dieses Kennwort jedes Mal, wenn Sie sich anmelden oder eine Änderung vornehmen. Sie können das Kennwort leer lassen, um kein Kennwort zu verwenden.

Führen Sie den folgenden Befehl aus, um Ihren Schlüssel anzuzeigen. Es wird wie ein Haufen Unsinn aussehen, und im Grunde ist es das, aber das ist dein Schlüssel. Sie müssen es aus dem Terminal kopieren und in Gitlab einfügen.

$ cat ~ / .ssh / id_rsa.pub

Klicken Sie in Gitlab oben rechts auf das Profilsymbol. Klicken Sie dann im daraufhin angezeigten Menü auf "Einstellungen". Klicken Sie im Menü links auf der Seite auf "SSH-Schlüssel".

Kopieren Sie den Schlüssel von Ihrem Terminal. Beginnen Sie nach "ssh-rsa" und hören Sie vor Ihrer E-Mail-Adresse auf. Also kopieren Sie einfach den Unsinn-Teil. Fügen Sie es in das große Feld mit der Bezeichnung "Schlüssel" ein. Geben Sie Ihrem Schlüssel einen Namen und speichern Sie ihn. Ab diesem Zeitpunkt können Sie Ihren Code in Ihre Repositorys verschieben, ohne sich anzumelden.

Für reguläres SSH

Sie haben bereits einen SSH-Schlüssel. Sie können es auch für SSH verwenden. OpenSSH verfügt über ein integriertes Dienstprogramm, mit dem Sie den Schlüssel an Ihren Server senden können.

$ ssh-copy-id -i ~ / .ssh / id_rsa.pub _IP

Ersetzen Sie server_username und SERVER_IP durch Ihren Benutzernamen auf dem Server und die IP-Adresse des Servers.

Versuchen Sie, sich mit dem neuen Schlüssel wieder bei Ihrem Server anzumelden.

$ ssh _IP

Sie sollten sofort eine Verbindung herstellen, ohne ein Kennwort eingeben zu müssen.

Es ist besser, auch den Rest von SSH zu sperren. Es ist wahrscheinlich einer der schwächsten Punkte in einem öffentlich zugänglichen Server. Öffnen Sie / etc / ssh / sshd_confg im Texteditor Ihrer Wahl auf dem Server.

Es gibt ein paar Dinge, die Sie ändern müssen. Suchen Sie zuerst PermitRootLogin und setzen Sie es auf no.

PermitRootLogin Nr

Suchen Sie als Nächstes PasswordAuthentication, entfernen Sie das Kommentarzeichen und setzen Sie es auf no.

PasswordAuthentication no

Stellen Sie dann sicher, dass die folgenden beiden Zeilen auf no gesetzt sind. Sie sollten standardmäßig auf Ubuntu installiert sein, es ist jedoch besser, dies zu überprüfen.

PermitEmptyPasswords no HostbasedAuthentication no

Suchen Sie schließlich UsePAM unten in der Konfiguration und setzen Sie es auf no too.

UsePAM-Nr

Speichern und beenden Sie Ihre Konfiguration. Starten Sie dann den SSH-Dienst neu.

$ sudo systemctl starte sshd neu

Konfigurieren Sie UFW

Die letzte Sicherheitsmaßnahme, die Sie wahrscheinlich ergreifen möchten, ist das Installieren und Einrichten einer Firewall. Ubuntu funktioniert sehr gut mit der treffend benannten unkomplizierten Firewall (UFW). Es ist nur ein Wrapper um die iptables-Kernel-Firewall, aber es erleichtert die Arbeit mit der Firewall erheblich. Fahren Sie fort und installieren Sie es.

$ sudo apt install ufw

Nachdem Sie ufw installiert haben, legen Sie zunächst die Standardregeln fest, nach denen alles abgelehnt wird.

$ sudo ufw Standard verweigern eingehende $ sudo ufw Standard verweigern ausgehende $ sudo ufw Standard verweigern vorwärts

Richten Sie als Nächstes Ihre Regeln ein, um die Basisdienste, einschließlich Git, zuzulassen. Die Kommentare sind nur zur Information da. Versuchen Sie nicht, sie auszuführen.

# SSH $ sudo ufw erlauben in ssh $ sudo ufw erlauben aus ssh # HTTP und HTTPS für Web $ sudo ufw erlauben in http $ sudo ufw erlauben aus http $ sudo ufw erlauben in https $ sudo ufw erlauben aus https # NTP um die Zeit zu halten korrekt $ sudo ufw erlauben in ntp $ sudo ufw erlauben aus ntp # Port 53 für DNS-Domainauflösung $ sudo ufw erlauben in 53 $ sudo ufw erlauben aus 53 # Sie werden wahrscheinlich nicht benötigt # Wenn Ihr Server DHCP verwendet, entsperren Sie 67 $ sudo ufw erlauben in 67 $ sudo ufw erlauben aus 67 # Schließlich Git $ sudo ufw erlauben in 9418 $ sudo ufw allo aus 9418

Stellen Sie sicher, dass alles in Ordnung ist, und aktivieren Sie die Firewall

$ sudo ufw enable

Sie können den Status Ihrer Firewall folgendermaßen überprüfen:

$ sudo ufw status

Das ist es! Ihr Gitlab-Server befindet sich hinter einer Firewall.

Schlussgedanken

Inzwischen haben Sie einen funktionierenden Gitlab-Server. Sie können Benutzerkonten und Projekte über die Gitlab-Oberfläche einrichten. Gitlab ist jetzt ein reguläres Ubuntu-Paket, daher wird es regelmäßig mit apt aktualisiert, wenn Sie Ihr System auf dem neuesten Stand halten.

Gitlab bietet Ihnen die Flexibilität, die Sie benötigen, um Ihre eigenen Projekte und größere Projekte zu verwalten, an denen Sie möglicherweise mit einem Team arbeiten. Es ist eine voll funktionsfähige und robuste Plattform, auf die sich immer mehr Teams verlassen.

Hosten Sie Ihre eigenen Softwareprojekte mit gitlab