Я недавно приобрел выделенный сервер, и мне нужно перенести на него несколько репозиториев из службы управления исходным кодом. Имея небольшой опыт администрирования серверов, я понятия не имею, как его эффективно организовать. Что я ищу -
- svn.host.com, hg.host.com, поддоменов git.host.com, которые будут корнями к различным репозиториям через ключи SSH
- простое создание новых репозиториев
- проверка подлинности с использованием списка пользователей unix сервера, но с разрешениями для каждого проекта, а также необязательный открытый доступ только для чтения для некоторых репозиториев
К сожалению, любой поисковый запрос, который я пробую в Google, направляет меня к коммерческим решениям, а не к тому, как свернуть мои собственные. Мне нужно что-то вроде урезанного хост-решения, но без необходимости, чтобы пользователи могли создавать свои собственные репозитории.
Какие-либо предложения, учебные пособия или письменные решения о том, где начать исследования? Решение с открытым исходным кодом для административного интерфейса для обработки этого (или, по крайней мере, для некоторых было бы идеально ...
SVN может быть выполнен с помощью Apache WebDAV, в vhost, с использованием аутентификации Unix и собственных ACL уровня пользователя subversion. Я ничего не знаю о mercurial или git, но я надеюсь, что их тоже можно подключить к DAV.
источник
Если вы хотите использовать SSH , то вам нужно ограничить ключи, отредактировав
authorized_keys
файл на сервере. Для Mercurial основные способы сделать это:Вы можете использовать
contrib/hg-ssh
скрипт для ограничения команд, которые люди могут выполнять при входе в систему по SSH. Файл содержит заголовок, чтобы объяснить, как его использовать, но вы в основном добавляетеперед ключом в
authorized_keys
файле. Это ограничивает ключ, так что он может быть использован только для push и pull в указанное хранилище.Вы также можете использовать сторонний инструмент mercurial-server , если вы хотите что-то вроде gitois . Это позволяет вам управлять пользователями и их правами доступа, редактируя файлы в специальном репозитории администратора.
См. Вики Mercurial для некоторых других подобных инструментов для SSH.
Для HTTP есть
Встроенный
hgweb
(быстрый) CGI или WSGI-скрипт, который поставляется с Mercurial. Это обрабатывает толчки и извлечения, но не позволяет создавать новые репозитории - для этого войдите на сервер.Третья сторона RhodeCode проект. Это дает вам похожий на Bitbucket веб-интерфейс для Mercurial, где вы можете настраивать пользователей и их права доступа. Он поддерживает аутентификацию LDAP, поэтому вы можете подключить ее к существующей базе данных пользователей Unix.
См. Страницу по публикации репозиториев для получения дополнительной информации.
источник
SCM-Manager может идеально подойти для ваших нужд:
источник
RhodeCode - это браузер с открытым исходным кодом и инструмент управления хранилищем со встроенным сервером push-pull, LDAP / AD, системой разрешений и полнотекстовым поиском.
Вы можете увидеть это в прямом эфире здесь: http://demo.rhodecode.org/
источник