Thursday, 12 February 2009

git: создаем хостинг

Как оказалось, в современном debian создать хостинг для git репозитория, не просто просто, а очень просто.

Начнем мы ставить, на сервере, софт. Понадобиться нам gitosis git-core. Говорим волшебное заклинание:

sudo aptitude install gitosis git-core

Следующим шагом надо создать gitosis хостинг:

sudo -H -u gitosis gitosis-init < .ssh/authorized_keys2

Да, авторизация будет происходить только по ключам.

Дальше, надо разрешить выполненение post-update хука:

sudo chmod 755 /srv/gitosis/repositories/gitosis-admin.git/hooks/post-update

Теперь нам нужен git-daemon, который бы раздовал все что мы делаем (этот шаг нужен, если мы хотим разрешить всем read only доступ):

sudo update-inetd --group OTHER --add 'git\tstream\ttcp\tgitosis\tgitosis\t/usr/bin/git\tgit daemon --inetd --export-all  --base-path=/srv/gitosis/repositories/'

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

Давайте, для начала, возьмем себе административный репозиторий:

git clone gitosis@SERVER:gitosis-admin.gi

Мы получим репозиторий, в котором будет лежать директория keydir. В ней лежат публичные ключи людей, которые имеют доступ к нагему хостингу. В качестве имени файла используется его имя из открытого ключа. Т.е. что бы добавить человека нужно, просто, добавить его ключ.

Для премера, мы создадим группу developer и testers, группа developers будет иметь доступ к двум проектам на запись (project1-dev и project2-dev) и к проекту группы testers на чтение. Группы testers наоборот.

[group quux]
members = joe@joe smith@smith
writable = projeect1-dev project2-dev
readonly = testers


[group quux]
members = max@max john@john
writable = testers
readonly = projeect1-dev project2-dev

Теперь осталось только сделать commit…

Если сделать доступ, через git-daemon, то любой, сможет прочитать эти проекты.

Write on: 2:33 | 2 comments | | tags: , , , | permalink |
Add post to:   Delicious Reddit Slashdot Digg Technorati Google


Add comment

Comments

mcnet 23.06.2009 13:08

Хочу обратить внимание, что все действия с репозиториями нужно совершать от имени пользователя gitosis иначе ssh все запросы перенаправит в домашние директории других пользователей.

Более подробный вариант статьи: http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way [EN]

reply

Comment form for «git: создаем хостинг»

Required. 30 chars of fewer.

Required.

Kirill A. Korinskiy 23.06.2009 17:20

Вообще я думал что понятно всем, что надо работать с репозиторием от пользователя gitosis, т.е. перенося доступ с системы на gitosis.

reply