Serveur Git sur un NAS Synology
Git est un outil de SCM (Source Code Management), il permet simplement de sauvegarder des fichiers et leurs différentes versions au cours du temps, mais également de faciliter le travail collaboratif des développeurs.
Installation d'un serveur Git sur un NAS Synology
Préparation de l'intallation
- créer un nouvel utilisateur git sur le DSM, ce qui permettera les push coté clients via SSH
- ajouter les clés SSH publiques des clients (ceux qui vont se connecter aux répos) dans
~/.ssh/authorized_keys
de ce nouvel utilisateur, pour permettre l'authentification lors des commandesgit
- créer un dossier où seront stockés les repos par ex:
/volume1/git_repos
- puis appliquer les permissions adequats:
chown git:git-users /volume1/git_repos && chmod g+s /volume1/git_repos
Installation de l'application Synology
Depuis le package center du DSM, installation de l'application git. Au niveau des permissions, les users du groupe Admin auront accès d'office. Rebooter le NAS pour terminer la procédure d'installation.
Initialisation du repo Git
Pour pouvoir utiliser git il faut initialiser les 2 cotés client et serveur.
Initialisation git coté Serveur
Création d'un dépot Git Se logger sur le NAS en ssh puis initialiser un repo git comme ceci :
sudo git init --bare --shared /volume1/git_repos/newgitrepo.git
sudo chown -R root:git-users /volume1/git_repos/newgitrepo.git
Initialisation git coté client
Pour pouvoir effectuer un git push
avec un client git, il faut bien entendu avoir initialisé un repo git local avec un git init
puis ajouter le repo remote :
git remote add dsm ssh://mon_username@mon_servername/volume1/git_repos/newgitrepo.git
git remote -v
git push
ne fonctionnera pas simplement la 1ère fois sans spécifier l'option --set-upstream
, car le système ignore qu'on souhaite pousser sur la branche master.
git push --set-upstream mon_servername master
Liens
- documentation Synology de l'installation de git
- doc officielle git-scm en français
- la magnifique documentation git d'Atlassian
- introduction sur graphikart
- liste d'erreurs fréquement rencontrées