Installazione di GitLab su Debian 9 (SSH) con un reverse proxy NGINX

Procédure

Avete bisogno di Gitlab per gestire i vostri progetti? Create la vostra istanza di GitLab sul vostro VPS seguendo questo tutorial.

Git è buono. Gitlab è meglio. Gitlab è un gestore di repository Git open-source. Sviluppato da GitLab Inc, offre un'interfaccia grafica intuitiva per la gestione dei vari progetti, mantenendo la compatibilità con Git. È possibile creare richieste di funzionalità, tracciare bug, ecc. in un team e tramite un browser web.

Gitlab è disponibile in diverse versioni, sia a pagamento che gratuite. Nel seguente tutorial installeremo GitLab Community Edition (Gitlab CE), la versione gratuita e open-source di Gitlab.

Prerequisiti

Per utilizzare GitLab, è necessario disporre di almeno :

  • 2 core
  • 4 GB di RAM

Pertanto, ilVPS M della gamma Starter di LWS è ideale per pochi progetti Gitlab, ma se avete diversi collaboratori e/o diversi progetti da completare, vi consigliamo di utilizzare il VPS L o uno dei VPS della gamma Pro.

Per questo tutorial, considereremo un sistema operativo completamente vuoto dall'immagine di sistema Debian 9 + SSH offerta sul pannello LWS. Ecco i link ad altre esercitazioni per altri sistemi operativi:

Se volete cambiare il sistema operativo sul vostro VPS, ecco un link alla documentazione di aiuto: Come posso cambiare il sistema operativo sul mio VPS?

Si noti che questo tutorial si basa su un'installazione VERGINE di Debian 9. Se avete già installato qualcosa, non possiamo garantire che il tutorial sia efficace e/o che tutti gli altri servizi siano disponibili dopo l'installazione.

Non dimenticate di abilitare la porta SSH sul vostro firewall VPS in modo da potervi connettere come root alla console SSH.

Riassunto del tutorial

Ecco i passaggi che verranno trattati in questo tutorial:

  1. Aggiornamento del sistema operativo
  2. Installazione di Gitlab CE
  3. Impostazione di un reverse proxy NGINX davanti a Gitlab
  4. Installazione di un certificato SSL Let's Encrypt sul reverse proxy NGINX

Passo 1: aggiornamento del sistema operativo

Prima di installare qualsiasi cosa, si consiglia di aggiornare l'elenco dei pacchetti e i pacchetti stessi.

Sulla vostra console SSH, scrivete i seguenti comandi:



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

Passo 2: Installazione di Gitlab CE

Per prima cosa, installiamo le dipendenze necessarie:

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

Quindi, aggiungere il repository Gitlab al proprio VPS:

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

Ora installiamo Gitlab:

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

L'installazione richiede alcuni minuti, quindi potete prendere un caffè mentre aspettate.

Suggerimento: se la connessione a Internet è instabile, si può usare screen per riconnettersi alla console staccabile in caso di disconnessione inaspettata. Documentazione sull'uso di screen.

Una volta completata l'installazione, andare su http://vpsXXXXX.lws-hosting.com per configurare Gitlab.

Suggerimento: se si ottiene un errore 502, provare a riavviare Gitlab con il comando gitlab-ctl restart e poi attendere 5 minuti prima di riprovare(Ctrl+F5).

Se tutto va come previsto, si verrà reindirizzati a una pagina per la creazione della password di Gitlab.

Installazione di GitLab su Debian 9 (SSH) con un reverse proxy NGINX

Specificate una password relativamente complessa. È anche possibile generare una password casuale.

Una volta fatto questo, è possibile connettersi a Gitlab con l'utente root e la password specificata.

Installazione del reverse proxy NGINX

Ora si tratta di configurare un reverse proxy con NGINX. Questo vi permetterà di ospitare altri siti e applicazioni in futuro, soprattutto se avete scelto un server VPS Cloud Pro S o superiore.

Il primo passo è spostare Gitlab su una porta non utilizzata. Per questo tutorial, utilizzeremo la porta 6080 (presa a caso).

Suggerimento: è possibile trovare l'elenco delle porte già in uso con il comando netstat -tunap | grep LISTEN

Per farlo, modificare il file /etc/gitlab/gitlab.rb con nano (o vim, o un altro editor):

