GitLab est une alternative à github sans réellement en être une. Le changement se situe au niveau de l’hébergement, puisque gitlab est installé sur l’un de vos serveurs.
Il permet les choses suivantes :
- Exploration des commits et source
- Contrôle des accès
- Gestion des projets
- Gestion des clés publiques
- Détail avec coloration syntaxique du code
- Historique des versions de fichier et comparaison
Me concernant, seul la gestion de projets n’est pas utilisée puisqu’elle passe par Redmine, qui lui permet, de base, une gestion beaucoup plus poussée des projets en cours sachant qu’on peut y développer des plugins assez simplement.
Deux trois astuces et choses à savoir sans dans la suite de l’article…
Pour installer GitLab, il suffit de suivre le guide établie sur le site officiel :
https://github.com/gitlabhq/gitlabhq/blob/stable/doc/installation.md
Voici quelques détails complémentaires :
- Si au lancement, il affiche “could not find gemfile”, avant de lancer le deamon, faites “cd /home/gitlab/gitlab”.
- Si le programme affiche “permission denied”, il suffit de faire “chmod +R 777 /home/gitlab/gitlab/tmp” afin de lui permettre de créer ses fichiers temporaires (notamment ses PID
Par ailleurs, j’ai fait le choix d’utiliser NGinx (qui est d’ailleurs conseillé par GitLab) et voici ma configuration, directement en place dans /etc/nginx/nginx.conf :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
server { # Configuration de base d'un VHost NGinx listen terredecafe.fr:80; server_name git.terredecafe.fr; root /home/gitlab/gitlab/public; # Emplacement des logs access_log /var/log/nginx/gitlab_access.log; error_log /var/log/nginx/gitlab_error.log; location / { try_files $uri $uri/index.html $uri.html @gitlab; } location @gitlab { proxy_redirect off; proxy_set_header X-FORWARDED_PROTO http; # On paramètre le header # Il est possible que vous deviez changer le port en 3000 proxy_set_header Host git.terredecafe.fr:80; proxy_set_header X-Real-IP $remote_addr; # On envoi le header proxy_pass http://gitlab; } } |
La principale différence avec un vhost de base est que celui ci est directement implanté dans le fichier de configuration principal de NGinx.
En fin, n’oubliez pas le -d au lancement de l’appli ;)
1 |
sudo -u gitlab bundle exec rails s -e production -d |