Instalace GitLabu v Debianu 9 (SSH) s reverzní proxy serverem NGINX

Procédure

Potřebujete ke správě svých projektů Gitlab? Vytvořte si vlastní instanci GitLabu na svém VPS podle tohoto návodu.

Git je dobrý. Gitlab je lepší. Gitlab je open-source správce úložišť Git. Vyvinula jej společnost GitLab Inc. a nabízí intuitivní grafické rozhraní pro správu různých projektů při zachování kompatibility se systémem Git. Můžete vytvářet požadavky na funkce, sledovat chyby atd. v týmu a prostřednictvím webového prohlížeče.

Gitlab je k dispozici v několika verzích, placených i bezplatných. V následujícím návodu nainstalujeme GitLab Community Edition (Gitlab CE), bezplatnou verzi Gitlabu s otevřeným zdrojovým kódem.

Předpoklady

Chcete-li používat GitLab, potřebujete alespoň :

  • 2 jádra vCore
  • 4 GB paměti RAM

VPS M z řady LWS Starter bude ideální pro několik projektů Gitlab, ale pokud máte několik spolupracovníků a/nebo několik projektů k dokončení, doporučujeme vzít si VPS L nebo některý z VPS z řady Pro.

Pro tento návod budeme uvažovat o zcela prázdném operačním systému z obrazu systému Debian 9 + SSH nabízeného na panelu LWS. Zde jsou odkazy na další návody pro jiné operační systémy:

Pokud chcete změnit operační systém na svém VPS, zde je odkaz na dokumentaci nápovědy: Jak změním operační systém na svém VPS?

Všimněte si, že tento návod je založen na VIRGIN instalaci Debianu 9. Pokud jste na něm již něco nainstalovali, nemůžeme zaručit, že bude návod účinný a/nebo že budou po instalaci dostupné všechny vaše další služby.

Nezapomeňte povolit port SSH na firewallu VPS, abyste se mohli připojit jako root ke konzoli SSH.

Shrnutí návodu

Zde jsou uvedeny kroky, které budou popsány v tomto výukovém kurzu:

  1. Aktualizace operačního systému
  2. Instalace systému Gitlab CE
  3. Nastavení reverzního proxy serveru NGINX před aplikací Gitlab
  4. Instalace certifikátu Let's Encrypt SSL na reverzní proxy server NGINX

Krok 1: aktualizace operačního systému

Před instalací čehokoli doporučujeme aktualizovat seznam balíčků a balíčky samotné.

V konzole SSH napište následující příkazy:

apt-get update
apt-get upgrade -y
apt-get dist-upgrade -y

Krok 2: Instalace systému Gitlab CE

Nejprve nainstalujeme potřebné závislosti:

apt-get install -y curl openssh-server ca-certificates

Poté přidejte úložiště Gitlab do svého VPS:

Proveďte následující kroky: curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | bash

Nyní nainstalujme Gitlab:

EXTERNAL_URL="http://vpsXXXXX.lws-hosting.com" apt-get install gitlab-ee

Instalace trvá několik minut, takže si při čekání můžete dát kávu.

Tip: pokud máte nestabilní připojení k internetu, můžete v případě neočekávaného přerušení připojení použít obrazovku pro opětovné připojení k odpojitelné konzoli. Dokumentace k použití obrazovky.

Po dokončení instalace přejděte na stránku http://vpsXXXXX.lws-hosting.com a nakonfigurujte Gitlab.

Tip: Pokud se zobrazí chyba 502, zkuste restartovat systém Gitlab příkazem gitlab-ctl restart a poté počkejte 5 minut, než to zkusíte znovu(Ctrl+F5).

Pokud vše proběhne podle plánu, budete přesměrováni na stránku pro vytvoření hesla Gitlab.

Instalace GitLabu v Debianu 9 (SSH) s reverzní proxy serverem NGINX

Zadejte poměrně složité heslo. Můžete si také vygenerovat náhodné heslo.

Jakmile je to hotovo, můžete se připojit ke službě Gitlab s uživatelem root a zadaným heslem.

Instalace reverzního proxy serveru NGINX

Nyní se chystáme nastavit reverzní proxy server NGINX. To vám v budoucnu umožní hostovat další weby a aplikace, zejména pokud jste se rozhodli pro server VPS Cloud Pro S nebo vyšší.

Prvním krokem je přesunutí služby Gitlab na nepoužívaný port. Pro tento návod použijeme port 6080 (vybraný náhodně).

Tip: seznam již používaných portů můžete zjistit pomocí příkazu netstat -tunap | grep LISTEN

Za tímto účelem upravte soubor /etc/gitlab/gitlab.rb pomocí nano (nebo vim či jiného editoru):

nano /etc/gitlab/gitlab.rb

