Neste tutorial vou abordar a configuração do Gitweb.
O Gitweb é uma interface web Git. Ele é escrito em Perl e pode ser usado como um script CGI, ou como um script mod_perl. Com ele é possível navegar em um repositório git (ou um conjunto de repositórios git) utilizando um navegador web.
Passo 1 – No servidor git dentro do diretório gitolite-admin será executado o comando git pull para baixar a última versão do repositório.
git@ba-vm-git-01:~$ cd gitolite-admin/
git@ba-vm-git-01:~/gitolite-admin$ ls conf keydir git@ba-vm-git-01:~/gitolite-admin$ cd conf/
git@ba-vm-git-01:~/gitolite-admin/conf$ git pull
Passo 2 – Após a atualização o próximo passo será alterar o arquivo de permissão para ajustar as permissões para os serviços do gitweb.
git@ba-vm-git-01:~/gitolite-admin/conf$ vim permissoes.conf
@admins = server-git evandro www-01 @read = pve @web = daemon gitweb
Passo 3 – Ajustando o arquivo gitolite.conf.
git@ba-vm-git-01:~/gitolite-admin/conf$ vim gitolite.conf
include "permissoes.conf" repo gitolite-admin RW+ = server-git RW+ = @admins R = @read repo dhcpweb RW+ = @admins R = @web repo testing RW+ = @all
Passo 4 – Após as alterações nos arquivos, será necessário aplicar o commit.
git@ba-vm-git-01:~/gitolite-admin/conf$ git commit -a -m "GitWeb" [master 3944de0] GitWeb 2 files changed, 3 insertions(+), 1 deletion(-)
Passo 5 – Subindo o repositório novamente para o servidor.
git@ba-vm-git-01:~/gitolite-admin/conf$ git push ]Counting objects: 9, done. Compressing objects: 100% (5/5), done. Writing objects: 100% (5/5), 471 bytes, done. Total 5 (delta 1), reused 0 (delta 0) To git@ba-vm-git-01:gitolite-admin 18ce575..3944de0 master -> master
Passo 6 – Instalando os pacotes apache2, gitweb e git-daemon-run no servidor git.
root@ba-vm-git-01:~# apt-get install apache2 gitweb git-daemon-run
Passo 7 – Adicionando o apache no grupo do user git.
root@ba-vm-git-01:~# usermod -a -G git www-data root@ba-vm-git-01:~# id www-data uid=33(www-data) gid=33(www-data) grupos=33(www-data),106(git)
Passo 8 – Ajustando o arquivo gitweb.conf
root@ba-vm-git-01:~# vim /etc/gitweb.conf
$projectroot = "/var/cache/git"; para $projectroot = "/home/git/repositories";
#$projects_list = $projectroot; para $projects_list = "/home/git/projects.list";
Passo 9 – Ajustando o arquivo run
root@ba-vm-git-01:~# vim /etc/sv/git-daemon/run
#!/bin/sh exec 2>&1 echo 'git-daemon starting.' exec chpst -ugitdaemon \ "$(git --exec-path)"/git-daemon --verbose --reuseaddr \ --base-path=/var/cache /var/cache/git
Para
#!/bin/sh exec 2>&1 echo 'git-daemon starting.' exec chpst -ugitdaemon \ "$(git --exec-path)"/git-daemon --verbose --reuseaddr \ --base-path=/home/git/repositories /home/git
Passo 10 – Iniciando o git-daemon com o comando sv.
root@ba-vm-git-01:~# sv restart git-daemon ok: run: git-daemon: (pid 4971) 0s
root@ba-vm-git-01:~# ps aux | grep git root 2146 0.0 0.3 32268 1656 pts/0 S 15:11 0:00 sudo su - git root 2147 0.0 0.2 36000 1364 pts/0 S 15:11 0:00 su - git git 2148 0.0 0.4 20308 2132 pts/0 S+ 15:11 0:00 -su root 4617 0.0 0.0 160 4 ? Ss 15:15 0:00 runsv git-daemon gitlog 4618 0.0 0.0 180 4 ? S 15:15 0:00 svlogd -tt /var/log/git-daemon 105 4971 0.0 0.1 11224 832 ? S 15:23 0:00 /usr/lib/git-core/git-daemon --verbose --reuseaddr --base-path=/home/git/repositories /home/git root 4974 0.0 0.1 8756 884 pts/1 S+ 15:23 0:00 grep git
Passo 11 – Reiniciando o apache.
root@ba-vm-git-01:~# /etc/init.d/apache2 restart [ ok ] Restarting web server: apache2 ... waiting .
Passo 12 – Acessando o gitweb pelo navegador web.