Preduvjeti
Instaliranje potrebnog softvera
Kreiranje Git direktorija
Konfiguriranje Nginxa
Dodavanje provjere autentičnosti lozinkom
Posljednji korak
(Neobavezno) Napravite skriptu koja inicijalizira Git spremišta
Git je sustav kontrole verzija (VCS) koji omogućuje praćenje promjena u kodu. U ovom vodiču proći ćemo kroz instalaciju HTTP(S) Git poslužitelja i dodavanje provjere autentičnosti korisničkog imena/lozinke.
Preduvjeti
- Debian 8 (Jessie).
- Sudo .
- Uređivač teksta po vašem izboru (
nano, vim).
Instaliranje potrebnog softvera
Trebat će nam nginx, git, fcgiwrapi apache httpd utils. Samo naprijed i upišite u terminal.
sudo apt-get install nginx git fcgiwrap apache2-utils
dpkg will fail to install Nginx if another process (such as Apache) is already bound to port 80.
Kreiranje Git direktorija
Pod pretpostavkom da biste željeli stvoriti git direktorij na /var/www/git, trebali biste pokrenuti sljedeće naredbe:
mkdir /var/www/git
chown www-data:www-data /var/www/git # Make sure www-data (the user fastcgi runs) from has permissions.
Konfiguriranje Nginxa
Sada moramo konfigurirati Nginx da prosljeđuje Git promet na Git. Ovo se može dodati zadanoj konfiguraciji, prilagođenoj server {}na /etc/nginx/conf.dili /etc/nginx/sites-enabled.
The configuration file's parameters and directive must be added in the order in which they are listed below.
location ~ (/.*) {
client_max_body_size 0; # Git pushes can be massive, just to make sure nginx doesn't suddenly cut the connection add this.
auth_basic "Git Login"; # Whatever text will do.
auth_basic_user_file "/var/www/git/htpasswd";
include /etc/nginx/fastcgi_params; # Include the default fastcgi configs
fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend; # Tells fastcgi to pass the request to the git http backend executable
fastcgi_param GIT_HTTP_EXPORT_ALL "";
fastcgi_param GIT_PROJECT_ROOT /var/www/git; # /var/www/git is the location of all of your git repositories.
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param PATH_INFO $1; # Takes the capture group from our location directive and gives git that.
fastcgi_pass unix:/var/run/fcgiwrap.socket; # Pass the request to fastcgi
}
Ako želite imati svoja git repozitorija u poddirektoriju, tj. http://your-domain.com/reposnapravi prvi red location ~ /repos(/.*) {, to je regex.
Make sure the server_name directive in your server {} doesn't clash with anything else or else Nginx wont pass the request on.
Dodavanje provjere autentičnosti lozinkom
Nginx prihvaća Apache htpasswddatoteke, da bismo ih stvorili, morat ćemo izvršiti sljedeću naredbu:
htpasswd -c /var/www/git/htpasswd <your username>
Od vas će se tražiti da unesete svoju lozinku. Da biste dodali više korisnika, učinite:
htpasswd /var/www/git/htpasswd <another username>
Posljednji korak
Obavezno ponovno učitajte Nginx da biste primijenili sve promjene tako što ćete pokrenuti:
sudo service nginx reload
Sada imate privatni Git poslužitelj! Uživati.
(Neobavezno) Napravite skriptu koja inicijalizira Git spremišta
Imajte na umu da www-data(korisnički račun pod kojim FastCGI radi) mora imati pristup za čitanje i pisanje Git repozitoriju, a stvaranje skripte sada štedi glavobolje kasnije.
Otvorite datoteku skripte, tj. /var/www/git/gitinit.shi zalijepite sljedeće:
#!/bin/sh
sudo -u www-data mkdir $1
cd $1
sudo -u www-data git init --bare
Skriptu možete pokrenuti ovako:
cd /var/www/git
./gitinit.sh repo-name
Ne zaboravite dopustiti izvršenje pokretanjem:
chmod +x /var/www/git/gitinit.sh