Installera GitLab på Debian 9 (SSH) med en omvänd NGINX-proxy

Procédure

Behöver du Gitlab för att hantera dina projekt? Skapa din egen instans av GitLab på din VPS genom att följa denna handledning.

Git är bra. Gitlab är bättre. Gitlab är en öppen källkod Git repository manager. Utvecklat av GitLab Inc, erbjuder det ett intuitivt grafiskt gränssnitt för att hantera dina olika projekt samtidigt som kompatibiliteten med Git bibehålls. Du kan skapa funktionsförfrågningar, spåra buggar etc. i ett team och via en webbläsare.

Gitlab finns i flera versioner, både betalda och gratis. I följande handledning kommer vi att installera GitLab Community Edition (Gitlab CE), den kostnadsfria versionen av Gitlab med öppen källkod.

Förutsättningar

För att använda GitLab behöver du minst :

  • 2 vCores
  • 4 GB RAM-minne

VPS M från LWS Starter-sortimentet är perfekt för några få Gitlab-projekt, men om du har flera medarbetare och/eller flera projekt att slutföra rekommenderar vi att du tar VPS L eller en av VPS:erna från Pro-sortimentet.

För denna handledning kommer vi att överväga ett helt tomt operativsystem från Debian 9 + SSH-systembilden som erbjuds på LWS-panelen. Här är länkarna till andra handledningar för andra operativsystem:

Om du vill ändra operativsystemet på din VPS finns här en länk till hjälpdokumentationen: Hur ändrar jag operativsystemet på min VPS?

Observera att denna handledning är baserad på en VIRGIN-installation av Debian 9. Om du redan har installerat något på den kan vi inte garantera att handledningen fungerar och/eller att alla dina andra tjänster kommer att vara tillgängliga efter installationen.

Glöm inte att aktivera SSH-porten på din VPS-brandvägg så att du kan ansluta som root till SSH-konsolen.

Sammanfattning av handledningen

Här är de steg som kommer att behandlas i den här handledningen:

  1. Uppdatera operativsystemet
  2. Installera Gitlab CE
  3. Konfigurera en NGINX omvänd proxy framför Gitlab
  4. Installera ett Let's Encrypt SSL-certifikat på den omvända NGINX-proxyn

Steg 1: Uppdatering av operativsystemet

Innan du installerar något rekommenderar vi att du uppdaterar listan över paket och själva paketen.

Skriv följande kommandon på din SSH-konsol:

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

Steg 2: Installera Gitlab CE

Låt oss först installera de beroenden som krävs:

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

Lägg sedan till Gitlab-förvaret till din VPS:

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | bash

Låt oss nu installera Gitlab:

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

Installationen tar flera minuter, så du kan ta en kopp kaffe medan du väntar.

Tips: Om du har en instabil internetanslutning kan du använda screen för att återansluta till den löstagbara konsolen vid ett oväntat avbrott. Dokumentation om hur du använder screen.

När installationen är klar kan du gå till http://vpsXXXXX.lws-hosting.com för att konfigurera Gitlab.

Tips: om du får ett 502-fel kan du försöka starta om Gitlab med kommandot gitlab-ctl restart och sedan vänta 5 minuter innan du försöker igen(Ctrl+F5).

Om allt går som planerat kommer du att omdirigeras till en sida där du kan skapa ditt Gitlab-lösenord.

Installera GitLab på Debian 9 (SSH) med en omvänd NGINX-proxy

Ange ett relativt komplext lösenord. Du kan också generera ett slumpmässigt lösenord.

När detta är gjort kan du ansluta till Gitlab med root-användaren och det lösenord du angav.

Installera den omvända proxyn NGINX

Nu ska vi konfigurera en omvänd proxy med NGINX. Detta kommer att göra det möjligt för dig att vara värd för andra webbplatser och applikationer i framtiden, särskilt om du har valt en Cloud Pro S VPS-server eller högre.

