Pro některé své drobné projekty jsem potřeboval veřejný Git repozitář, kde by ke zdrojovým kódům měli přístup i ostatní. Řešení typu Google Code nebo GitHub jsou pro mě moc velký kanón na malého vrabce. Rozhodl jsem se, že některé ze svých repozitářů zveřejním pomocí programu Gitweb.
Instalace programu Gitweb:
apt-get install gitweb
Konfigurace pro Apache2 v souboru /etc/apache2/sites-available/gitweb (na tento soubor je nutné vytvořit symlink v adresáři /etc/apache2/sites-enabled/ a pak restartovat samotný Apache):
<VirtualHost *:443>
ServerName git.posvic.cz
DocumentRoot /home/ftpuser/posvic_cz/ssl_only/git.posvic.cz
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/posvic.cz.crt
SSLCertificateKeyFile /etc/apache2/ssl/posvic.cz.key
# V /usr/share/gitweb jsou po instalaci Gitwebu
# potrebne soubory k dispozici
Alias /gitweb.css /usr/share/gitweb/gitweb.css
Alias /git-logo.png /usr/share/gitweb/git-logo.png
Alias /git-favicon.png /usr/share/gitweb/git-favicon.png
Alias /gitweb.js /usr/share/gitweb/gitweb.js
ScriptAlias / "/usr/lib/cgi-bin/gitweb.cgi"
# /git-repo je fyzicky repozitar na pocitaci
<Directory "/git-repo/">
Options Indexes FollowSymLinks ExecCGI
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Pokud v repozitáři existuje více projektů, ale chceme Gitwebu zpřístupnit pouze některé, můžeme vytvořit speciální adresář a do něj umístit symlinky na projekty, které mají být veřejné. V souboru /etc/gitweb je pak nutné změnit proměnnou $projects_list na „/git-repo/gitweb-public“ (včetně uvozovek).
cd /git-repo
mkdir gitweb-public
cd gitweb-public
ln -s ../Communicator.git