Skip to content

Latest commit

 

History

History
66 lines (50 loc) · 3.13 KB

File metadata and controls

66 lines (50 loc) · 3.13 KB

Git Daemon

Em seguida, configuraremos um daemon que disponibiliza repositórios sobre o protocolo ``Git''. Esta é uma escolha comumpara acesso rápido e sem autenticação para seus dados Git. Lembre-se de que, como não é um serviço autenticado, tudo que você disponibiliza através desse protocolo é público dentro da sua rede.

Se você estiver executando isso em um servidor fora do seu firewall, deve somente ser usado para projetos que sejam publicamente visíveis. Se o servidor que você está executando isso estiver dentro do seu firewall, você pode usá-lo para projetos que um grande número de pessoas ou computadores (integração contínua ou servidores de compilação) tem acesso de apenas leitura, quando você não quer adicionar uma chave SSh para cada um.

Em todo caso, o protocolo Git é relativamente fácil de configurar. Basicamente você precisa executar esse comando em modo daemon:

$ git daemon --reuseaddr --base-path=/srv/git/ /srv/git/

--reuseaddr permite o servidor reiniciar sem esperar que conexões antigas expirem, a opção --base-path permite pessoas clonar o projeto sem especificar o caminho completo e o caminho no final indica ao daemon Git onde procurar por repositórios para exportar. Se você estiver executando um firewall, você tamém precisará abrir uma conexão na porta 9418 no servidor onde está configurado o serviço.

Você pode executar esse processo como daemon de várias maneiras, dependendo do sistema operacional que você está executando. Em uma máquina Ubuntu, você pode usar um script Upstart. Portanto, no seguinte arquivo:

/etc/init/local-git-daemon.conf

Você insere esse script:

start on startup
stop on shutdown
exec /usr/bin/git daemon \
    --user=git --group=git \
    --reuseaddr \
    --base-path=/srv/git/ \
    /srv/git/
respawn

Por motivos de segurança, é fortemente recomendado ter esse serviço executando como um usuário com permissões de somente leitura para os repositórios - você pode fazer isso facilmente criando um novo usuário 'git-ro' e executar o serviço como ele. Para simplificar, nós vamos simplesmente executar com o mesmo usuário 'git' que está executando o git-shell.

Quando você reiniciar sua máquina, seu serviço vai iniciar automaticamente e reiniciar caso seja interrompido. Para executá-lo sem precisar reiniciar, você pode executar o seguinte comando:

$ initctl start local-git-daemon

Em outros sistemas, você pode querer usar o xinetd, um script no seu sistema sysvinit ou algo similar - contanto que você tenha esse comando em segundo plano e possa monitorá-lo de alguma forma.

Em seguida, você precisa dizer ao Git quais repositórios permitir acesso não autenticado a serviços do servidor Git. Você pode fazer isso em cada repositório criando um arquivo chamado git-daemon-export-ok.

$ cd /path/to/project.git
$ touch git-daemon-export-ok

A presença desse arquivo diz ao Git que está tudo bem servir esse projeto sem autenticação.