Теперь, когда к вашему проекту настроен доступ на чтение/запись и только на чтение, вероятно, вы захотите настроить простой веб-визуализатор. Для этой цели в комплекте с Git поставляется CGI-сценарий GitWeb.
Если вы хотите посмотреть как будет выглядеть ваш проект в GitWeb, в Git есть стандартная команда для запуска временного экземпляра, однако она требует наличия установленного веб-сервера, такого как lighttpd
или webrick
.
Как правило, на машинах с Linux lighttpd
уже установлен, поэтому вы сможете его запустить, выполнив команду git instaweb
в каталоге с вашим проектом.
Если вы используете Mac, Leopard поставляется с предустановленным Ruby, поэтому webrick
может быть лучшим выбором.
Чтобы запустить instaweb
не с ligttpd используйте параметр --httpd
.
$ git instaweb --httpd=webrick
[2009-02-21 10:02:21] INFO WEBrick 1.3.1
[2009-02-21 10:02:21] INFO ruby 1.8.6 (2008-03-03) [universal-darwin9.0]
Это запустит сервер HTTPD на порту 1234, а затем откроет эту страницу в веб-браузере.
Как видите, нет ничего сложного.
Когда вы закончили и хотите остановить сервер, запустите ту же команду с параметром --stop
:
$ git instaweb --httpd=webrick --stop
Если вы хотите иметь постоянно работающий веб-интерфейс на сервере для вашей команды или предоставлять хостинг для проекта с открытым кодом, вам необходимо подключить CGI-сценарий на вашем веб-сервере.
В некоторых дистрибутивах Linux есть пакет gitweb
, который вы можете установить, используя apt
или dnf
, так что вы можете попробовать сначала этот способ.
Мы же вкратце рассмотрим ручную установку GitWeb.
Для начала вам нужно скачать исходный код Git, с которым поставляется GitWeb, и сгенерировать CGI-сценарий под свою систему:
$ git clone git://git.kernel.org/pub/scm/git/git.git
$ cd git/
$ make GITWEB_PROJECTROOT="/srv/git" prefix=/usr gitweb
SUBDIR gitweb
SUBDIR ../
make[2]: 'GIT-VERSION-FILE' is up to date.
GEN gitweb.cgi
GEN static/gitweb.js
$ sudo cp -Rf gitweb /var/www/
Помните, что вы должны указать команде где расположены ваши репозитории Git с помощью переменной GITWEB_PROJECTROOT
.
Теперь вы должны настроить Apache на использование этого CGI-сценария, для чего вы можете добавить виртуальный хост:
<VirtualHost *:80>
ServerName gitserver
DocumentRoot /var/www/gitweb
<Directory /var/www/gitweb>
Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride All
order allow,deny
Allow from all
AddHandler cgi-script cgi
DirectoryIndex gitweb.cgi
</Directory>
</VirtualHost>
Повторюсь, GitWeb может быть установлен на любой веб-сервер, совместимый с CGI или Perl; если вы предпочитаете использовать что-то другое, настройка не должна стать для вас проблемой.
К этому моменту вы должны иметь возможность зайти на http://gitserver/
для просмотра ваших репозиториев онлайн.