Skip to content

28 Январь 2012

29

Ubuntu Linux + git server gitosis

Gitosis

Нужен центральный сервер git? Однозначно лучшем решением будет github.com. Но если по каким-то причинам он не подходит — можно поднять свой сервачок с гитом, никаких проблем!  :wink:

:!:  Дано:

  • Ubuntu 10.04 LTS minimal
  • Рабочая машина под Windows

:!:  Поехали:

  1. apt-get install gitosis
  2. useradd -m -r -s/bin/sh git
  3. Создаем на рабочей машине публичный RSA ключ. С помошью msysgit, например. Или cygwin и ssh-keygen -t rsa. Способов много.
  4. Переносим публичный RSA ключ с рабочей машины (в Windows путь до ключа примерно такой: ../Users/username/.ssh/id_rsa.pub) на серверную машину, кладем в папку /home/git.
  5. sudo -H -u git gitosis-init < /home/git/id_rsa.pub
  6. Теперь должен быть создан администраторский репозиторий, через который и будет управляться сервер гит. Репозиторий доступен по адресу git@domen:gitosis-admin.git и примет только пользователя, чьим ключом был инициализирован. Давайте склонируем его на нашу рабочую машину.

:!:  Настройка:

  1. В папку keydir добавляются ключи пользователей. Имя файла должно соответствовать имени пользователя в конфигурационном файле.
  2. Шаблон конфигурационного файла:
    [gitosis]
    
    [group gitosis-admin]
    writable = gitosis-admin
    members = owner1 owner2
    
    [repo repo1]
    description = super puper repo
    
    [group repo1-write]
    writable = repo1
    members = owner1 owner2 user1 user2
    
    [group repo1-read]
    readonly = repo1
    members = user3 user4
  3. Для применения настроек делаем push в админский репо
    git add .
    git commit -a -m "Configuration"
    git push
  4. После настройки, новосозданные репозитории нужно создать локально и сделать push в еще пока не существующий, новый репо, для его инициализации. Адреса репозиториев аналогичны админскому. Например: git@domen:repo1.git