Введение
GitWeb — это CGI-скрипт, поставляемый с Git, который предоставляет веб-интерфейс для просмотра репозиториев Git. Эта статья описывает настройку GitWeb на сервере с использованием Apache, а также запуск временного экземпляра с помощью команды git instaweb для тестирования.
Тестирование GitWeb с помощью git instaweb
Для быстрого просмотра проекта в GitWeb можно использовать команду git instaweb. Она требует установленного веб-сервера, такого как lighttpd (обычно установлен на Linux) или webrick (подходит для macOS с предустановленным Ruby). Пример запуска на macOS:
$ 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]
Эта команда запускает HTTP-сервер на порту 1234 и открывает GitWeb в браузере. Для использования lighttpd на Linux просто выполните:
$ git instaweb
Чтобы остановить сервер:
$ git instaweb --httpd=webrick --stop
Примечание: Команда git instaweb удобна для тестирования, но не подходит для постоянной работы.
Ручная установка GitWeb
Для постоянного веб-интерфейса установите GitWeb вручную. В некоторых дистрибутивах Linux доступен пакет gitweb, который можно установить через apt или dnf. Мы рассмотрим ручную установку:
- Склонируйте исходный код Git и сгенерируйте CGI-скрипт GitWeb:
$ 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/
Переменная GITWEB_PROJECTROOT указывает каталог с репозиториями Git (например, /srv/git).
- Настройте Apache для работы с GitWeb. Добавьте виртуальный хост в конфигурацию (например,
/etc/apache2/sites-available/gitweb.conf):
ServerName gitserver
DocumentRoot /var/www/gitweb
Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride All
order allow,deny
Allow from all
AddHandler cgi-script cgi
DirectoryIndex gitweb.cgi
Активируйте конфигурацию и перезапустите Apache:
$ sudo a2ensite gitweb
$ sudo systemctl restart apache2
Теперь GitWeb доступен по адресу http://gitserver/, где вы можете просматривать репозитории онлайн.
Дополнительные рекомендации
- GitWeb совместим с любым веб-сервером, поддерживающим CGI или Perl. Настройка для других серверов (например, Nginx) потребует аналогичных шагов.
- Для повышения безопасности настройте SSL (например, с помощью
mod_sslв Apache). - Проверьте права доступа к каталогу
/srv/git, чтобы Apache мог читать репозитории.
Заключение
GitWeb предоставляет удобный веб-интерфейс для просмотра репозиториев Git. Для тестирования используйте git instaweb, а для постоянной работы настройте CGI-скрипт на Apache или другом веб-сервере. Настройка включает установку GitWeb, конфигурацию виртуального хоста и обеспечение доступа к репозиториям.
Отзывы