Configurer SME Server pour travailler avec git sur HTTPS

Configurer SME Server pour travailler avec git sur HTTPS

Il y a quelques semaines, je vous avais parlé de git sur un serveur de fichiers, bien au chaud sur le réseau local pour héberger vos projets privés.

Mais le jour où vous sortez de chez vous, une fois vos yeux habitués à cette lumière particulière que celle du soleil, et à cette absence vertigineuse de plafond, comment travailler de nouveau sur vos projets ?

C’est ce que nous allons voir, en l’appliquant à SME Server.
Et consultez.

Préparatifs

Sur votre SME Server, créez une ibay. Pour l’exemple, nommons-la simplement : git.
Activez SSL si nécessaire et choisissez de protéger le repository par mot de passe.

Les repository git seront dans le dossier html de cet ibay, et profiteront de ses fonctionnalités, par exemple la sauvegarde, la gestion (succincte mais convenable) des droits, HTTPS, …

En gros, avec le même compte (celui de l’ibay donc), vous pouvez accéder à l’ensemble des repositorys de l’ibay, en lecture et en écriture.

Et si c’est nécessaire, vous pouvez créer simplement plusieurs ibays, qui correspondront chacune à un pool de dépôts, regroupés par équipe, client, gros projet, …

Installer l’extension WebDAV pour SME Server

Cette extension installe le module DAV pour Apache.

yum install smeserver-mod_dav --enablerepo=smecontribs

Elle permet aussi d’activer WebDAV sur les ibays concernées.

A ce jour, un petit souci existe : une fois WebDAV activé sur l’ibay, elle devient accessible sans authentification.
Ou je n’ai pas tout compris.

Alors je préfère ajouter ma propre configuration pour les ibays concernées.

Configuration

Il s’agit de créer un template pour activer WebDAV sur l’ibay en question dans httpd.conf.

Création du template :

mkdir -p /etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/
/etc/e-smith/templates-custom/etc/httpd/conf/httpd.conf/95AddDavToRepo

et copiez cette déclaration :

<Directory /home/e-smith/files/ibays/git/html>
	DAV On
	AllowOverride None
	Options +Indexes
	IndexOptions FancyIndexing IconsAreLinks
</Directory>

Pensez à changer le nom de l’ibay si nécessaire.

Puis générez le fichier de configuration d’Apache et rechargez le service:

expand-template /etc/httpd/conf/httpd.conf
/etc/init.d/httpd-e-smith reload

Notez que vous pouvez ajouter ce code autant de fois que nécessaire, pour activer WebDAV sur plusieurs ibays.

Vous pouvez aussi redéfinir les autorisations avec Require et même gérer les droits d’accès avec <Limit>.

Cloner un repository local pour le serveur

Comme nous l’avons déjà vu :

git clone --bare repo repo.git

Et pour être sûr :

cd repo.git
git update-server-info

Copier ensuite le dossier dans l’ibay, en passant par le serveur de fichiers, ou… par WebDAV.

A partir de là, vous pouvez cloner le dépôt et pousser le modification à l’adresse https://<uri>/<nom de l'ibay>/<chemin du dépôt>.git.

A propos de SSL

Si vous ne disposez que d’un certificat SSL auto signé, il est nécessaire de désactiver la vérification, soit pour le projet :

git config http.sslVerify false

Soit globalement :

git --global config http.sslVerify false

Si vous ne désactiver pas la vérification globalement, pour cloner :

git -c http.sslVerify=false clone https://host/git/repo.git

Un dernier détail

Pour pouvoir pusher sur HTTP, j’ai dû mettre à jour mon Git. Voilà.

Le mot de la fin

Cette solution est simple à mettre en place, souple à utiliser, mais sachez toutefois qu’il existe une extension qui permet de gérer les dépôts git directement dans le server manager de SME Server.

Cette solution offre un niveau plus poussé des permissions, mais pousse à créer les dépôts manuellement dans le manager. Ce n’est certainement pas un inconvénient, mais ça ne collait pas à mon besoin.

L'illustration de cet article est une image sous licence CC BY-SA 3.0 par Jason Ruck

Cet article vous a été utile ? Partage it !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Si vous le souhaitez, renseignez le champ 'Nom' de cette façon : 'VotreNom@VotreMotClef' pour obtenir une ancre optimisée pour les moteurs de recherche.