nano /etc/gitlab/gitlab.rb

E modificare il valore di external_url per includere la porta:







[## URL di GitLab ##! URL su cui GitLab sarà raggiungibile. ##! Per maggiori dettagli sulla configurazione di external_url vedere: ##! 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 e poi Invio per salvare il file e chiudere nano(Esc e poi :wq per vim).

Per applicare questa configurazione, eseguire il seguente comando:

gitlab-ctl reconfigure

Questa operazione richiederà un paio di minuti, mentre Gitlab sincronizza le sue impostazioni con le applicazioni che Gitlab utilizza di default (NGINX, omnibus, ecc.).

Gitlab è ora su 6080. Ora dobbiamo installare NGINX. L'installazione di NGINX è riassunta dalle seguenti righe di comando:





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

Ora è il momento di creare un file di configurazione di NGINX per GitLab. Lo chiameremo /etc/nginx/conf.d/000-gitlab.conf. Usare nano per creare questo file:

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

Successivamente, occorre creare un nuovo blocco server{} e creare il reverse proxy. Ecco un contenuto suggerito:



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 $schema; proxy_set_header X-Forwarded-Protocollo $schema; proxy_set_header X-Url-Scheme $schema; } }

Suggerimento: Il prefisso "000- " è necessario per il file da caricare prima di default.conf. Altrimenti, il file default.conf sovrascriverà la nostra configurazione.

Attivare NGINX all'avvio:

systemctl enable nginx

Quindi riavviare nginx con il seguente comando:

systemctl restart nginx

Successivamente, è necessario puntare gitlab.example.com al proprio VPS aggiungendo un record A alla propria zona DNS. Se il vostro DNS è gestito nello spazio client LWS, ecco come fare:

Installazione di GitLab su Debian 9 (SSH) con un reverse proxy NGINX

Quindi, configuriamo di nuovo Gitlab per accettare l'intestazione X-Forwarded-For per trovare gli indirizzi IP reali dei visitatori. Questo si fa modificando il file /etc/gitlab/gitlab.rb:




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

Quindi, risincronizzare le configurazioni di Gitlab e dei suoi servizi integrati:

gitlab-ctl reconfigure

A questo punto, dovreste essere in grado di connettervi a http://gitlab.exemple.com.

Installazione di un certificato SSL Let's Encrypt su NGINX

Ora dobbiamo proteggere il nostro accesso con un certificato SSL Let's Encrypt. Per prima cosa, installiamo certbot:

apt-get install certbot -y

Poi, impostiamo una webroot per l'autenticazione con Let's Encrypt. Per farlo, modificare il file /etc/nginx/conf.d/000-gitlab.conf e aggiungere queste righe dopo il blocco location /:










[...] location / { proxy_pass http://localhost:6080; [...] }location ^~ /.well-known/acme-challenge/ { root /var/www/letsencrypt; } }

Creare il file :

mkdir -p /var/www/letsencrypt

E riavviare NGINX :

systemctl restart nginx

Ora creiamo un certificato SSL per gitlab.example.com:

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

Seguire le istruzioni sullo schermo:

  • Inserire il proprio indirizzo e-mail
  • Leggere e accettare le condizioni d'uso
  • Iscriversi (o meno) alla newsletter di EFF

Poi, modificheremo di nuovo /etc/nginx/conf.d/000-gitlab.conf per aggiungere un nuovo server su HTTPS/443. Dobbiamo aggiungere le seguenti righe alla fine del file:







[...] 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 $schema; proxy_set_header X-Forwarded-Protocol $schema; proxy_set_header X-Url-Scheme $schema; } }

E riavviare il server NGINX:

systemctl restart nginx

Ora si dispone di un server Gitlab pronto all'uso all'indirizzo https://gitlab.exemple.com.

Vota questo articolo :

Questo articolo vi è stato utile ?

Article utile

Article non utileNo

Vous souhaitez nous laisser un commentaire concernant cet article ?

Si cela concerne une erreur dans la documentation ou un manque d'informations, n'hésitez pas à nous en faire part depuis le formulaire.

Pour toute question non liée à cette documentation ou problème technique sur l'un de vos services, contactez le support commercial ou le support technique

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)

Articoli simili


Fate una domanda al team LWS e alla sua comunità