Git
Chapters ▾ 2nd Edition

4.5 Git on the Server - Git Daemon

Git Daemon

Daha sonra biz “Git” protokolundan istifadə edərək daemon xidməti göstərən depolar quracağıq. Bu sizin Git datanıza girmək üçün sürətli təsdiqlənməmiş yoldur. Yadda saxlayın ki, bu təsdiqlənməmiş servis olduğu üçün bu protokol üzərindən xidmət etdiyiniz hər şey onun şəbəkəsində publikdir. Əgər siz bunu təhlükəsizlik divarınızdan kənarda edirsinizsə, onda bu mütləq dünyaya görünən proyektlər üçün istifadə olunmalıdır. Lakin əgər bu serveri təhlükəsizlik divarınızdan içəridə edirsinizsə, onu bir çox read-only girişi olan insanlar və kompyuterlər (davamlı inteqrasiya və ya tikinti servisi) üçün SSH key istifadə etmək istəməyəndə istifadə edə bilərsiniz. Hər şəkildə Git protokolu quraşdırılması çox asandır. Sadəcə olaraq siz bu commandı demonized mannerdə qoşmalısınız:

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

--base-path seçimi insanlara bütün path’i dəqiqləşdirmədən proyektləri klonlamağa imkan verir və sonda path Git daemon’a ixrac edilməli depoları harada axtarmalı olduğunu deyərkən, --reuseaddr seçimi isə serverin köhnə əlaqənin vaxtının bitməsini gözləmədən yenilənməsinə icazə verir. Əgər siz təhlükəsizlik divarı işlədirsinizsə, siz həmçinin qoşduğunuz qutudakı 9418 port’unda dəlik açmalısınız.

Siz bu prosesi işlətdiyiniz əməliyyat sistemindən asılı olaraq bir neçə yolla daemonize edə bilərsiniz.

systemd müasir Linux distribyutorlarında ən ümumi sistem olduğu üçün siz onu bu məqsədlə istifadə edə bilərsiniz. Asanlıqla faylı aşağıdakı məzmunla /etc/systemd/system/git-daemon.service daxil edin.

[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

Fikir versəniz burada Git daemon həm istifadəçi, həm də qrup üçün git ilə başlayır. Onu sizə lazım olduğu kimi dəyişdirin və əmin olun ki, təmin olunan istifadəçi (provided user) sistemdə mövcuddur. Eyni zamanda, /usr/bin/git də yerləşən Git binary’ni yoxlayın və əgər ehtiyac varsa path’i dəyişdirin.

Son olaraq, ön yükləmədəki servisi (service on boot) avtomatik başlatmaq üçün systemctl enable git-daemon-u və ayrılıqda servisi başlatmaq və dayandırmaq üçün systemctl start git-daemonsystemctl stop git-daemon-u qoşacaqsınız.

Digər sistemlərdə siz həmçinin sizin sysvinit sisteminizdəki xinetd sənədini (script) və ya başqa - aldığınız əmr demonized olduğu və ya baxıldığı müddətcə - istifadə edə bilərsiniz.

Daha sonra, Git’ə hansı depoların Git server bazasına təsdiqlənməmiş girişinə icazə verildiyini deməlisiniz. Bunu hər depoda git-daemon-export-ok adlı fayl yaradaraq edə bilərsiniz.

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

Həmin faylın mövcud olması Git’ə bu proyektin təsdiqlənmədən xidmət edilməsinin mümkün olduğunu deyir.