Je suis en train de revoir la manière dont j'utilise mes services (Nginx, Bind, MariaDB, Plex, PlexPy, Ghost, GitLab, Varnish, ...) et je m'oriente vers du Docker pour faire tout ça (c'est pas fait encore) car j'ai quelques idées en tête pour faire du CI/CD, le tout avec GitLab ! 😘

J'ai préféré héberger moi même le service car j'ai besoin d'y toucher un peu et j'avais pas envie d'avoir des restrictions. C'est un article relativement simple mais je prépare d'autres sujets autour de l'automatisation, qui je pense sera intéressant si vous faites un peu de devops.

Installation

Je ne décrit pas l'installation de Docker, vous trouverez toutes les informations qu'il vous faut sur le site officiel.

Pour l'installation de GitLab, j'utilise l'image docker officielle (qui est très bien) de la Community Edition (alias CE). Mais avant de récupérer l'image, il faudra créer 3 dossiers qui seront utilisés pour les données (exportées du container). Pour le dossier /datas/docker/gitlab-ce, c'est un choix personnel, à vous de l'adpater :

mkdir -p /datas/docker/gitlab-ce/{config,data,logs}

Maintenant lançons le container (l'image sera automatiquement téléchargée si elle n'existe pas en locale) :

docker run -d \
    --hostname gitlab.xorhak.org \
    --name gitlab-ce \
    -p 3443:443 -p 380:80 -p 322/22 \
    --restart always \
    -v /datas/docker/gitlab-ce/config:/etc/gitlab:rw \
    -v /datas/docker/gitlab-ce/logs:/var/log/gitlab:rw \
    -v /datas/docker/gitlab-ce/data:/var/opt/gitlab:rw \
    gitlab/gitlab-ce:latest

Pour vérifier que le container est lancé, vous pouvez le voir avec un docker ps | grep "gitlab-ce" (si vous lui avez donné le même nom).

Configuration

Maintenant que l'installation est terminée, nous allons faire quelques configurations (c'est le minimum hein). Connectez-vous sur le port 380 (celui que vous avez mis) et l'utilisateur root avec le password 5iveL!fe (c'est celui par défaut).

Je vous recommande de changer le mot de passe, l'identifiant du compte, de personnaliser son profil (site, twitter, localisation, enfin si ça vous tente) et d'ajouter votre clé SSH publique ~/.ssh/id_rsa.pub.

Configuration locale

Par défaut git utilise le port 22 (comme c'est basé sur SSH), ici on a utilisé le port 322, donc faudra adapter la configuration en local, ça ce passe dans le fichier ~/.ssh/config (à adapter à vos besoins bien sûr) :

Host gitlab.xorhak.org
    Port 322
    AddressFamily inet

Pour l'option AddressFamily inet ce n'est pas obligatoire, moi c'était pour corriger un petit problème avec la prise en compte de l'IPv6 par défaut, alors que là ou j'étais, c'était seulement de l'IPV4. Normalement vous n'avez pas besoin de le mettre.

Conclusion

Le service GitLab est maintenant opérationnel et en seulement quelques minutes (si vous êtes un vieux comme moi, vous savez que l'installer manuellement, c'est une vrai misère). Pour y faire un accès plus propre, il restera à mettre en place une configuration type proxypass vers le port 380, ça je vous laisse faire !

N'hésitez pas à regarder/modifier le fichier /datas/docker/gitlab-ce/config/gitlab.rb pour vos besoins ! 😉

Les autres articles sont en cours de préparation, il faudra être patient !

Enjoy!
XorHak