Поиск   

Собственный сервер Git на базе Ubuntu или Debian/GNU Linux

Собственный сервер Git на базе Ubuntu или Debian/GNU Linux


Я встречал в сети много tutorial'ов по установке своего сервера git как на gitweb, так и на webdav, но, увы, они либо были только по одному из вышеназванных пунктов, не освещая другой, либо банально не работали.

Вчера возникла необходимость поднять свой сервер репозиториев. Потратил пару часов — поднял, теперь хочу поделиться опытом, потому что считаю проблему актуальной :)


По данному руководству был создан репозиторий git.shadowircd.net

Для начала сделаем install некоторых пакетов aptitude:

aptitude install git-core git-svn gitweb



Создадим папку для хранения сайта с gitweb и dav-версии репозитория git:

mkdir -p /www/git.domain.tld/{htdocs,logs} /www/git.domain.tld/htdocs/git



Активируем нужные моды Apache2:

a2enmod dav
a2enmod dav_fs
a2enmod rewrite
a2enmod env



Составляем конфигурационный файл gitweb’а:

mcedit /www/git.domain.tld/gitweb.conf



У меня он выглядит так:

$my_uri = ”http://git.domain.tld”; # адрес репозиториев
$site_name = ”git.domain.tld”; # название сайта, отображается в заголовке
$projectroot = ”/www/git.domain.tld/htdocs/git/”; # путь к репозиториям git на жёстком диске

$git_temp = ”/tmp”;
$home_link = $my_uri; # ссылка на «домашнюю страничку»
# $home_text = ”indextext.html”; # текст, можно расскоментировать и вставить свой
$projects_list = $projectroot;
$stylesheet = ”/gitweb/gitweb.css”;
$logo = ”/gitweb/git-logo.png”;
$favicon = ”/gitweb/git-favicon.png”;
$projects_list_description_width = 40;

$feature{’pathinfo’}{’default’} = [1];



Теперь перейдём к нашему vhost в apache2, вот тут-то и содержится самое интересное:


ServerName git.domain.tld
ServerAlias www.git.domain.tld

ServerAdmin head@coderscamp.ru

DocumentRoot /www/git.domain.tld/htdocs
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

DirectoryIndex /cgi-bin/gitweb.cgi

RewriteEngine on
RewriteRule ^/([a-zA-Z0-9_-]+/.git)/?(?.*)?$ /cgi-bin/gitweb.cgi/$1 [L,PT]

SetEnv GITWEB_CONFIG /www/git.domain.tld/gitweb.conf
Alias /gitweb /usr/share/gitweb/


Options FollowSymLinks
AllowOverride None
Order allow,deny
allow from all



DAV on
AuthType Basic
AuthName «Git»
AuthUserFile /www/git.domain.tld/passwd.git

Require valid-user



LogLevel warn
ErrorLog /www/git.domain.tld/logs/error.log
CustomLog /www/git.domain.tld/logs/access.log combined



Остаётся только добавить нового пользователя:

htpasswd -cm /www/git.domain.tld/passwd.git user



Всё Создаём репозитории в /www/git.domain.tld/htdocs/git/ и наслаждаемся самой приятной системой контроля версий из всех :)

P.P.S. для пользователей Linux — данный сервер работает с использованием DAV, могут возникнуть проблемы с push, разрешается созданием файла ~/.netrc со следующим содержимым machine git.domain.tld login password

Автор: darkwire

  • Понравилось? Так читай первым!
    • Google Reader or Homepage
    • Читать в Яндекс.Ленте
3 ноября 2008 смотрели: 232 рейтинг Donat   комментарии: 0 Статьи
Система Orphus

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.


Добавление комментария

Уведомлять о новых комментариях на Email?



Чтобы мы знали, что вы не робот—введите пожалуйста цифры или буквы с изображения.

Включите эту картинку для отображения кода безопасности
обновить код



 



| © Kamenki 2008 | design by студия Константина Сорокина | Отредактировал и дополнил Donat | Обратная связь |

Популярное

Теги

Требуется для просмотраFlash Player 9 или выше.

Опрос

Вы используете twitter?
Да
Нет
Чаво

Ссылки

Глобальный каталог сайтов

ТОП Рейтинг


Rambler's Top100

Рейтинг@Mail.ru

количество читателей онлайн и всего