Vous devez sûrement connaître le gestionnaire de version Git ? sur le quel est basé le site GitHub ? C’est très utile pour gérer un projet de développement ou simplement versionner des fichiers.

Nous allons voir comment installer GitLab, un serveur Git en Ruby qui peut faire de l’ombre à GitHub étant donné que tout le monde peut l’installer chez sois et bénéficier de dépôts privées (sans avoir à payer).

Voici les étapes d’installations :

– Installation du serveur
– Paramétrages
– Création du 1er dépôt

I – Installation du serveur

Nous allons donc installer Gitlab sur un serveur Debian 8. Pour cela, on va commencer par installer quelques paquets qui seront utiles :

apt-get install curl openssh-server ca-certificates postfix
Il existe un script tout fait pour ajouter le dépôt, on va l’utiliser, sans le lancer directement depuis le Web (très mauvaise habitude) :
wget https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh
bash script.deb.sh

Ensuite, on peut installer le paquet Gitlab-ce :

apt-get install gitlab-ce

Maintenant que Gitlab est installé, on va pouvoir le configurer.

2 – Configuration de Gitlab

Avant de lancer véritablement GitLab, on va éditer son fichier de configuration principal, afin qu’il puisse tourner correctement.

Pour cela, on ouvre le fichier /etc/gitlab/gitlab.rb avec votre éditeur préféré (vim bien sûr).

Le fichier permet de configurer beaucoup de chose, pour cela rendez vous sur la documentation, mais voici quelques points minimaux qui suffissent en général :

external_url 'http://your-domain.io'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'gitlab@your-domain.io'

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.your-domain.io"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "gitlab@your-domain.io"
gitlab_rails['smtp_password'] = "passw0rd"
gitlab_rails['smtp_domain'] = "your-domain.io"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
user['git_user_email'] = "gitlab@your-domain.io"

Remplacer bien-sûr your-domain.io par votre nom de domaine.

On va ensuite pouvoir lancer GitLab, qui va se configurer selon vos paramètres :

gitlab-ctl reconfigure

Cela prendra sûrement un moment, le temps de lancer tout les services :

Sélection_001

Gitlab devrait donc être joignable sur l’URL renseigné dans la configuration :

Sélection_002

Voici les logins par défaut :

Username: root
Password: 5iveL!fe

Une fois connecté, on va pouvoir créer notre premier dépôt.

3 – Création du premier dépôt

On va tout d’abord commencer par ajouter sa clé SSH dans Gitlab, pour cela on se rend dans les paramètres de l’utilisateur :

Sélection_002

On se rend dans la rubrique SSH Keys, et on ajoute la clé publique :

gitlab_addssh

Une fois que c’est fait, on va pouvoir créer notre premier dépôt !

Pour cela on revient à l’accueil de Gitlab, et on clique sur :

gitlab_newproject

Il faudra ensuite renseigner le nom du projet, sa description, et si on souhaite le rendre publique ou privée :

gitlab_privacy

Une fois le projet créé, on va pouvoir y ajouter des fichiers depuis la machine possesseur de la clé qu’on a ajouté précédemment.

gitlabnewproject

Pour cela, on va le cloner sur notre machine et y ajouter quelques fichiers :

git clone ssh://your-domain.io:port/root/LinuxFiles.git
cd LinuxFiles
touch README.md
git add README.md
cp /foo/bar/some_stuffs .  # J'ajoute some_stuffs
git add some_stuffs
git commit -m "add README and some stuffs"
git push -u origin master

On voit donc notre premier commit :

gitlab_fisrtcommit

On peut également consulter les fichiers ajoutés et plein de choses intéressantes, je pense que vous explorerez rapidement l’interface de fond en comble :

gitlab_files

Voila vous pouvez maintenant filer un accès à votre GitHub privée à tout vos amis !!

Dernier points, pour mettre à jours Gitlab, rien de plus simple :

apt-get update ; apt-get install gitlab-ce

Voilà pour ce tutoriel, vous pouvez bien sûr utiliser Gitlab derrière un reverse-proxy HTTPS (c’est mon cas) ou intégrer votre certificat dans le fichier de configuration.

N’hésitez pas si vous avez des questions.