Git: Configuriamo Gitweb
Questa guida descrive i passi necessari per configurare Gitweb il front-end web-based di Git. Gitweb è sviluppato in Perl5 e permette in modo facile di esplorare tutto il contenuto dei propri repository Git, visionare i log ed history dei file, effettuare ricerche e scaricare snapshots.
Installiamo Gitweb
Come primo passo assicuriamoci di avere Gitweb installato sulla nostra macchina. Generalmente Gitweb è incluso nel pacchetto Git (come ad esempio in Slackware) mentre per le altre distribuzioni può essere necessario installarlo a mano.
Configuriamo gitweb.conf
Con il nostro editor di testo preferito, editiamo il file /etc/gitweb.conf
e modifichiamo (o creiamo) la variabile $projectroot
che servirà per indicare a Gitweb la directory di “root” contenente i nostri repository. Ad esempio:
our $projectroot = "/srv/git";
Il file /etc/gitweb.conf
oltre a indicare la directory di nostri repository può essere utilizzato per configurare diversi aspetti funzionali e visivi di Gitweb.
Configuriamo Apache
Editiamo il file httpd.conf
ed aggiungiamo le seguenti righe per abilitare Gitweb:
Da inserire in httpd.conf:
<Directory "/srv/httpd/htdocs/git"> DirectoryIndex gitweb.cgi Allow from all AllowOverride all Order allow,deny Options ExecCGI <Files gitweb.cgi> SetHandler cgi-script </Files> </Directory>
Tips
Aggiungiamo l'autenticazione
Per aumentare la sicurezza dei nostri repository su Gitweb possiamo richiedere un'autenticazione per accedervi. Un modo semplice è creare un autenticazioine di tipo Basic con Apache.
Creiamo con htpasswd
il file che conterrà le credenziali di acesso a Gitweb:
$ htpasswd -p /srv/git/.gitweb-htpasswd <username> <password>
Aggiungiamo alla configurazione su Apache queste direttive:
<Directory "/srv/httpd/htdocs/git"> [...] AuthType Basic AuthName "Git" AuthUserFile /srv/git/.gitweb-htpasswd Require valid-user [...] </Directory>
Syntax Highlighting
Per abilitare la “sintassi colorata” in Gitweb è necessario installare il pacchetto highlight
ed aggiungere la seguente riga nel file /etc/gitweb.conf
:
$feature{'highlight'}{'default'} = [1];