Rate this article :
This article was useful to you ?
Yes
No
Vous avez noté 0 étoile(s)
Sommaire
Procédure
Vous avez besoin de Gitlab pour gérer vos projets ? Créez votre propre instance de GitLab sur votre VPS en suivant ce tutoriel.
Git c’est bien. Gitlab, c’est mieux. Gitlab est un gestionnaire de dépôt Git open-source. Développé par GitLab Inc., il propose une interface graphique intuitive pour gérer vos différents projets tout en gardant la compatibilité avec Git. Ainsi, vous pouvez créer des demandes de fonctionnalités (feature request), tracer les bugs, … en équipe et sur un navigateur web.
Gitlab est proposé en plusieurs versions, payantes et gratuites. Dans le tutoriel suivant, nous allons installer GitLab Community Edition (Gitlab CE), la version gratuite et open-source de Gitlab.
Pour pouvoir utiliser GitLab, il est recommandé d’avoir au moins :
Par conséquent, l’offre VPS M de la gamme Starter LWS vous conviendra parfaitement pour un Gitlab de quelques projets, mais si vous avez plusieurs collaborateurs et/ou plusieurs projets à mener à bien, il est recommandé de prendre le VPS L ou un des VPS de la gamme Pro.
Pour ce tutoriel, nous allons considérer un système d’exploitation totalement vierge de l’image système Debian 9 + SSH proposé sur LWS Panel. Voici les liens vers les autres tutoriels pour d’autres systèmes d’exploitation :
Si vous voulez modifier le système d’exploitation de votre VPS, voici un lien vers la documentation d’aide : Comment modifier le système d’exploitation de mon VPS ?
Notez que ce tutoriel est basé sur une installation VIERGE de Debian 9. Si vous avez déjà installé quelque chose dessus, nous ne pouvons pas garantir que le tutoriel sera efficace et/ou que tous vos autres services seront disponibles après installation.
N’oubliez pas d’activer le port SSH sur le pare-feu de votre VPS afin de pouvoir se connecter en root sur la console SSH.
Voici les étapes qui seront abordés sur ce tutoriel :
Avant d’installer quoi que ce soit, il est recommandé de mettre à jour la liste des paquets et les paquets eux-mêmes.
Sur votre console SSH, écrivez les commandes suivantes :
apt-get update
apt-get upgrade -y
apt-get dist-upgrade -y
D’abord, installons les dépendances requises :
apt-get install -y curl openssh-server ca-certificates
Ensuite, ajoutons le dépôt de Gitlab à votre VPS :
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | bash
Maintenant, installons Gitlab :
EXTERNAL_URL="http://vpsXXXXX.lws-hosting.com" apt-get install gitlab-ee
L’installation prend plusieurs minutes, vous pouvez prendre un café en attendant.
Astuce : si vous avez une connexion Internet peu stable, vous pouvez mettre en place screen pour se reconnecter à la console détachable en cas de déconnexion non prévue. Documentation sur l'utilisation de screen.
Une fois l’installation terminée, accédez à http://vpsXXXXX.lws-hosting.com
afin de configurer Gitlab.
Astuce : si vous avez une erreur 502, essayez de redémarrer Gitlab avec la commande
gitlab-ctl restart
puis patienter 5 minutes avant de réessayer (Ctrl+F5
).
Si tout se déroule comme prévu, vous êtes redirigé vers une page pour créer votre mot de passe Gitlab.
Spécifiez alors un mot de passe relativement complexe. Vous pouvez également générer un mot de passe aléatoire.
Une fois terminé, vous pouvez vous connecter à Gitlab avec l’utilisateur root et le mot de passe que vous avez spécifié.
Maintenant, nous allons mettre en place un reverse proxy avec NGINX. Ceci vous permettra d’héberger d’autres sites et applications dans le futur, notamment si vous avez opté pour un serveur VPS Cloud Pro S ou supérieure.
La première étape consiste à déplacer Gitlab sur un port non utilisé. Pour ce tutoriel, on prendra le port 6080 (pris aléatoirement).
Astuce : vous pouvez trouver la liste des ports déjà utilisés avec la commande
netstat -tunap | grep LISTEN
Pour cela, éditer le fichier /etc/gitlab/gitlab.rb
avec nano
(ou vim
, ou autre éditeur) :
nano /etc/gitlab/gitlab.rb
Et éditez la valeur de external_url
en incluant le port :
[...]
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! 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
puis Entrée
pour enregistrer le fichier et fermer nano (Esc
puis :wq
pour vim).
Pour appliquer cette configuration, il faut exécuter la commande suivante :
gitlab-ctl reconfigure
Ceci prendra une ou deux minutes le temps que Gitlab effectue une synchronisation de ses paramètres avec les applications embarqués par défaut par Gitlab (NGINX, omnibus, ...)
A présent, Gitlab est sur 6080. Il faudra maintenant mettre en place NGINX. L’installation de NGINX se résume par les lignes de commandes suivantes :
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
Il est maintenant temps de créer un fichier de configuration NGINX pour GitLab. Nous allons le nommer /etc/nginx/conf.d/000-gitlab.conf
. Créons ce fichier avec nano :
nano /etc/nginx/conf.d/000-gitlab.conf
Ensuite, il faut créer un nouveau bloc server{} et faire le reverse proxy. Voici une proposition de contenu :
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;
}
}
Astuce : Le préfixe « 000- » est nécessaire pour que le fichier soit chargé avant
default.conf
. Dans le cas contraire, le fichierdefault.conf
va écraser notre configuration.
Activez NGINX au démarrage :
systemctl enable nginx
Redémarrer ensuite nginx avec la commande suivante :
systemctl restart nginx
Ensuite, il faut pointer gitlab.exemple.com sur votre VPS en ajoutant un enregistrement A à votre zone DNS. Si votre DNS est géré sur l’espace client LWS, voici comment faire :
Ensuite, configurons à nouveau Gitlab pour accepter l’en-tête X-Forwarded-For
pour trouver les adresses IP réelles des visiteurs. Ceci se fait en éditant le fichier /etc/gitlab/gitlab.rb :
[...]
nginx['real_ip_header'] = 'X-Forwarded-For'
nginx['real_ip_recursive'] = 'on'
[...]
Ensuite, faites une nouvelle synchronisation des configurations de Gitlab et de ses services embarqués :
gitlab-ctl reconfigure
A ce stade, vous devriez pouvoir vous connecter à http://gitlab.exemple.com
.
Nous allons maintenant sécuriser notre accès avec un certificat SSL Let’s Encrypt. Tout d’abord, installons certbot :
apt-get install certbot -y
Ensuite, nous allons mettre en place un webroot prévu pour l’authentification Let’s Encrypt. Pour ce faire, éditer le fichier /etc/nginx/conf.d/000-gitlab.conf
et ajouter ces lignes après le bloc location /
:
[...]
location / {
proxy_pass http://localhost:6080;
[...]
}
location ^~ /.well-known/acme-challenge/ {
root /var/www/letsencrypt;
}
}
Créez le dossier :
mkdir -p /var/www/letsencrypt
Et redémarrez NGINX :
systemctl restart nginx
Créons maintenant un certificat SSL pour gitlab.exemple.com
:
certbot certonly --webroot -w /var/www/letsencrypt/ -d gitlab.exemple.com
Suivez les instructions à l’écran :
Ensuite, nous allons de nouveau éditer /etc/nginx/conf.d/000-gitlab.conf
afin d’ajouter un nouveau serveur sur HTTPS/443. Il faut alors ajouter les lignes suivantes à la fin du fichier :
[...]
server {
listen 443 ssl;
server_name gitlab.exemple.com;
ssl_certificate /etc/letsencrypt/live/gitlab.exemple.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/gitlab.exemple.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;
}
}
Et redémarrer votre serveur NGINX :
systemctl restart nginx
Voilà, vous avez maintenant un serveur Gitlab prêt à l’emploi sur https://gitlab.exemple.com
.
Rate this article :
This article was useful to you ?
Yes
No