web-dev-qa-db-fra.com

Configurer un serveur git

J'ai récemment installé ubuntu-server sur Amazon EC2. Je voudrais l'utiliser comme mon serveur git, afin de pouvoir y stocker mes dépôts.

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

57
Pawełkowy

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

Git peut être sans serveur, vous initialisez votre référentiel et vous y accédez depuis distant 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

Vérifiez ceci 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 authentification SSH .

38
Huygens

J'utilise Gitolite pour toutes mes configurations de serveur Git, ce qui permet une granularité de sécurité d'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 cette nature "facile à installer", il a également 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 celles-ci sur quelque chose comme Gitolite.

15
Marco Ceppi

J'aime gitolite . Le livre Pro Git a un section mais je vous recommande de lire le livre en entier.

En ce qui concerne votre exigence d'utilisateurs multiples:

Gitolite vous permet de spécifier des autorisations non seulement par référentiel (comme le fait Gitosis), mais également par noms de branche ou de balise dans chaque référentiel. Autrement dit, vous pouvez spécifier que certaines personnes (ou groupes de personnes) ne peuvent transmettre que certains "ref" (branches ou tags) mais pas d'autres.

9
Li Lo

http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way peut être légèrement modifié pour répondre à vos besoins ... a tutoriel similaire http://blog.agdunn.net/?p=277 .

7
RobotHumans

Suivez certainement la documentation officielle: https://help.ubuntu.com/community/Git (section Configuration de Git et de la gestion de projet )

6
chris

La solution qui me convenait le mieux é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à l'intérieur de l'id
  • 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 de 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 and 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 fini. 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 à l'aide de Sudo htpasswd. N'oubliez pas de ne pas utiliser le commutateur -c lors de l'ajout d'utilisateurs, car l'ancien fichier sera supprimé.

4
Pawełkowy

J'aime aussi l'approche de gitolite pour la gestion des utilisateurs et la sécurité. J'ai un AMI de serveur Git + gitolite pour EC2 en cours de test. 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 existe une courbe d'apprentissage pour gitolite et EC2 si vous ne les connaissez pas bien.

3
Eric Hammond

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

J'ai un article howto sur mon site

3
realcnbs