Hospedando vários repositórios (svn, hg, git)

8

Adquiri recentemente um servidor dedicado e preciso mover vários repositórios para ele de um serviço de hospedagem de controle de origem. Não tendo muita experiência em administração de servidores, não tenho ideia de como organizá-los de maneira eficaz. O que eu procuro -

  1. subdomínios svn.host.com, hg.host.com, git.host.com que serão raízes para os diferentes repositórios, por meio de chaves SSH
  2. criação fácil de novos repositórios
  3. autenticação usando a lista de usuários unix do servidor, mas com permissões em uma base por projeto, também opcional acesso público somente leitura para alguns dos repositórios

Infelizmente, qualquer termo de pesquisa que eu experimente no Google direciona-me para soluções hospedadas comerciais e não guias sobre como criar o meu próprio. Preciso de algo como uma solução hospedada simplificada, mas sem a necessidade de os usuários serem capazes de criar seus próprios repositórios.

Alguma sugestão, tutorial ou solução de script sobre onde começar a pesquisa? Uma solução de código aberto para uma interface administrativa para lidar com isso (ou pelo menos para alguns seria perfeita ...

    
por Kornel Kisielewicz 27.04.2011 / 21:46

5 respostas

6

Eu só uso o Git, então tentarei pelo menos ajudá-lo com isso:

Se você não encontrar problemas para administrar seus repositórios por meio da linha de comando, a gitosis deve funcionar muito bem.

Se você realmente precisa de uma interface web, você pode dar uma olhada em repo.or.cz ( link ) ou gitorioso ( link ). Repo.or.cz é mais feio, mas é muito mais fácil de instalar (gitorious é open-source, mas também é o software powering gitorious.org - eles não têm muito incentivo para escrever boas instruções)

Aqui está uma lista mais abrangente de opções: link

Qualquer uma dessas opções dará a você a fácil criação de novos repositórios.

Agora, uma palavra de cautela: você nunca deve, NUNCA, usar a lista de usuários do servidor unix para permissões de repositório. É fácil de se mexer, e os resultados são facilmente catastróficos (a gitosis usa uma configuração simples de arquivo e chaves ssh. Deve fazer o truque para você).

Outra coisa, não vejo por que você precisa de repositórios subversion, HG e Git. A maioria dos projetos usa apenas uma dessas opções. Cuidado para elaborar por quê?

    
por 27.04.2011 / 22:50
2

O SVN pode ser feito com o Apache WebDAV, em um vhost, usando a autenticação unix e as próprias ACLs de nível de usuário do subversion. Eu não sei nada sobre mercurial ou git, mas eu espero que eles possam ser ligados a DAV também.

    
por 27.04.2011 / 22:50
1

Quando você quiser usar o SSH , basicamente terá que restringir as chaves editando o arquivo authorized_keys no servidor. Para o Mercurial, as principais maneiras de fazer isso são:

  • Você pode usar o script contrib/hg-ssh para restringir comandos que as pessoas podem executar quando logados com o SSH. O arquivo contém um cabeçalho para explicar como usá-lo, mas você basicamente adiciona

    $ command="hg-ssh path/to/repo"
    

    na frente da chave no arquivo authorized_keys . Isso restringe a chave para que ela possa ser usada apenas para push e pull no repositório indicado.

  • Você também pode usar a ferramenta servidor mercurial de terceiros se desejar algo como < hito="http://progit.org/book/ch4-7.html"> gitois . Isso permite que você gerencie usuários e seus direitos de acesso editando arquivos em um repositório de administrador especial.

Veja o Wiki do Mercurial para ver outras ferramentas semelhantes para o SSH.

Para HTTP , existem

  • O script% CG_de% (Fast) CGI ou WSGI incorporado que acompanha o Mercurial. Isso lida com push e pulls, mas não permite a criação de novos repositórios - efetue login no servidor para isso.

  • O projeto RhodeCode de terceiros. Isso dá a você um front-end da web do tipo Bitbucket para o Mercurial, onde você pode configurar os usuários e seus direitos de acesso. Ele suporta autenticação LDAP, para que você possa conectá-lo ao seu banco de dados de usuários Unix existente.

Veja a página nos repositórios de publicação para obter mais informações.

    
por 24.12.2011 / 18:12
1

O SCM-Manager pode ser perfeito para as suas necessidades:

The easiest way to share and manage your Git, Mercurial and Subversion repositories over http.

  • Very easy installation
  • No need to hack configuration files, SCM-Manager is completely configureable from its Web-Interface
  • No Apache and no database installation is required
  • Central user, group and permission management
  • Out of the box support for Git, Mercurial and Subversion
  • Full RESTFul Web Service API (JSON and XML)
  • Rich User Interface
  • Simple Plugin API
  • Useful plugins available ( f.e. Ldap-, ActiveDirectory-, PAM-Authentication)
    
por 08.02.2012 / 08:01
0

RhodeCode é uma ferramenta de gerenciamento / navegador de repositório de código aberto com um servidor push / pull, LDAP / AD, sistema de permissões e texto completo pesquisa.

Você pode vê-lo ao vivo aqui: link

    
por 09.06.2012 / 13:21