Настройка сервера git

56

Недавно я установил ubuntu-сервер на Amazon EC2. Я хотел бы использовать его в качестве моего git-сервера, поэтому я мог бы хранить там свои репозитории.

Итак, где я могу найти некоторые подробные инструкции по настройке git на сервере ubuntu? Все эти SSH-ключи и тому подобное, несколько пользователей и т. Д.

    
задан Paweł Karpiński 11.11.2010 в 12:42
источник

8 ответов

36

Вы можете использовать учебник по установке сервера Git в качестве предлагаемого aking1012 вы или вы можете просто установить SSH-сервер на свой экземпляр EC2 (вероятно, было бы разумно его защитить и изменить порт по умолчанию).

Git может быть без сервера, вы запускаете свой репозиторий, а затем получаете доступ к нему с удаленного устройства через SSH. Поэтому такие инструкции на сервере Ubuntu должны сделать это:

GIT_DIR=project.git git init  
cd project.git  
git --bare update-server-info  
cp hooks/post-update.sample hooks/post-update

Наконец, установите SSH на свой сервер:

sudo apt-get install ssh-server

Теперь вы должны настроить SSH для его защиты.

Пришло время разместить ваш проект онлайн (данные, которые у вас уже есть на вашей машине разработки):

git push ssh://<username>@<remote-git-hostname>/path/to/project.git master

И теперь вы можете начать клонирование. Вы заходите на свою машину разработки:

git clone ssh://<username>@<remote-git-hostname>/path/to/dir.git

Проверьте отличный ресурс на Git .

И для генерации ваших ssh-ключей для более безопасной аутентификации вы можете прочитать эту статью о аутентификации SSH .     

ответ дан Huygens 11.11.2010 в 22:30
источник
14

Для всех моих настроек сервера Git я использую Gitolite , который позволяет обеспечить грамотность безопасности доступа к каждой ветви. Настройка довольно проста, если вы делаете это на удаленном сервере, это так же просто, как запуск интерактивного скрипта. В дополнение к этой «простой в установке» природе он также имеет пакет в Natty и Maverick

sudo apt-get install gitolite

Это не будет предоставлять веб-интерфейс, такой как Github или Gitweb, но вы можете легко настроить и установить их поверх чего-то вроде Gitolite.

    
ответ дан Marco Ceppi 07.02.2011 в 15:46
9

Мне нравится gitolite . В книге Pro Git есть раздел , но я рекомендую прочитать всю книгу.

Как для вашего требования нескольких пользователей:

  

Гитолит позволяет указать   разрешений не только с помощью репозитория   (например, Gitosis), но также   имена филиалов или тегов в каждом   репозиторий. То есть вы можете указать   что определенные люди (или группы   люди) могут только нажать определенные «ссылки»,   (ветви или метки), но не другие.

    
ответ дан Li Lo 12.11.2010 в 17:59
7

Ссылка может быть слегка изменена в соответствии с вашими целями ... аналогичный учебник Ссылка .

    
ответ дан RobotHumans 11.11.2010 в 13:38
6

Определенно следуйте официальной документации: Ссылка (раздел Настройка Git и управления проектами )     

ответ дан chris 07.02.2011 в 16:25
4

Решение, которое работало лучше всего для меня, заключалось в настройке WebDAV.

  • sudo a2enmod sudo dav_fs

  • <р> sudo a2enmod dav
  • добавьте новый файл в /etc/apache2/sites-available и назовите его, например, git.yourserver.com . Измените его и добавьте следующие строки:

<VirtualHost *:80>

DocumentRoot /var/www/git.yourserver.com/repos
ServerName git.yourserver.net
Options Indexes FollowSymLinks MultiViews

<Location />
    DAV On
    AuthType Basic
    AuthName "git repos"
    AuthUserFile /var/www/git.yourserver.net/password.dav
    Require valid-user
</Location>

</VirtualHost>

  • создать каталог /var/www/git.yourserver.com и каталог repos внутри id
  • sudo chown www-data /var/www/git.yourserver.com/repos
  • sudo htpasswd -c /var/www/git.yourserver.com/password.dav user_login и введите пароль для пользователя с именем user_login
  • sudo chown root:www-data /var/www/git.yourserver.com/password.dav
  • sudo chmod 640 /var/www/git.yourserver.com/password.dav

Теперь sudo a2ensite git.yourserver.com и sudo service apache2 restart .

  • Введите /var/www/git.yourserver.com/repos и создайте каталог, например, myrepo.git
  • cd myrepo.git
  • git --bare init
  • git update-server-info

Теперь выйдите из своего удаленного сервера и перейдите в локальный каталог, в который вы хотите редактировать свои файлы.

git clone http://user_login:[email protected]/myrepo.git

и вы закончили. Если вы хотите отправить внесенные изменения на сервер:

git push origin master

Вы можете создать столько пользователей, сколько хотите, используя sudo htpasswd . Помните, что не нужно использовать переключатель -c при добавлении большего количества пользователей, поскольку старый файл будет удален.

    
ответ дан Paweł Karpiński 16.11.2010 в 16:25
3

Мне также нравится подход gitolite для управления пользователями и безопасности. В настоящее время я тестирую сервер Git + gitolite AMI для EC2. Не стесняйтесь попробовать. документация доступна здесь:

  

Alestic Git Server

Используя этот подход, вы можете иметь центральный сервер Git с частными хранилищами, работающими в считанные минуты. Существует кривая обучения для гитолита и EC2, если вы не знакомы с ними.

    
ответ дан Eric Hammond 15.04.2011 в 23:13
3

Этого очень легко достичь с помощью гитолита . Менее чем за час у вас будет простой настраиваемый и безопасный многопользовательский сервер git.

У меня есть статья о статье мой сайт

    
ответ дан realcnbs 11.01.2011 в 23:41