Git
Chapters ▾ 2nd Edition

4.5 Git на Сервер - Гит демон

Гит демон

Потоа ќе поставиме складиште на сервери што го користат протоколот ‘` Git '’. Ова е заеднички избор за брз, неовластен пристап до вашите Git податоци. Запомнете дека бидејќи ова не е автентична услуга, сè што му служите на овој протокол е јавно во рамките на неговата мрежа.

Ако го користите ова на сервер надвор од вашиот заштитен ѕид, тоа треба да се користи само за проекти кои се јавно видливи за светот. Ако серверот на кој го стартувате е во вашиот заштитен ѕид, може да го користите за проекти кои голем број луѓе или компјутери (континуирани интеграции или изгради сервери) имаат пристап само за читање, кога не сакате да имате за да додадете SSH клуч за секој.

Во секој случај, протоколот Git е релативно лесно да се постави. Во суштина, треба да ја извршите оваа команда на демонизиран начин:

$ git daemon --reuseaddr --base-path=/srv/git/ /srv/git/

Опцијата --reuseaddr овозможува серверот да се рестартира без да се чека време за стари врски, додека опцијата` --base-path` им овозможува на луѓето да клонираат проекти без да ја специфицираат целата патека, а патеката на крајот кажува Git демон каде да барате складишта за извоз. Ако користите заштитен ѕид, исто така ќе треба да направите дупка во неа на пристаништето 9418 на полето за кое го поставувате ова.

Овој процес можете да го демонизирате на повеќе начини, во зависност од оперативниот систем што го работите.

Бидејќи systemd е најчестиот иницијален систем кај модерните Linux дистрибуции, можете да го користите за таа цел. Едноставно ставете датотека во / 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

Можеби сте забележале дека тука е вклучен Git-от со git, како група, така и корисник. Измени го за да одговара на вашите потреби и осигурајте се дека обезбедениот корисник постои на системот. Исто така, проверете дали битката Git навистина се наоѓа во / usr / bin / git и ако е потребно ја промените патеката.

Конечно, ќе го стартувате systemctl enable git-daemon за автоматско стартување на услугата при подигнување и може да ја стартуваат и да ја сопрат услугата со, односно` systemctl start git-daemon` и systemctl stop git-daemon.

До LTS 14.04, Ubuntu користи конфигурација на сервисната единица за upstart. Затоа, на Ubuntu ⇐ 14.04 можете да го користите Upstart скрипта. Значи, во следнава датотека

/etc/init/local-git-daemon.conf

you put this script:

[source,console]1

start on startup
stop on shutdown
exec /usr/bin/git daemon \
    --user=git --group=git \
    --reuseaddr \
    --base-path=/srv/git/ \
    /srv/git/
respawn

Поради безбедносни причини, силно се охрабруваме да го активираме овој демон како корисник со дозволи само за читање во складиштата - лесно можете да го направите ова со создавање нов корисник git-ro и извршување на демонот како нив. Заради едноставност, едноставно ќе го стартуваме како ист корисник на "git" кој работи како "git-shell".

Кога ќе ја рестартирате вашата машина, вашиот демон Git ќе започне автоматски и ќе отпушти ако се сруши. За да го вклучите без да се рестартирате, можете да го извршите ова:

$ initctl start local-git-daemon

На други системи, можеби ќе сакате да го користите xinetd, скрипта во вашиот` sysvinit` систем, или нешто друго - се додека ја добивате оваа команда демонизирана и некако гледавте.

Следно, мора да му кажете на Git кои складишта да дозволат пристап на Git без пристап до серверот. Ова може да го направите во секое складиште, создавајќи датотека со име git-daemon-export-ok.

$ cd /path/to/project.git
$ touch git-daemon-export-ok

Присуството на таа датотека му кажува на Git дека е во ред да му служи на овој проект без автентикација.