Git
Chapters ▾ 2nd Edition

4.5 Git na strežniku - Prikriti proces Git

Prikriti proces Git

Naslednje bomo nastavili prikriti proces (angl. daemon), ki streže repozitorije preko protokola »Git«. To je pogosta izbira za hiter, neoverjen dostop do vaših podatkov Git. Bodite pozorni, saj to ni overjena storitev in karkoli ponudite preko tega protokola, je javno znotraj njegovega omrežja.

Če ga poganjate na strežniku izven svojega požarnega zidu, bi moral biti uporabljen samo za projekte, ki so javno vidni svetu. Če je strežnik, na katerem ga poganjate, znotraj vašega požarnega zidu, ga boste mogoče uporabili za projekte, do katerih ima veliko število ljudi ali računalnikov (stalna integracija ali strežniki za gradnjo) samo bralni dostop, ko ne želite dodati ključa SSH za vsakega.

V kateremkoli primeru je protokol Git relativno enostavno nastaviti. V osnovi morate pognati ta ukaz v načinu prikritega procesa:

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

Možnost --reuseaddr omogoča strežniku ponovni zagon brez čakanja, da stare povezave pretečejo, medtem ko možnost --base-path omogoča ljudem klonirati projekte brez določanja celotne poti in pot na koncu pove prikritemu procesu Git, da poišče repozitorije za izvoz. Če poganjate požarni zid, boste morali narediti vanj tudi luknjo na vratih 9418 na napravi, kjer to nastavljate.

Ta proces lahko prikrijete na število načinov, odvisno od operacijskega sistema, na katerem ga poganjate.

Ker je systemd najpogostejši zagonski sistem na modernih distribucijah Linuxa, ga lahko uporabite za ta namen. Enostavno dodate datoteko v /etc/systemd/system/git-daemon.service s sledečo vsebino:

[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

Morda ste opazili, da je prikriti proces Git tu začet z git tako za skupino kot za uporabnika. Spremenite ga, da ustreza vašim potrebam in zagotovite, da podani uporabnik obstaja na sistemu. Preverite tudi, da je zagonska datoteka Git prav zares na /usr/bin/git, drugače spremenite pot, kot je treba.

Na koncu boste pognali systemctl enable git-daemon, da se storitev avtomatsko zažene pri zagonu, in storitev lahko zaženete in končate s systemctl start git-daemon in systemctl stop git-daemon.

Na drugih sistemih, boste morda želeli uporabiti xinetd, skript v vašem sistemu sysvinit, ali kaj drugega — dokler dobite ta ukaz kot prikriti proces in da je nekako spremljan.

Naslednje morate Gitu povedati, katerim repozitorijem se dovoli neoverjen strežniško osnovani dostop Git. To lahko naredite v vsakem repozitoriju z izdelavo datoteke poimenovane git-daemon-export-ok.

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

Prisotnost te datoteke pove Gitu, da je v redu ponuditi ta projekt brez overjanja.

scroll-to-top