Faz tempo que eu desejava instalar uma interface web para os repositórios Git do CEFALA, que se encontram na VM git.cefala.org
. Dentre as inúmeras interfaces disponíveis, acabei optando pelo cgit, que reúne as vantagens de ser leve (escrito em C), eficaz (sem PHP nem JavaScript) e de fácil configuração, além de fornecer (quase) tudo que se espera de uma interface web para o Git.
No caso do CEFALA, apenas a VM www.cefala.org
é accessível via HTTP e HTTPS. Neste caso, é necessário utilizar o mecanismo de proxy do Apache2 para poder acessar o servidor cgit na VM git.cefala.org
. O servidor HTTP/HTTPS virtual está definido na configuração do Apache da VM www.cefala.org
e é acessível pela URL https://cgit.cefala.org.
Por hora, os seguintes repositórios são visíveis na interface cgit:
- cefala-cgit: Configuração do servidor cgit (vide abaixo)
- apt-debian-pinning: configuração do APT pinning para as diversas distribuições da Debian, descrita num artigo deste blog
- git-scripts: Scripts de ajuda para uso do Git na VM
git.cefala.org
, descritos num artigo deste Blog - notmyidea-pt: Tradução do tema notmyidea do Pelican em português. Este tema é usado neste Blog.
O servidor cgit está configurado para aceitar um arquivo de descrição README.md
na raiz de cada repositório (exemplo) e também para colorir sintaticamente os arquivos mostrados (exemplo).
É possível também clonar os repositórios via HTTP:
$ git clone http://cgit.cefala.org/cgit/cefala-cgit
A configuração deve ser feita tanto na VM www.cefala.org
(servidor Apache) quanto na VM git.cefala.org
(servidor cgit). Ambas configurações são feitas através do projeto cefala-cgit.
Na VM www.cefala.org
:
$ git clone cefala-admin@git.cefala.org:cefala-cgit.git
$ cd cefala-cgit
$ sudo make apache-install
Na VM git.cefala.org
:
$ git clone /var/git/cefala-cgit
$ cd cefala-cgit
$ sudo make cgit-install
Modificações permanentes nos arquivos de configuração devem ser registradas (commit) e subidas (push) no repositório centralizado:
$ git add apache cgitrc cgitrepos
$ git commit -m 'Modificação na configuração para [isto] ou [aquilo]'
$ git push
P.S.: Eu nunca sei como traduzir commit e push em português. Algumas pessoas já tentaram fazer isto, ali e acolá.