Configurando um servidor git

58

Recentemente, configurei o ubuntu-server no Amazon EC2. Eu gostaria de usá-lo como meu servidor git, então eu poderia armazenar meus repositórios lá.

Então, onde posso encontrar algumas instruções detalhadas de como configurar o git no servidor Ubuntu? Todas essas chaves SSH e coisas assim, vários usuários, etc.

    
por Paweł Karpiński 11.11.2010 / 12:42

8 respostas

37

Você pode usar o tutorial para instalar um servidor Git como proposto pelo aking1012

O Git pode ser sem servidor você inicia seu repositório e então você o acessa de remoto via SSH. Então instruções como essa no Ubuntu Server devem fazer isso:

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

Por fim, instale o SSH no seu servidor:

sudo apt-get install ssh-server

Agora, você deve configurar o SSH para protegê-lo.

É hora de colocar seu projeto online (os dados que você já tem em sua máquina de desenvolvimento):

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

E agora você pode começar a clonar por aí. Você vai na sua máquina de desenvolvimento:

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

Verifique este excelente recurso no Git .

E para gerar suas chaves ssh para uma autenticação mais segura, leia este artigo sobre autenticação SSH .

    
por Huygens 11.11.2010 / 22:30
15

Para todas as minhas configurações de servidor Git, eu uso Gitolite , que permite uma granularidade de segurança de acesso "por ramo". A configuração é bastante simples se você estiver fazendo isso em um servidor remoto, é tão fácil quanto executar um script interativo. Além desta natureza "fácil de configurar", também tem um pacote em Natty e Maverick

sudo apt-get install gitolite

Isso não fornecerá uma interface web como o Github, ou o Gitweb - mas você pode facilmente configurá-los e instalá-los em cima de algo como o Gitolite.

    
por Marco Ceppi 07.02.2011 / 15:46
9

Eu gosto de gitolite . O livro Pro Git tem uma seção , mas eu recomendo ler o livro inteiro.

Quanto ao requisito de vários usuários:

  

Gitolite permite que você especifique   permissões não apenas por repositório   (como a gitosis faz), mas também   nomes de ramificação ou tag dentro de cada   repositório. Isto é, você pode especificar   que certas pessoas (ou grupos de   pessoas) só pode empurrar certos "refs"   (ramos ou tags), mas não outros.

    
por Li Lo 12.11.2010 / 17:59
7

link pode ser ligeiramente modificado para atender aos seus propósitos ... um tutorial semelhante link .

    
por RobotHumans 11.11.2010 / 13:38
6

Definitivamente, siga a documentação oficial: link (seção Configurando Git e gerenciamento de projetos )

    
por chris 07.02.2011 / 16:25
4

A solução que funcionou melhor para mim foi configurar o WebDAV.

  • sudo a2enmod sudo dav_fs

  • sudo a2enmod dav

  • adicione um novo arquivo a /etc/apache2/sites-available e nomeie-o, por exemplo, git.yourserver.com . Edite-o e adicione as seguintes linhas:

<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>

  • crie o diretório /var/www/git.yourserver.com e o diretório repos dentro do id
  • sudo chown www-data /var/www/git.yourserver.com/repos
  • sudo htpasswd -c /var/www/git.yourserver.com/password.dav user_login e insira a senha para o usuário denominado user_login
  • sudo chown root:www-data /var/www/git.yourserver.com/password.dav
  • sudo chmod 640 /var/www/git.yourserver.com/password.dav

Agora, sudo a2ensite git.yourserver.com e sudo service apache2 restart .

  • Insira /var/www/git.yourserver.com/repos e crie o diretório, por exemplo, myrepo.git
  • cd myrepo.git
  • git --bare init
  • git update-server-info

Agora, saia do seu servidor remoto e vá para o diretório local no qual deseja editar seus arquivos.

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

e você terminou. Se você quiser enviar suas alterações confirmadas para o servidor:

git push origin master

Você pode criar quantos usuários quiser usando sudo htpasswd . Lembre-se de não usar a opção -c ao adicionar mais usuários, porque o arquivo antigo será excluído.

    
por Paweł Karpiński 16.11.2010 / 16:25
3

Eu também gosto da abordagem gitolite para gerenciar usuários e segurança. Eu tenho um servidor Git + gitolite AMI para EC2 atualmente sendo testado. Sinta-se à vontade para experimentar; documentação está disponível aqui:

  

Servidor Git Alestic

Usando essa abordagem, você pode ter um servidor Git central com repositórios privados em execução em questão de minutos. Existe uma curva de aprendizado para o gitolito e o EC2 se você não estiver familiarizado com eles.

    
por Eric Hammond 15.04.2011 / 23:13
3

É muito fácil de conseguir com o gitolite . Em menos de uma hora você terá um servidor git multiusuário configurável e seguro.

Eu tenho um artigo sobre como fazer meu site

    
por realcnbs 11.01.2011 / 23:41

Tags