Installer GitLab sur Debian 9

Installer GitLab sur Debian 9

Les solutions pour versionner son code proprement ne manquent pas : Github, GitLab, BitBucket etc…
Mais pour des raisons de sécurité, ou de coûts (les prix peuvent grimper très vite si le nombre d’utilisateur est important), il peut être judicieux d’avoir son propre serveur Git. Voyons comment installer GitLab sur Debian 9.

GitLab c’est quoi ?

GitLab est à l’origine une solution libre permettant à chacun de mettre en place sa solution de versionning sur son propre serveur : un GitHub like openSource. Il existe maintenant plusieurs manière d’utiliser GitLab :

  • GitLab.com : Le service en ligne (avec plusieurs niveau de fonctionnalités pour les comptes payant)
  • GitLab EE : GitLab Entreprise Edition, le logiciel de versionning vendu sous licence propriétaire avec des fonctions supplémentaires
  • GitLab CE : GitLab Community Edition, la version libre de GitLab.

Nous allons donc installer GitLab sur Debian 9.

Installation de GitLab sous Debian 9

Les pré-requis

  • Une machine tournant sous Debian 9
  • Un accès SSH sur celle-ci
  • Un compte utilisateur non-root mais dans le groupe sudo

Si vous n’avez pas de compte utilisateur adéquat, voici comment procéder :

  1. Création de l’utilisateur
    adduser monutilisateur
  2. Ajout de l’utilisateur dans le groupe sudo
    usermod -aG sudo monutilisateur
  3. On se connecte en tant que ce nouvel utilisateur
    su - monutilisateur


1ère étape : On installe les dépendances

On se connecte au serveur via SSH et on fait attention de ne pas être logué en tant que root, au besoin on switch d’utilisateur (voir plus haut).

sudo apt update
sudo apt install ca-certificates curl openssh-server postfix

2è étape : Installation de GitLab

Placez vous dans le répertoire /tmp et téléchargez le script d’installation :

cd /tmp
curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

Ressortez du répertoire temporaire et exécutez l’installer

cd ..
sudo bash /tmp/script.deb.sh

Ce script va installer tout ce dont vous avez besoin, il vous permettra de gérer GitLab en passant par votre gestionnaire de paquets classiques.

Du coup maintenant, avec apt on va pouvoir installer GitLab à proprement parler :

sudo apt install gitlab-ce

3è étape : Modification de la configuration de GitLab

Pour fonctionner, GitLab à besoin qu’un domaine pointe sur le serveur, il faut donc indiquer à GitLab quel est ce domaine.

Editez le fichier /etc/gitlab/gitlab.rb :

sudo nano /etc/gitlab/gitlab.rb

Spécifiez le domaine dans la variable external_url :

external_url 'http://gitlab.mondomaine.fr'

Sauvegardez et relancez le script de reconfiguration

sudo gitlab-ctl reconfigure

En cas d’erreur à l’installation

En cas d’erreur sur cette partie, cela peut provenir (comme dans mon cas) d’un problème au niveau des locales sur l’OS, il suffit d’exécuter cette commande et de choisir les bonnes locales et de relancer le reconfigure :

sudo dpkg-reconfigure locales

Étape optionnelle : Utiliser un certificat SSL

Actuellement l’utilisation d’un certificat SSL est devenu la norme, heureusement les développeurs de GitLab ont tout prévu pour pouvoir mettre en place un certificat SSL Let’s encrypt facilement.

Modification de la configuration de GitLab

Tout se passe au niveau du fichier de configuration :

sudo nano /etc/gitlab/gitlab.rb
On modifie le protocole par défaut au niveau du domaine
external_url 'https://gitlab.mondomaine.fr'

Il suffit simplement d’ajouter un « s ».

On active Let’s Encrypt et on définit la période de renouvellement

Ces variables de configuration sont commentées par défaut, dé-commentez-les et mettez les valeurs que vous voulez avoir, exemple :

letsencrypt['enable'] = true
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = "12"
letsencrypt['auto_renew_minute'] = "30"
letsencrypt['auto_renew_day_of_month'] = "*/7"

Ici mon certificat sera renouvelé tous les 7 jours à 12h30.

Et voilà comment installer GitLab sur Debian 9 !

Vous pouvez maintenant vous rendre sur l’URL que vous avez définit. Le premier écran vous permettra de définir un mot de passe pour l’utilisateur root.

Amusez-vous : Codez, déboguez, versionnez !

Sources :