Seit GitHub von Microsoft übernommen wurde, haben einige Entwickler geplant, ihre eigenen Code-Repositorys von github.com auf eine alternative selbst gehostete Lösung zu migrieren. GitLab Community Edition (CE) ist die häufigste Wahl.
Als hochentwickelte und flexible Lösung kann GitLab CE mit verschiedenen Methoden bereitgestellt werden. Hier wird jedoch nur die offiziell empfohlene Methode, die Installation des Omnibus-Pakets, behandelt.
Voraussetzungen
- Eine neue Vultr Debian 9 x64-Serverinstanz mit mindestens 4 GB Speicher. 8 GB oder mehr werden empfohlen, um bis zu 100 Benutzer zu bedienen. Angenommen, die IPv4-Adresse lautet
203.0.113.1.
- Ein Sudo-Benutzer .
- Eine Domain
gitlab.example.com, die auf die oben erwähnte Instanz verweist.
Hinweis: Wenn Sie auf Ihrer eigenen Serverinstanz bereitstellen, müssen Sie alle Beispielwerte durch tatsächliche Werte ersetzen.
Starten Sie ein SSH-Terminal und melden Sie sich als Sudo-Benutzer bei Ihrer Debian 9 x64-Serverinstanz an.
Fügen Sie eine Swap-Partition hinzu und optimieren Sie die Swappiness-Einstellung
Bei der Bereitstellung von GitLab CE 11.x auf einem Computer mit 4 GB Arbeitsspeicher muss eine 4-GB-Swap-Partition eingerichtet werden, um einen reibungslosen Betrieb zu gewährleisten.
sudo dd if=/dev/zero of=/swapfile count=4096 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -m
Hinweis: Wenn Sie eine andere Servergröße verwenden, kann die Größe der Auslagerungspartition variieren.
Für die Systemleistung Zwecke wird empfohlen , wie die Kernel-swappiness Einstellung auf einen niedrigen Wert zu konfigurieren 10:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
cat /proc/sys/vm/swappiness
Die Ausgabe des catBefehls wird sein 10.
Richten Sie den Hostnamen und den vollqualifizierten Domänennamen (FQDN) des Computers ein.
Verwenden Sie die folgenden Befehle, um einen Hostnamen gitlabund einen vollqualifizierten Domänennamen gitlab.example.comfür den Computer einzurichten :
sudo hostnamectl set-hostname gitlab
sudo sed -i "1 i\203.0.113.1 gitlab.example.com gitlab" /etc/hosts
Sie können die Ergebnisse bestätigen:
hostname
hostname -f
Richten Sie Firewall-Regeln ein
Richten Sie angemessene Firewall-Regeln für die Ausführung einer Website ein:
sudo iptables -F
sudo iptables -X
sudo iptables -Z
sudo iptables -A INPUT -s $(echo $(w -h ${USER}) | cut -d " " -f3) -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -d 127.0.0.0/8 -j REJECT
sudo iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
sudo iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
sudo iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD DROP
Alle oben genannten Einstellungen werden sofort wirksam. Verwenden Sie den folgenden Befehl, um sie zur Überprüfung aufzulisten:
sudo iptables -L -n
Verwenden Sie das iptable-persistentTool, um alle vorhandenen iptables-Regeln in einer Datei zu speichern /etc/iptables/rules.v4und alle iptables-Regeln dauerhaft zu machen:
sudo apt install -y iptables-persistent
Während der Installation werden Sie gefragt, ob Sie die aktuellen IPv4 / IPv6-Regeln speichern möchten. Drücken Sie ENTERzweimal, um die aktuellen IPv4- und IPv6-Regeln in /etc/iptables/rules.v4und zu speichern /etc/iptables/rules.v6.
Wenn Sie versuchen, die IPv4-Regeln später zu aktualisieren, verwenden Sie Folgendes, um Ihr Update zu speichern:
sudo bash -c 'iptables-save > /etc/iptables/rules.v4'
Aktualisieren Sie das System
sudo apt update
sudo apt upgrade -y && sudo shutdown -r now
Wenn das System wieder betriebsbereit ist, melden Sie sich erneut als derselbe Sudo-Benutzer an, um fortzufahren.
Schritt 2: Installieren Sie die erforderlichen Abhängigkeiten
Vor der Installation von GitLab CE müssen Sie die erforderlichen Abhängigkeiten installieren:
sudo apt install -y curl openssh-server ca-certificates
Wenn Sie Postfix zum Senden von Benachrichtigungsnachrichten verwenden möchten, müssen Sie Postfix installieren:
sudo apt install -y postfix
Während der Installation wird möglicherweise ein Konfigurationsbildschirm angezeigt:
- Drücken Sie TABdie markieren
<OK>Taste auf dem ersten Bildschirm, und drücken Sie dann ENTER.
- Wählen Sie
Internet Siteund drücken Sie ENTER.
mail nameGeben Sie für das Feld den FQDN Ihres Servers ein gitlab.example.comund drücken Sie ENTER.
- Wenn andere Bildschirme angezeigt werden, drücken Sie ENTER, um die Standardeinstellungen zu übernehmen.
Starten und aktivieren Sie den Postfix-Dienst:
sudo systemctl enable postfix.service
sudo systemctl start postfix.service
Ändern Sie die Firewall-Regeln für Postfix:
sudo iptables -A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 143 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 993 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 995 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo bash -c 'iptables-save > /etc/iptables/rules.v4'
Nachdem Sie Postfix installiert haben, müssen Sie Postfix konfigurieren, indem Sie die Hauptkonfigurationsdatei /etc/postfix/main.cfgemäß Ihren tatsächlichen Servereinstellungen bearbeiten .
Hinweis: Zusätzlich zu den obigen Anweisungen müssen Sie ein Support-Ticket senden, um den Standardblock von Vultr an SMTP-Port 25 abzubrechen.
Wenn Sie alternativ eine andere Messaging-Lösung verwenden möchten, überspringen Sie einfach die Installation von Postfix und wählen Sie nach der Installation von GitLab CE die Verwendung eines externen SMTP-Servers.
Schritt 3: Richten Sie das GitLab APT-Repo ein und installieren Sie GitLab CE
Richten Sie das GitLab CE APT-Repository auf Ihrem System ein:
cd
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
Installieren Sie als Nächstes GitLab CE 11.x:
sudo EXTERNAL_URL="http://gitlab.example.com" apt install -y gitlab-ce
Die Installation kann eine Weile dauern.
Zeigen Sie abschließend auf Ihren bevorzugten Webbrowser http://gitlab.example.comund senden Sie ein neues Kennwort, um die Installation abzuschließen.
Verwenden Sie von nun an die folgenden Anmeldeinformationen, um sich als Administrator anzumelden:
- Nutzername:
root
- Passwort:
<your-new-password>
Schritt 4: Aktivieren Sie den HTTPS-Zugriff, indem Sie ein Let's Encrypt SSL-Zertifikat integrieren
Derzeit haben Sie GitLab CE 11.x erfolgreich auf Ihrer Serverinstanz installiert, und Benutzer können die Site bereits über das HTTP-Protokoll besuchen. Aus Sicherheitsgründen wird empfohlen, den HTTPS-Zugriff auf Ihren GitLab-Server durch Integration eines Let's Encrypt SSL-Zertifikats zu aktivieren.
Verwenden Sie den viEditor, um die GitLab CE-Konfigurationsdatei zu öffnen:
sudo vi /etc/gitlab/gitlab.rb
Suchen Sie die folgenden zwei Zeilen:
external_url 'http://gitlab.example.com'
# letsencrypt['contact_emails'] = [] # This should be an array of email addresses to add as contacts
Ersetzen Sie sie entsprechend:
external_url 'https://gitlab.example.com'
letsencrypt['contact_emails'] = ['[email protected]']
Speichern und Beenden:
:wq!
Konfigurieren Sie GitLab CE mit den aktualisierten Einstellungen neu:
sudo gitlab-ctl reconfigure
Die Neukonfiguration kann eine Weile dauern.
Nach Abschluss der Neukonfiguration müssen alle Benutzer beim Zugriff auf die GitLab-Site das HTTPS-Protokoll verwenden.
Hinweis: Nach dem Wechsel von HTTP zu HTTPS können ältere Cookies einen GitLab 422-Fehler verursachen. Das Löschen von Cookies behebt dieses Problem.