Un répertoire GIT privé avec un NAS Synology

Vous travaillez avec GIT pour gérer vos projets, voici un rapide aperçu pour configurer un répertoire GIT privé sur votre Diskstation.

Configuration du NAS

Créez le dossier partagé

Connectez-vous à l’interface du DiskStation et dans le panneau de configuration, créez un nouveau dossier partagé que vous pouvez nommer repos.

Dans la partie Permissions, indiquez les utilisateurs ayant le droit d’accéder à ce dossier. Si vous comptez installer une interface web, comme Gitlist (cf. ci-dessous), dans les permissions de groupe autorisez le groupe http à accéder en lecture/écriture.

DiskStation Git folder permissions

Installer le Package Git

Installez le Package Git depuis le Centre de Paquets de votre NAS Synology, ce paquet permettra d’autoriser l’accès à certaines commandes du Shell nécessaires à l’utilisation de GIT pour certains utilisateurs.

Activer SSH

Si ce n’est déjà fait, activer le service SSH dans le panneau de configuration

Accès par clé privée au Diskstation

Sur votre ordinateur copier la clé publique RSA situé dans le dossier .ssh de votre dossier utilisateur.

Connecter vous au NAS avec le terminal, et coller cette clé dans le fichier :

1
/volume1/homes/VOTRE_NOM/.ssh/authorized_keys

Si le dossier .ssh n’existe pas, crée-le.

Cela permettra d’accéder au NAS sans authentification par mot de passe et de façon automatique et sécurisé.

Sur votre ordinateur

Configurer un nouvel host pour SSH

Pour vous permettre d’accéder au répertoire GIT via SSH sans avoir à entrer le nom d’utilisateur et l’adresse IP de votre Diskstation, vous pouvez configurer un HOST sur votre machine.
Cela aura également l’avantage de centraliser ces paramètres en vue d’une future modification, mais également de masquer, l’adresse IP et votre nom d’utilisateur des projets GIT clonés.

Pour cela, éditez le fichier config se trouvant dans le dossier .ssh de votre dossier utilisateur.

1
2
3
4
5
6
vi ~/.ssh/config
# Et entrez les informations suivantes
Host GitStation
user admin
hostname 192.168.2.100
port 22

À partir de là, en tapant uniquement le nom donné vous serez automatiquement connecté au diskstation et avec le bon utilisateur.

1
ssh GitStation

Un raccourci pour cloner les projets GIT du NAS

Pour pouvoir cloner un répertoire se trouvant sur le NAS, sans avoir à chercher le nom du dossier du projet et saisir l’URL complète vers son répertoire, voici une petite astuce à ajouter dans votre fichier ~/.bash_profile

Depuis un terminal, vous aurez juste à saisir gitstation_clone pour obtenir une liste des répertoires et saisir le nom de la destination (ou pas) pour cloner le projet GIT sur votre ordinateur.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
gitstation_clone() {
PS3='Quel répertoire Git souhaitez-vous cloner ? '
select gitrep in $(ssh GitStation 'ls /volume1/repos/' | grep '.git') "Cancel"
do
if [ $opt = 'Cancel' ]; then
break
else
clear
if [ "x$gitrep" = "x" ]; then break; fi
echo "Vous avez sélectionné : $gitrep"
read -p "Nom du dossier de destination : " gitdest
git clone ssh://GitStation/volume1/repos/$gitrep $gitdest
fi
break
done
}
1
2
3
4
5
6
7
8
9
MacBookPro:~ dom$ gitstation_clone
1) myAwesomeProject.git
2) testprojet2.git
3) Cancel
Quel répertoire Git souhaitez-vous cloner ? 1
Vous avez sélectionné : myAwesomeProject.git
Nom du dossier de destination : myAwesomeProject
Cloning into 'myAwesomeProject'...
Checking connectivity... done.

Créer un projet GIT sur le NAS

Vous pouvez créer le dossier sur le serveur en montant le dossier partagé dans le Finder, ou en vous connectant en SSH au NAS.

Une fois dans le dossier partagé «repos» avec le terminal saisir cette commande pour initialisé un nouveau projet GIT.

1
git init --bare myAwesomeProject.git

Si vous avez l’intention d’accéder à ce Repo Git depuis plusieurs comptes utilisateur (différents identifiants) :

1
git init --bare --shared myAwesomeProject.git

Vous pourrez ensuite cloner ce répertoire sur votre ordinateur pour travailler dessus, soit avec le script ci-dessus (gitstation_clone) soit en tapant :

1
git clone ssh://GitStation/volume1/repos/myAwesomeProject.git

Et si vous avez déjà créer un projet local et initialiser ce projet avec la commande git init, vous pouvez mettre à jour l’url du repo sur le serveur avec la commande :

1
2
3
4
git remote -v
git remote add origin ssh://GitStation/volume1/repos/myAwesomeProject.git
# ou pour modifier
git remote set-url origin ssh://GitStation/volume1/repos/myAwesomeProject.git

Installation de GitList

GitList une fois installé sur votre Diskstation vous permettra d’accéder à une interface pour lister les projets se trouvant sur le Diskstation, pour l’installer c’est très simple.

Dans un premier temps, télécharger l’application GitList à l’adresse suivante gitlist.org, et copier ce dossier dans votre dossier partagé web du NAS.

Dupliquer le fichier config.ini et indiquez où se trouve vos projets GIT sur le NAS :

1
repositories[] = '/volume1/repos/' ; Path to your repositories

PHP : open_basedir

Ensuite créer un dossier cache à la racine du répertoire GitList, et chmod 777

Pour finir, et afin que GitList puisse accéder au dossier partagé contenant vos projets GIT, il faut modifier le paramètre open_basedir de PHP.
Pour celà dans la rubrique Services Web du panneau de configuration, et dans Paramètres PHP, cliquez sur Personnaliser PHP open_basedir et ajouter ceci à la fin :/volume1/repos

Une petite icône pour le volume

Et enfin, voici une jolie petite icône afin de personnaliser votre dossier fraichement crée qui contiendra vos futurs projets GIT privés!