Recentemente, adquiri um servidor dedicado e preciso mover vários repositórios para ele a partir de um serviço de hospedagem de controle de origem. Tendo pouca experiência em administração de servidores, no entanto, não tenho idéia de como organizá-lo efetivamente. O que eu procuro -
- subdomínios svn.host.com, hg.host.com, git.host.com que serão raízes dos diferentes repositórios, por meio de chaves SSH
- fácil criação de novos repositórios
- autenticação usando a lista de usuários do servidor unix, mas com permissões por projeto, também acesso público somente leitura opcional 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 para orientar sobre como criar minhas próprias. Preciso de algo como uma solução hospedada simplificada, mas sem a necessidade de que os usuários possam criar seus próprios repositórios.
Alguma sugestão, tutorial ou solução com script sobre por 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 perfeito ...
O SVN pode ser feito com o Apache WebDAV, em um vhost, usando a autenticação unix e as ACLs no nível do usuário do subversion. Não sei nada sobre mercurial ou git, mas espero que eles também possam estar ligados ao DAV.
fonte
Quando você deseja usar o SSH , basicamente precisa restringir as chaves editando o
authorized_keys
arquivo no servidor. Para a Mercurial, as principais maneiras de fazer isso são:Você pode usar o
contrib/hg-ssh
script para restringir os comandos que as pessoas podem executar ao efetuar login com SSH. O arquivo contém um cabeçalho para explicar como usá-lo, mas você basicamente adicionana frente da chave no
authorized_keys
arquivo. Isso restringe a chave para que ela possa ser usada apenas como push e pull no repositório indicado.Você também pode usar a ferramenta de servidor mercurial de terceiros, se quiser algo como gitois . Isso permite que você gerencie usuários e seus direitos de acesso editando arquivos em um repositório de administração especial.
Veja o wiki do Mercurial para outras ferramentas similares para SSH.
Para HTTP , existem
O
hgweb
script CGI ou WSGI integrado (Rápido) que acompanha o Mercurial. Isso lida com empurra e puxa, mas não permite a criação de novos repositórios - faça o login no servidor para isso.O projeto RhodeCode de terceiros . Isso fornece um front-end da Web semelhante ao Bitbucket para Mercurial, onde você pode configurar 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 de publicação de repositórios para obter mais informações.
fonte
O SCM-Manager pode ser perfeito para suas necessidades:
fonte
O RhodeCode é um navegador de repositório de código aberto / ferramenta de gerenciamento com um servidor push / pull integrado, LDAP / AD, sistema de permissões e pesquisa de texto completo.
Você pode vê-lo ao vivo aqui: http://demo.rhodecode.org/
fonte