Введение
Git-демон предоставляет быстрый доступ к репозиториям по протоколу Git без аутентификации, что делает их публично доступными в сети. Эта статья описывает настройку Git-демона на Linux с использованием systemd, включая открытие порта 9418 и настройку репозиториев для публичного доступа.
Важно: Поскольку протокол Git не поддерживает аутентификацию, используйте его только для публичных проектов или внутри сетей за брандмауэром, где доступ ограничен.
Запуск Git-демона
Для запуска Git-демона выполните команду:
$ git daemon --reuseaddr --base-path=/srv/git/ /srv/git/
Опции:
--reuseaddr: Позволяет перезапустить демон без ожидания таймаута существующих подключений.--base-path=/srv/git/: Упрощает клонирование, позволяя не указывать полный путь к репозиториям./srv/git/: Указывает каталог с репозиториями.
Убедитесь, что порт 9418 открыт в сетевом экране, так как Git-демон использует его по умолчанию.
Настройка демона с помощью systemd
Для автоматического запуска Git-демона в современных дистрибутивах Linux используйте systemd. Создайте файл /etc/systemd/system/git-daemon.service:
[Unit]
Description=Start Git Daemon
[Service]
ExecStart=/usr/bin/git daemon --reuseaddr --base-path=/srv/git/ /srv/git/
Restart=always
RestartSec=500ms
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=git-daemon
User=git
Group=git
[Install]
WantedBy=multi-user.target
Проверьте, что путь к /usr/bin/git верный, и пользователь git существует. Затем выполните команды для управления сервисом:
$ sudo systemctl enable git-daemon
$ sudo systemctl start git-daemon
$ sudo systemctl stop git-daemon # Для остановки
Примечание: На других системах можно использовать xinetd, sysvinit или аналогичные инструменты для демонизации процесса.
Настройка репозиториев для публичного доступа
Чтобы указать, какие репозитории доступны через Git-демон, создайте файл git-daemon-export-ok в каждом репозитории:
$ cd /srv/git/project.git
$ touch git-daemon-export-ok
Наличие этого файла разрешает доступ к репозиторию без аутентификации. Пользователи могут клонировать его:
$ git clone git://gitserver/project.git
Рекомендации по использованию
- Используйте Git-демон для публичных проектов или внутри сетей за брандмауэром, где требуется доступ только на чтение (например, для CI/CD-серверов).
- Не используйте Git-демон для проектов, требующих защиты данных, из-за отсутствия аутентификации.
- Убедитесь, что порт 9418 открыт, или настройте прокси, если он заблокирован в корпоративной сети.
Заключение
Git-демон — это простой способ предоставить публичный доступ к репозиториям по протоколу Git. Настройка включает запуск демона с помощью systemd, открытие порта 9418 и создание файла git-daemon-export-ok для каждого публичного репозитория. Используйте его для проектов, где не требуется аутентификация, и сочетайте с SSH или HTTP для доступа на запись.
Отзывы