A upravte hodnotu external_url tak, aby obsahovala port:

[...]
## GitLab URL
##! URL, na které bude GitLab dostupný.
##! Další podrobnosti o konfiguraci external_url najdete na:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url'http://vpsXXXXX.lws-hosting.com:6080'
[...]

Ctrl+X, Y a pak Enter pro uložení souboru a zavření nano(Esc a pak :wq pro vim).

Chcete-li tuto konfiguraci použít, spusťte následující příkaz:

gitlab-ctl reconfigure

Bude to trvat minutu nebo dvě, než Gitlab synchronizuje své nastavení s aplikacemi, které Gitlab používá ve výchozím nastavení (NGINX, omnibus atd.).

Gitlab je nyní na 6080. Nyní musíme nainstalovat NGINX. Instalaci NGINX shrnují následující příkazové řádky:

apt-get install -y curl gnupg2 ca-certificates lsb-release
echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" | tee /etc/apt/sources.list.d/nginx.list
curl -fsSL https://nginx.org/keys/nginx_signing.key | apt-key add -
apt-get update
apt-get install -y nginx

Nyní je čas vytvořit konfigurační soubor NGINX pro GitLab. Pojmenujeme jej /etc/nginx/conf.d/000-gitlab.conf. K vytvoření tohoto souboru použijte nano:

nano /etc/nginx/conf.d/000-gitlab.conf

Dále musíme vytvořit nový blok server{} a vytvořit reverzní proxy. Zde je navrhovaný obsah :

server {
listen 80;
server_name gitlab.example.com;

location / {
proxy_pass http://localhost:6080;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Url-Scheme $scheme;
}
}

Tip: Předpona "000- " je nutná pro načtení souboru před default.conf. Jinak soubor default.conf přepíše naši konfiguraci.

Aktivujte NGINX při spuštění:

systemctl enable nginx

Poté restartujte nginx následujícím příkazem:

systemctl restart nginx: příkazem systemctl restart nginx

Dále je třeba nasměrovat adresu gitlab.example.com na váš VPS přidáním záznamu A do zóny DNS. Pokud je váš DNS spravován v klientském prostoru LWS, zde je návod, jak to udělat:

Instalace GitLabu v Debianu 9 (SSH) s reverzní proxy serverem NGINX

Dále opět nakonfigurujme Gitlab tak, aby přijímal hlavičku X-Forwarded-For a zjišťoval skutečné IP adresy návštěvníků. To provedeme úpravou souboru /etc/gitlab/gitlab.rb:

[...]
nginx['real_ip_header'] = 'X-Forwarded-For'
nginx['real_ip_recursive'] = 'on'
[...]

Poté znovu synchronizujte konfigurace systému Gitlab a jeho vestavěných služeb:

gitlab-ctl reconfigure

V této fázi byste se měli být schopni připojit k webu http://gitlab.exemple.com.

Instalace certifikátu Let's Encrypt SSL v systému NGINX

Nyní zabezpečíme náš přístup pomocí certifikátu Let's Encrypt SSL. Nejprve nainstalujeme certbot :

apt-get install certbot -y

Dále nastavíme webroot pro ověřování Let's Encrypt. Za tímto účelem upravte soubor /etc/nginx/conf.d/000-gitlab.conf a za blok location / přidejte tyto řádky:

[
location / {
proxy_pass http://localhost:6080;
[...]
}

location ^~ /.well-known/acme-challenge/ {
root /var/www/letsencrypt;
}

}

Vytvoření souboru :

mkdir -p /var/www/letsencrypt

A restartujte NGINX :

systemctl restart nginx

Nyní vytvoříme certifikát SSL pro gitlab.example.com:

certbot certonly --webroot -w /var/www/letsencrypt/ -d gitlab.example.com

Postupujte podle pokynů na obrazovce:

  • Zadejte svou e-mailovou adresu
  • Přečtěte si a přijměte podmínky používání
  • Přihlaste se (nebo ne) k odběru newsletteru EFF

Dále opět upravíme soubor /etc/nginx/conf.d/000-gitlab.conf a přidáme nový server na HTTPS/443. Na konec souboru musíme přidat následující řádky:

[
server {
listen 443 ssl;
server_name gitlab.example.com;

ssl_certificate /etc/letsencrypt/live/gitlab.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/gitlab.example.com/privkey.pem;

location / {
proxy_pass http://localhost:6080;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Url-Scheme $scheme;
}
}

A restartujte server NGINX :

systemctl restart nginx

Nyní máte server Gitlab připravený k použití na adrese https://gitlab.exemple.com.

Ohodnotit tento článek :

Tento článek byl pro vás užitečný ?

Article utileAno

Article non utileNe

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Podobné články


Položte týmu LWS a jeho komunitě otázku