Installer Gitlab

Comme tout développeur j'ai besoin de versionner mon code. Pour cela j'utilise Git, et Github pour les dépôts.
Mais voilà, un jour j'ai eu besoin d'un outil plus confidentiel, de pouvoir héberger mon propre serveur git. Mon choix s'est alors porté sur Gitlab qu'il m'a fallu installer.
L'installation peut s'avérer complexe et je vous propose à travers cet article de vous donner les éléments clés qui m'ont permis d'aboutir.
Logo GitLab

Ma configuration

Depuis la montée fulgurante de git au sein des projets informatiques, Gitlab est devenu un des outils indispensables.  J’utilise Gitlab sur un serveur distant. Pour ce dernier, j’ai la configuration suivante :

  • Type serveur : OVH, VPS (VPS 2016 Cloud 1, 1vCore, Ram 2Go)
  • Sythème d’exploitation : Debian 9
  • Serveur : Apache 2.4
  • Php : 7.0

Quelques prérequis

Le serveur

Avant de pouvoir installer Gitlab, il vous sera nécessaire de d’installer un serveur html (ici nous n’aborderons que le cas d’Apache) et php. Pour cela, vous trouverez sur le web d’excellents tutoriaux.

La gestion des courriels

Gitlab envoie des mails. Donc il est indispensable de mettre un serveur de mail à sa disposition afin que ces fonctionnalités soient disponibles.
Je n’aborderai pas le cas de Postfix qui est un serveur complet. Pour commencer, il n’est pas forcément utile. Je vous propose d’utiliser SSMTP.
SSMTP, plus simple à mettre en place, n’est pas un serveur. En effet, cet applicatif va rediriger les courriels qui seront envoyés vers un serveur mail qui lui, configuré, sera chargé de les acheminer. Je vous invite à lire Installer et configurer SSMTP.

Installer Gitlab

Au préalable, pour pouvoir installer Gitlab, il est nécessaire d’ajouter le dépôt.

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | frapper

Installation

En mode super utilisateur on installe Gitlab.

apt-get install gitlab-ce

Comme vous l’aurez  certainement remarqué, on installe la Community Edition.

Configuration

Pour la configuration, éditez le fichier gitlab.rb

nano /etc/gitlab/gitlab.rb

Comme ce fichier est assez long, je n’indique ci-dessous que les lignes que j’ai modifiées.

external_url 'adresse_serveur'
 
# Configuration e-mail
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "ssl0.ovh.net"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "username@domain.com"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_domain'] = "ssl0.ovh.net"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
 
#Configuration pour Apache
web_server['external_users'] = ['www-data']
web_server['username'] = 'apache'
web_server['group'] = 'apache'
nginx['enable'] = false

A la fin, enregistrez le fichier et exécutez :

gitlab-ctl reconfigure

Configurer Apache

Pour configurer apache, nous allons créer un virtual host.

<VirtualHost *:80>
    ServerName votre.nomde.domaine
    DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public

   ProxyPreserveHost On
   AllowEncodedSlashes Off

<Location />
   Order deny,allow
   Allow from all
   Require all granted
   ProxyPassReverse http://127.0.0.1:8080
   ProxyPassReverse http://votre.nomde.domaine/
 </Location>

   RewriteEngine on
   RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
   RewriteRule .* http://127.0.0.1:8080%{REQUEST_URI} [P,QSA]
</VirtualHost>

Maintenant, redémarrez Apache

service apache2 restart

ou

/etc/init.d/apache2 restart

Si tout est bon, votre Gitlab devrait être accessible depuis http://votre.nomde.domaine. par conséquent,  il devrait afficher :

 

Saisissez un mot de passe qui sera celui de l’utilisateur root (admin). Validez et sur l’écran suivant, identifiez vous.