Это команда git-daemon, которую можно запустить в провайдере бесплатного хостинга OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
git-daemon - действительно простой сервер для репозиториев Git
СИНТАКСИС
мерзавец демон [--verbose] [--syslog] [--export-all]
[--timeout = ] [--init-timeout = ] [--max-connections = ]
[--strict-paths] [--base-path = ] [--base-path-relaxed]
[--user-path | --user-path = ]
[--interpolated-path = ]
[--reuseaddr] [--detach] [--pid-file = ]
[--enable = ] [--disable = ]
[--allow-override = ] [--forbid-override = ]
[--access-hook = ] [- [нет-] информативных ошибок]
[--инетд |
[--listen = ] [--port = ]
[--user = [--group = ]]]
[ ...]
ОПИСАНИЕ
Очень простой демон TCP Git, который обычно прослушивает порт "DEFAULT_GIT_PORT", также известный как 9418.
Он ожидает соединения, запрашивающего услугу, и будет обслуживать эту услугу, если она
включен.
Он проверяет, что в каталоге есть волшебный файл "git-daemon-export-ok", и
отказаться от экспорта любого каталога Git, который не был явно отмечен для экспорта таким образом
(если только --экспорт-все параметр указан). Если вы передадите некоторые пути к каталогам как мерзавец
демон аргументы, вы можете дополнительно ограничить предложения белым списком, состоящим из них.
По умолчанию включена только услуга upload-pack, которая обслуживает мерзавец принеси-пак и мерзавец
ls-удаленный клиенты, которые вызываются из мерзавец получать, мерзавец тянутьи мерзавец клонировать.
Это идеально подходит для обновлений только для чтения, т. Е. Извлечения из репозиториев Git.
Также существует загружаемый архив для обслуживания мерзавец архив.
ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ
--строгие пути
Точное соответствие путей (т.е. не разрешать "/ foo / repo", если реальный путь
"/foo/repo.git" или "/foo/repo/.git") и не используйте пути, относящиеся к пользователю. мерзавец демон
откажется запускаться, если эта опция включена и не указан белый список.
--base-path =
Переназначить все запросы пути относительно данного пути. Это что-то вроде "корня Git"
- если ты бежишь мерзавец демон --base-путь = / SRV / git на example.com, то, если вы позже
попытаться вытащить git: //example.com/hello.git, мерзавец демон будет интерпретировать путь как
/srv/git/hello.git.
- базовый путь-расслабленный
Если --base-path включен и поиск репозитория завершился неудачно, с этой опцией мерзавец демон предусматривает
попытаться выполнить поиск без префикса базового пути. Это полезно для переключения на
--base-path использование, но по-прежнему разрешает старые пути.
--interpolated-path =
Для поддержки виртуального хостинга можно использовать шаблон интерполированного пути для динамического
построить альтернативные пути. Шаблон поддерживает% H для имени целевого хоста как
предоставляется клиентом, но преобразован во все строчные буквы,% CH для канонического имени хоста,
% IP для IP-адреса сервера,% P для номера порта и% D для абсолютного пути
названного репозитория. После интерполяции путь проверяется на соответствие
белый список каталогов.
--экспорт-все
Разрешить извлечение из всех каталогов, которые выглядят как репозитории Git (имеют объекты
и реф. подкаталоги), даже если в них нет git-демон-экспорт-ок .
--inetd
Запустите сервер как службу inetd. Подразумевается --syslog. Несовместимо с --detach,
Параметры --port, --listen, --user и --group.
--listen =
Слушайте определенный IP-адрес или имя хоста. IP-адреса могут быть либо IPv4
адрес или IPv6-адрес, если поддерживается. Если IPv6 не поддерживается, тогда
--listen = hostname также не поддерживается, и --listen должен иметь адрес IPv4.
Можно давать более одного раза. Несовместима с --inetd опцию.
--port =
Слушайте альтернативный порт. Несовместима с --inetd опцию.
--init-timeout =
Тайм-аут (в секундах) между моментом установления соединения и клиентом
получен запрос (обычно это довольно низкое значение, так как это должно быть в основном
немедленный).
--timeout =
Тайм-аут (в секундах) для определенных клиентских подзапросов. Это включает время, необходимое
для сервера для обработки подзапроса и время, потраченное на ожидание следующего
запрос клиента.
--max-connections =
Максимальное количество одновременно работающих клиентов, по умолчанию 32. Установите ноль, чтобы не было ограничений.
--syslog
Зарегистрируйтесь в системном журнале вместо stderr. Обратите внимание, что эта опция не подразумевает --verbose, поэтому
по умолчанию будут регистрироваться только ошибки.
--user-path, --user-path =
Разрешить использование пользовательской нотации в запросах. Если указано без параметра,
запросы к git: // host / ~ alice / foo воспринимаются как запрос на доступ Foo хранилище в
домашний каталог пользователя alice. Если указан --user-path = path, тот же запрос
воспринимается как запрос на доступ к репозиторию path / foo в домашнем каталоге пользователя
Алиса.
--подробный
Регистрируйте подробности о входящих соединениях и запрошенных файлах.
--reuseaddr
Используйте SO_REUSEADDR при привязке прослушивающего сокета. Это позволяет серверу перезапустить
не дожидаясь истечения времени ожидания старых подключений.
--отсоединить
Отсоединить от корпуса. Подразумевается --syslog.
--pid-file =
Сохраните идентификатор процесса в файл. Игнорируется, когда демон запускается под --inetd.
--user = , --group =
Измените uid и gid демона перед входом в цикл обслуживания. Когда только --user
если задано без --group, используется идентификатор основной группы для пользователя. Ценности
вариант предоставляется Getpwnam(3) и Getgrnam(3) и числовые идентификаторы не поддерживаются.
Указание этих параметров является ошибкой при использовании с --inetd; использовать средство инет
демон, чтобы добиться того же до нереста мерзавец демон если нужно.
Как и многие программы, переключающие идентификатор пользователя, демон не сбрасывает среду
переменные, такие как $ HOME, когда он запускает программы git, например, upload-pack и receive-pack.
При использовании этой опции вы также можете установить и экспортировать ДОМОЙ, чтобы он указывал на дом.
каталог перед запуском демона и убедитесь, что любая конфигурация Git
файлы в этом каталоге доступны для чтения .
--enable = , --disable =
Включение / отключение службы по умолчанию для всего сайта. Обратите внимание, что служба отключена
на уровне сайта все еще можно включить для каждого репозитория, если он помечен как переопределяемый и
репозиторий включает службу с элементом конфигурации.
--allow-override = , --forbid-override =
Разрешить / запретить переопределение общесайтового значения по умолчанию с конфигурацией репозитория. К
по умолчанию все службы могут быть переопределены.
- [нет-] информативных ошибок
Когда информативные ошибки включены, git-daemon будет сообщать о более подробных ошибках в
клиент, отличая условия типа «нет такого репозитория» от «репозиторий нет»
экспортировано ". Это более удобно для клиентов, но может привести к утечке информации о
наличие неэкспортированных хранилищ. Когда информативные ошибки не включены, все
об ошибках сообщает клиенту "доступ запрещен". По умолчанию - no-informative-errors.
--access-hook =
Каждый раз, когда клиент подключается, сначала запускайте внешнюю команду, указанную в
с именем службы (например, "upload-pack"), путем к репозиторию, именем хоста (% H),
каноническое имя хоста (% CH), IP-адрес (% IP) и TCP-порт (% P) в качестве командной строки
аргументы. Внешняя команда может принять решение об отказе в обслуживании, завершив работу с
ненулевой статус (или разрешить его выходом с нулевым статусом). Он также может смотреть на
переменные среды $ REMOTE_ADDR и $ REMOTE_PORT, чтобы узнать об отправителе запроса
при принятии этого решения.
Внешняя команда может дополнительно записать одну строку в свой стандартный вывод, чтобы
отправляется запрашивающей стороне как сообщение об ошибке, когда она отклоняет службу.
Каталог, который нужно добавить в белый список разрешенных каталогов. Если --strict-paths не
указано, что это также будет включать подкаталоги каждого именованного каталога.
УСЛУГИ
Эти службы могут быть глобально включены / отключены с помощью параметров командной строки этого
команда. Если требуется более мелкозернистый контроль (например, чтобы разрешить мерзавец архив столкнуться с
только в нескольких выбранных репозиториях, которые обслуживает демон), конфигурация для каждого репозитория
файл можно использовать для их включения или отключения.
загрузить пакет
Это служит мерзавец принеси-пак и мерзавец ls-удаленный клиентов. По умолчанию он включен, но
репозиторий может отключить его, установив для элемента конфигурации daemon.uploadpack значение false.
загрузить-архив
Это служит мерзавец архив --дистанционный пульт. По умолчанию он отключен, но репозиторий может
включите его, установив для элемента конфигурации daemon.uploadarch значение true.
приемная упаковка
Это служит мерзавец отправить пакет клиенты, разрешающие анонимный толчок. По умолчанию он отключен,
как есть нет аутентификация в протоколе (другими словами, кто угодно может нажать
что угодно в репозиторий, включая удаление ссылок). Это предназначено исключительно для
закрытая настройка LAN, где все дружелюбны. Эту услугу можно включить, установив
Для элемента конфигурации daemon.receivepack значение true.
ПРИМЕРЫ
Мы предполагаем следующее в / etc / services
$ группа 9418 / etc / services
git 9418 / tcp # Система контроля версий Git
мерзавец демон как сервер inetd
Установить мерзавец демон как служба inetd, которая обрабатывает любой репозиторий в
белый список каталогов, / pub / foo и / pub / bar, поместите запись, например
следующие в / etc / inetd все в одной строке:
git stream tcp никого не ждет / usr / bin / git
демон git --inetd --verbose --export-all
/ паб / фу / паб / бар
мерзавец демон как сервер inetd для виртуальных хостов
Установить мерзавец демон как сервис inetd, который обрабатывает репозитории для разных
виртуальные хосты, www.example.com и www.example.org, поместите запись, подобную следующей
в / etc / inetd все в одной строке:
git stream tcp никого не ждет / usr / bin / git
демон git --inetd --verbose --export-all
--interpolated-path = / pub /% H% D
/pub/www.example.org/программное обеспечение
/pub/www.example.com/программное обеспечение
/программное обеспечение
В этом примере каталог корневого уровня / pub будет содержать подкаталог для каждого
имя виртуального хоста поддерживается. Кроме того, оба хоста рекламируют репозитории просто как
git: //www.example.com/software/repo.git. Для клиентов до версии 1.4.0 символическая ссылка от
/ software в соответствующий репозиторий по умолчанию также можно сделать.
мерзавец демон как обычный демон для виртуальных хостов
Установить мерзавец демон как обычная, не входящая в inetd служба, которая обрабатывает репозитории для
несколько виртуальных хостов на основе их IP-адресов, запустите демон следующим образом:
git daemon --verbose --export-все
--interpolated-path = / pub /% IP /% D
/pub/192.168.1.200/программное обеспечение
/pub/10.10.220.23/программное обеспечение
В этом примере каталог корневого уровня / pub будет содержать подкаталог для каждого
IP-адрес виртуального хоста поддерживается. Доступ к репозиториям по-прежнему можно получить по имени хоста
хотя при условии, что они соответствуют этим IP-адресам.
выборочно включать / отключать службы для каждого репозитория
Включить мерзавец архив --дистанционный пульт и отключите мерзавец получать против репозитория, иметь
следующее в файле конфигурации в репозитории (это файл конфиг рядом с
ГОЛОВА, реф. и объекты).
[демон]
загрузочный пакет = ложь
загрузочная_архив = истина
ОКРУЖАЮЩАЯ СРЕДА
мерзавец демон установит REMOTE_ADDR на IP-адрес клиента, который подключился к нему, если
IP-адрес доступен. REMOTE_ADDR будет доступен в среде хуков
вызывается, когда услуги оказываются.
GIT
Часть мерзавец(1) люкс
Используйте git-daemon онлайн с помощью сервисов onworks.net