Det första steget är att flytta Gitlab till en oanvänd port. För denna handledning använder vi port 6080 (slumpmässigt vald).

Tips: du kan hitta listan över portar som redan används med kommandot netstat -tunap | grep LISTEN

För att göra detta, redigera filen /etc/gitlab/gitlab.rb med nano (eller vim, eller en annan editor):

nano /etc/gitlab/gitlab.rb

Och redigera värdet för external_url så att det inkluderar porten:

[...]
## GitLab URL
##! URL på vilken GitLab kommer att vara nåbar.
##! För mer information om konfiguration av external_url se:
##! 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 och sedan Enter för att spara filen och stänga nano(Esc och sedan :wq för vim).

För att tillämpa denna konfiguration kör du följande kommando:

gitlab-ctl omkonfigurera

Detta kommer att ta en minut eller två medan Gitlab synkroniserar sina inställningar med de applikationer som Gitlab använder som standard (NGINX, omnibus, etc.).

Gitlab är nu på 6080. Vi behöver nu installera NGINX. Installationen av NGINX sammanfattas av följande kommandorader:

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

Nu är det dags att skapa en NGINX-konfigurationsfil för GitLab. Vi namnger den /etc/nginx/conf.d/000-gitlab.conf. Använd nano för att skapa denna fil:

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

Därefter måste vi skapa ett nytt server{}-block och skapa den omvända proxyn. Här är ett förslag på innehåll:

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;
}
}

Tips: Prefixet "000- " krävs för att filen ska kunna läsas in före default.conf. Annars kommer filen default.conf att skriva över vår konfiguration.

Aktivera NGINX vid uppstart:

systemctl enable nginx

Starta sedan om nginx med följande kommando:

systemctl restart nginx

Därefter måste du peka gitlab.example.com till din VPS genom att lägga till en A-post i din DNS-zon. Om din DNS hanteras på LWS-klientutrymmet, så här gör du det:

Installera GitLab på Debian 9 (SSH) med en omvänd NGINX-proxy

Låt oss sedan konfigurera Gitlab igen för att acceptera X-Forwarded-For-huvudet för att hitta besökarnas riktiga IP-adresser. Detta görs genom att redigera filen /etc/gitlab/gitlab.rb:

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

Synkronisera sedan konfigurationerna för Gitlab och dess inbäddade tjänster:

gitlab-ctl reconfigure

I det här skedet bör du kunna ansluta till http://gitlab.exemple.com.

Installera ett Let's Encrypt SSL-certifikat på NGINX

Vi kommer nu att säkra vår åtkomst med ett Let's Encrypt SSL-certifikat. Låt oss först installera certbot:

apt-get installera certbot -y

Därefter ska vi ställa in en webroot för Let's Encrypt-autentisering. För att göra detta redigerar du filen /etc/nginx/conf.d/000-gitlab.conf och lägger till dessa rader efter location / -blocket:

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

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

}

Skapa :

mkdir -p /var/www/letsencrypt

Och starta om NGINX :

systemctl starta om nginx

Låt oss nu skapa ett SSL-certifikat för gitlab.example.com:

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

Följ instruktionerna på skärmen:

  • Ange din e-postadress
  • Läs och acceptera användarvillkoren
  • Prenumerera (eller inte) på EFF:s nyhetsbrev

Därefter ska vi redigera /etc/nginx/conf.d/000-gitlab.conf igen för att lägga till en ny server på HTTPS/443. Vi måste lägga till följande rader i slutet av filen:

[...]
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;
}
}

Och starta om din NGINX-server :

systemctl starta om nginx

Du har nu en Gitlab-server som är klar att använda på https://gitlab.exemple.com.

Betygsätt denna artikel :

Den här artikeln var användbar för dig ?

Article utileJa

Article non utileNej

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)

Liknande artiklar


Ställ en fråga till AWS-teamet och dess community