Transformer sa Raspberry Pi en serveur GitHub (like) avec GitLab
Si vous faites un peu de développement informatique vous connaissez très probablement GitHub.
Pour ceux d’entre-vous qui ne connaîtraient pas encore GitHub (déjà arrêtez de faire du management et commencez à coder) voici un petit rappel.
GitHub est un service web basé sur le logiciel Git (il s’agit d’un logiciel de versionning écrit par Linus Torvald) et qui permet d’héberger un projet tout en fournissant de nombreux outils comme la gestion de tickets (à travers les « issues »), l’établissement de statistiques ou encore la création d’un Wiki pour un projet.
Nous allons donc voir ensemble comment héberger vous-même un système proche de GitHub.
Pourquoi héberger votre propre GitHub-like sur votre Raspberry Pi ?
Même s’il s’agit d’un système assez incroyable (GitHub c’est quand même le plus grand système de partage de code du monde), GitHub possède certains défauts qui pourraient vous amener à vouloir héberger votre propre système plutôt que d’utiliser GitHub.
Parmi ces défauts, il y a notamment le fait que GitHub, dans sa version gratuite, vous oblige à laisser votre code accessible à tous en lecture.
Autre défaut, GitHub lui-même n’est pas libre et ça c’est pas cool !
Enfin, utiliser GitHub c’est faire confiance à un tiers pour l’hébergement de vos données, avec ce que cela induit comme dépendance et comme manque de configurabilité.
Pour toutes ces raisons, beaucoup de startups, des groupes de programmeurs et d’autres professionnels de l’informatique (et en particulier des étudiants) veulent héberger leur propre serveur Git.
Il s’avère que le moyen le moins cher et le plus facile d’héberger un serveur Git privé est de le faire avec une Raspberry Pi.
En effet, pour créer votre propre serveur Git à la maison, vous aurez seulement besoin des trois équipements suivants:
- Un Raspberry Pi 3 (que vous pourrez facilement trouver ici chez Amazon)
- Une alimentation assez puissante pour la Raspberry Pi (jetez un œil à celle-ci, également chez Amazon)
- Et enfin, d’un carte MicroSD de 32 Go (là encore trouvable sur cette page chez Amazon), ce qui sera largement suffisant pour un serveur Git
Avec ces quelques équipements et ce tutoriel, vous pouvez créer très facilement votre propre serveur Git privé à la maison.
Quelle alternative à GitHub pour une installation locale ?
Si il existe d’autres services en ligne qui viennent concurrencer GitHub (notamment BitBucket) nous cherchons ici une alternative qui nous propose à la fois les fonctionnalités principales de GitHub, tout en nous permettant l’auto-hébergement.
Dans cette optique, nous avons choisi de nous pencher sur GitLab, un GitHub like auto-hébergé, libre (dans sa version Community Edition).
Gros point positif pour GitLab, il propose un installateur pour Raspbian et la Raspberry Pi 3!
GitLab vous offrira donc une interface web claire pour la gestion de vos répertoires Git et vous permettra également de gérer les tickets ou un Wiki.
Installer GitLab sur votre Raspberry Pi avec Raspbian
L’installation de GitLab sur votre Raspberry Pi est très simple. Nous allons ici effectuer une installation pour Raspbian.
Dans un premier temps nous allons installer l’ensemble des logiciels qui peuvent êtres utiles à GitLab ou à son installation. Pour cela, lancer la commande suivante :
sudo apt install curl openssh-server ca-certificates postfix apt-transport-https
Cette commande installera notamment le logiciel « postfix ». Lors de l’installation de celui-ci prenez soin de choisir l’option « Site internet ».
Ces logiciels installés, nous allons maintenant ajouter le dépôt de GitLab à Raspbian pour pouvoir gérer plus facilement les mises à jour du logiciel.
Pour cela, nous allons commencer par ajouter les clefs du dépôt puis nous ajouterons le dépôt en tant que tel. Pour cela, lancez les commandes suivantes :
curl https://packages.gitlab.com/gpg.key | sudo apt-key add - sudo curl -o /etc/apt/sources.list.d/gitlab_ce.list "https://packages.gitlab.com/install/repositories/gitlab/raspberry-pi2/config_file.list?os=debian&dist=jessie" && sudo apt-get update
Ceci fait, nous allons pouvoir installer GitLab (Community Edition) en tant que tel et le configurer. Pour cela lancer la commande suivante :
sudo apt-get install gitlab-ce sudo gitlab-ctl reconfigure
Il ne vous reste plus qu’à vous connecter à l’adresse de votre Raspberry Pi depuis votre navigateur et à finir la configuration. Par défaut le login est « root » et le mot de passe « 5iveL!fe ».
Conclusion
Voilà, vous avez maintenant votre propre petit système GitHub like sur votre Raspberry Pi, en libre et indépendant de grands groupes !
Pour continuer dans l’auto-hebergement, faites donc un tour sur notre article dédié à OwnCloud ou encore sur notre article dédié à l’installation d’OSMC ou le choix de vos accessoires !
Gitlab > Github et de loin. Rien que la gestion ci/cd…
Bonjour,
Déjà merci pour le tuto en français, il est plus simple que celui de chez gitlab.
tout fois il me reste quelque inconnu sur l’installation global.
1 pendant l’installation de postfix, je ne sais pas si je dois rentrer mon email ou le nom du git, ou l’adresse du git.
2 Après il me manque un partie théorique sur gitlab pour comprendre comment gérer l’admin accès.
3 J’aimerai pouvoir partager mon raspi-git sur le reseau externe, mais vue que dans le reseau interne, en tapant L’ip je peux accéder directement a git, je ne sais pas si jai besoin d’un nginx ou un apach pour gérer les connexion sur la raspberry-git.
si oui avez-vous un exemple de configuration ?
en tout cas merci pour vos tuto.
Salut, là je n’ai rien sous la main pour répondre à toutes tes questions, désolé. Tu devrais demander sur le forum, tu trouveras probablement de l’aide.
Bonjour,
Je débute en raspberry et j’ai installé dernièrement Gitlab… finalement, j’ai opté pour un compte Bitbucket et je n’en ai donc plus besoin sur mon raspberry.
Seulement, je trouve facilement des tutos pour installer des choses, mais plus difficilement pour désinstaller.
Du coup, est-ce qu’il serait possible d’avoir des informations sur comment d’installer Gitlab, histoire de libérer de la place.
J’aimerais bien avoir à éviter de formater ma carte et tout ré-installer…
Merci d’avance.
Cdt
Bonjour,
Pour désinstaller une app il faut faire un apt purge gitlab-ce pour supprimer le paquet et les fichiers de conf. Les logs et fichiers de préférences sont conservés.
Personnellement, pas de compte root lors de l’installation. Après un petit tour sur internet, la commande:
sudo gitlab-rake gitlab:setup RAILS_ENV=production
Permet un fonctionnement dans un environnement production (-> google) et crée l’utilisateur root.
Hum. Faudrait remonter aux mainteneurs du package une erreur avec « sudo gitlab-ctl » reconfigure
Il vérifie que « stat –printf=’%F %U %04a’ /var/opt/gitlab/git-data » renvoie « directory git 0700 » alors que sur mon RPi par exemple, ça renvoie « répertoire git 0700″… c’est bête.
Je veux installer Gitlab sur un Raspberry en changeant le répertoire repositories.
Donc j’ai modifié le fichier de configuration /etc/gitlab/gitlab.rb en modifiant le git_data_dirs :
git_data_dirs({« default » => « /synology/lab/github »})
lorsque je lance la commande suivante :
gitlab-ctl reconfigure
Je me retrouve avec le message suivant :
* ruby_block[directory resource: /synology/lab/github] action run
================================================================================
Error executing action `run` on resource ‘ruby_block[directory resource: /synology/lab/github]’
================================================================================
Mixlib::ShellOut::ShellCommandFailed
————————————
Expected process to exit with [0], but received ‘1’
—- Begin output of stat –printf=’%U’ /synology/lab/github —-
STDOUT:
STDERR: stat: cannot stat ‘/synology/lab/github’: Permission denied
—- End output of stat –printf=’%U’ /synology/lab/github —-
Ran stat –printf=’%U’ /synology/lab/github returned 1
Je n’ai retrouvé aucune solution sur le net.
Avez vous une idée ?
Bonjour,
Je partirai sur un problème de droit d’accès sur le nouveau répertoire. As-tu essayé de les changer ?
Aussi es-tu passé sur le forum ? Quelqu’un a déjà du rencontre ce problème, et pourra donc t’aider.
Bonjour,
Je suis en train de réfléchir à acheter une Raspberry Pi 3 pour installer un GitLab dessus, et je souhaiterai savoir s’il n’y avait pas des problèmes de lenteur du site web?
Quand l’on regarde la configuration recommandée par le site GitLab, on peut voir qu’il faut au minimum 2G de RAM pour ne pas avoir de lenteur.
Bonjour,
lors de nos test, nous n’avons pas remarqué de ralentissement particulier. Aussi il existe un système très similaire à GitLab, Gogs, celui-ci se veut ultra léger, et répondra parfaitement à tes besoins !
Bonjour pour se connecter sur le repo apres on ne peut se connecter qu’en local ? via 192… etc ou on peut y acceder via internet ? Car j’aimerai pouvoir y acceder et ca ne marche pas via votre methode …
Salut,
Non pour accéder à la page depuis internet, tu devras suivre notre article prévu à cet effet !
Que pensez-vous d’utiliser un container docker pour l’utiliser directement sur raspberry ?
Salut, c’est possible, un lecteur avait d’ailleurs fait un article sur docker et la Raspberry Pi.
Bonjour,
Merci pour le tuto, par contre je n’arrives pas à configurer le port de gitlab ( 80 par défault).. une idée ?
Salut,
je t’encourages à aller reporter le problème sur notre tout nouveau forum. Tu trouveras sans doute plus rapidement une réponse !
Je vois pas l’intérêt… Un petit ubuntu server couplé à git devrait faire l’affaire ?
Désolé, j’ai cru comprendre github sur raspberry, j’avais pas bien lu.. 😀
En effet cela peut suffire, GitLab apporte juste une interface graphique semblable à celle de Github pour les plus néophytes.
Salut !
Donc ce tuto ne marche que pour la Pi 3 ?
Hugo
Bonjour,
Non, nous l’avons également testé sur la Raspberry Pi 2. GitLab fonctionne tout aussi bien sur celle-ci 🙂
On parle de la ram consommé par RoR ou pas, d’expérience sa vas avoir du mal a tourné sur un raspbery pi. je recommande plus tôt Gogs si on veut une jolie forge logiciel sur un raspbery pi, les performances sont bien meilleurs que cette ogre (très pratique au demeurant) qu’est GitLab.
Il faut avouer que niveau RAM, RoR n’est pas ce qui se fait de mieux (néanmoins, Ruby reste un superbe langage).
Nous ferons prochainement un article sur Gogs qui nous plaît beaucoup (excepter le nom).
Salut,
Sinon il y a Gogs qui est super léger en comparaison de gitlab.
Effectivement, nous ferons probablement bientôt un article dessus.
C’est plutôt un serveur Git et non pas GitHub …
C’est effectivement un serveur Git mais GitLab est un GitHub like qui apporte une interface graphique
Je suis plutôt d’accord avec Didier, Gitlab est une interface web au même titre que Github. 🙂
+1 avec Didier. C’est un serveur Git et non Github. Ok c’est un clône de Github en self-hosted mais cela reste un serveur Git. Beaucoup de personnes ne font pas la différence entre Git et Github. Le titre de l’article pourrait embrouiller les novices…