Configurer un serveur git

58

J'ai récemment installé ubuntu-server sur Amazon EC2. Je voudrais l'utiliser comme serveur git, pour pouvoir y stocker mes repos.

Alors, où puis-je trouver des instructions détaillées sur la configuration de git sur un serveur Ubuntu? Toutes ces clés SSH et des choses comme ça, plusieurs utilisateurs, etc.

    
posée Paweł Karpiński 11.11.2010 - 12:42
la source

8 réponses

37

Vous pouvez utiliser le tutoriel pour installer un serveur Git en tant que aking1012 proposé vous ou vous pourriez simplement installer le serveur SSH sur votre instance EC2 (il serait probablement sage de le sécuriser et de changer le port par défaut).

Git peut être sans serveur, vous initiez votre référentiel et vous l’accédez à distance via SSH. Donc, des instructions comme celle-ci sur le serveur Ubuntu devraient le faire:

GIT_DIR=project.git git init  
cd project.git  
git --bare update-server-info  
cp hooks/post-update.sample hooks/post-update

Enfin, installez SSH sur votre serveur:

sudo apt-get install ssh-server

Maintenant, vous devez configurer SSH pour le sécuriser.

Il est temps de mettre votre projet en ligne (les données que vous avez déjà sur votre machine de développement):

git push ssh://<username>@<remote-git-hostname>/path/to/project.git master

Et maintenant, vous pouvez commencer à cloner. Vous allez sur votre machine de développement:

git clone ssh://<username>@<remote-git-hostname>/path/to/dir.git

Consultez cette excellente ressource sur Git .

Et pour générer vos clés ssh pour une authentification plus sûre, vous pouvez lire cet article sur l'authentification SSH .

    
réponse donnée Huygens 11.11.2010 - 22:30
la source
15

Pour toutes mes configurations de serveur Git, j'utilise Gitolite , ce qui permet une granularité de sécurité de l'accès "par branche". L'installation est assez simple si vous le faites sur un serveur distant, c'est aussi simple que d'exécuter un script interactif. En plus de ce "facile à installer", il a aussi un paquet dans Natty et Maverick

sudo apt-get install gitolite

Cela ne fournira pas une interface Web comme Github ou Gitweb - mais vous pouvez facilement configurer et installer ceux qui se trouvent au-dessus de quelque chose comme Gitolite.

    
réponse donnée Marco Ceppi 07.02.2011 - 15:46
la source
9

J'aime gitolite . Le livre Pro Git contient une section , mais je vous recommande de lire l'intégralité du livre.

En ce qui concerne les besoins de plusieurs utilisateurs:

  

Gitolite vous permet de spécifier   autorisations non seulement par référentiel   (comme le fait Gitosis), mais aussi par   noms de branche ou de tag dans chaque   dépôt. C'est-à-dire que vous pouvez spécifier   que certaines personnes (ou groupes de   les gens) ne peuvent que pousser certains "refs"   (branches ou tags) mais pas les autres.

    
réponse donnée Li Lo 12.11.2010 - 17:59
la source
7

lien peut être légèrement modifié pour répondre à vos besoins ... un tutoriel similaire lien .

    
réponse donnée RobotHumans 11.11.2010 - 13:38
la source
6

Suivez absolument la documentation officielle: lien (section Configuration de Git et de la gestion de projet )

    
réponse donnée chris 07.02.2011 - 16:25
la source
4

La solution qui fonctionnait le mieux pour moi était la configuration de WebDAV.

  • sudo a2enmod sudo dav_fs

  • sudo a2enmod dav

  • ajoutez un nouveau fichier à /etc/apache2/sites-available et nommez-le, par exemple, git.yourserver.com . Modifiez-le et ajoutez les lignes suivantes:

<VirtualHost *:80>

DocumentRoot /var/www/git.yourserver.com/repos
ServerName git.yourserver.net
Options Indexes FollowSymLinks MultiViews

<Location />
    DAV On
    AuthType Basic
    AuthName "git repos"
    AuthUserFile /var/www/git.yourserver.net/password.dav
    Require valid-user
</Location>

</VirtualHost>

  • créer le répertoire /var/www/git.yourserver.com et le répertoire repos dans l'identifiant
  • sudo chown www-data /var/www/git.yourserver.com/repos
  • sudo htpasswd -c /var/www/git.yourserver.com/password.dav user_login et entrez le mot de passe pour l'utilisateur nommé user_login
  • sudo chown root:www-data /var/www/git.yourserver.com/password.dav
  • sudo chmod 640 /var/www/git.yourserver.com/password.dav

Maintenant, sudo a2ensite git.yourserver.com et sudo service apache2 restart .

  • Entrez /var/www/git.yourserver.com/repos et créez un répertoire, par exemple, myrepo.git
  • cd myrepo.git
  • git --bare init
  • git update-server-info

Maintenant, déconnectez-vous de votre serveur distant et accédez au répertoire local dans lequel vous souhaitez modifier vos fichiers.

git clone http://user_login:[email protected]/myrepo.git

et vous avez terminé. Si vous souhaitez envoyer vos modifications validées au serveur:

git push origin master

Vous pouvez créer autant d’utilisateurs que vous le souhaitez en utilisant sudo htpasswd . N'oubliez pas de ne pas utiliser -c switch lorsque vous ajoutez plus d'utilisateurs, car l'ancien fichier sera supprimé.

    
réponse donnée Paweł Karpiński 16.11.2010 - 16:25
la source
3

J'aime aussi l'approche gitolite pour gérer les utilisateurs et la sécurité. Je teste actuellement un serveur AMI Gitolite Gitolite pour EC2. N'hésitez pas à faire un essai; la documentation est disponible ici:

  

Alestic Git Server

En utilisant cette approche, vous pouvez avoir un serveur Git central avec des référentiels privés fonctionnant en quelques minutes. Il y a une courbe d'apprentissage pour la gitolite et l'EC2 si vous ne les connaissez pas.

    
réponse donnée Eric Hammond 15.04.2011 - 23:13
la source
3

Il est très facile à réaliser avec gitolite . En moins d'une heure, vous disposerez d'un serveur multi-utilisateur git facilement configurable et sécurisé.

J'ai un article sur le comment sur mon site

    
réponse donnée realcnbs 11.01.2011 - 23:41
la source

Lire d'autres questions sur les étiquettes