Preduvjeti
Instaliranje preduvjeta
Instalacija GitBucketa
Konfiguriranje Nginx obrnutog proxyja
Ovaj vodič pokriva osnovnu instalaciju i postavljanje GitBucketa za Vultr instancu s Ubuntu 16.04 i pretpostavlja da izvršavate naredbe kao non-rootkorisnik.
Preduvjeti
- Instanca poslužitelja Vultr s najmanje 1 GB RAM-a (manje instance mogu raditi, iako sporo).
openjdk-8-jre Obavezno, starije verzije neće raditi.
wget Koristi se za preuzimanje GitBucket paketa.
nginx Opcionalno, pruža obrnuti proxy za GitBucket
systemd Upravlja pokretanjem i zaustavljanjem GitBucket procesa
Instaliranje preduvjeta
GitBucket zahtijeva instaliranje Java 8 ili novije na vašem poslužitelju. Ako još niste instalirali Javu 8, prvo ažurirajte svoje lokalne popise paketa.
sudo apt update
Zatim instalirajte Java 8 runtime paket.
sudo apt install openjdk-8-jre
Instalacija GitBucketa
Stvaranje neprivilegiranog korisnika
Morat ćemo stvoriti neprivilegiranog korisnika za pokretanje GitBucketa prije nego što nastavimo dalje. Pokretanje GitBucketa pod neprivilegiranim korisnikom ograničava našu instalaciju od pisanja izvan vlastitog imenika podataka, jačajući sigurnost vašeg poslužitelja. Pokrenite sljedeću naredbu za stvaranje korisnika sustava pod nazivom gitbucket.
sudo adduser --system gitbucket
Budući da smo stvorili korisnika sustava , zadana ljuska je /bin/false, i bit ćemo vraćeni na našu trenutnu ljusku osim ako ne damo dodatni argument ljuske prilikom pokretanja su. Prijavite se na novostvorenog korisnika.
sudo su - gitbucket -s /bin/bash
Prompt vaše ljuske trebao bi se promijeniti, a vi ćete biti prijavljeni na novog korisnika sustava.
Preuzimanje/ažuriranje GitBucketa
Idite na stranicu izdanja GitBucket i pronađite najnoviju dostupnu verziju. Kopirajte URL za gitbucket.warpaket, provjerite jeste li u početnom imeniku novog korisnika i preuzmite ga pomoću wget.
cd ~/
wget https://github.com/gitbucket/gitbucket/releases/download/4.18.0/gitbucket.war
Morat ćete ponoviti ovaj korak svaki put kada želite ažurirati GitBucket paket.
Početna konfiguracija GitBucketa
Nakon što je paket preuzet, morat ćemo ručno pokrenuti GitBucket kako bismo izvršili početnu konfiguraciju.
java -jar gitbucket.war --port 8080
Ako je port 8080već zauzet drugim procesom, možete promijeniti port koji će GitBucket sada slušati. Ovaj vodič pretpostavlja da GitBucket sluša port8080 .
Ovo će pokrenuti GitBucket na javnom mrežnom sučelju vašeg poslužitelja, slušajući na navedenom portu. Nakon nekoliko trenutaka trebali biste vidjeti sljedeću poruku.
INFO:oejs.Server:main: Started @15891ms
Ako koristite Vultrov vatrozid , morat ćete otvoriti port koji GitBucket sluša, budući da Vultrov vatrozid radi kao bijeli popis, odbijajući promet kako bi omogućio portove osim ako nije drugačije navedeno.
Vaša GitBucket instalacija sada bi trebala biti online i dostupna s interneta. Pomoću web-preglednika povežite se s javnom adresom vašeg poslužitelja (navedite port na kojem se GitBucket izvodi (tj. http://203.0.113.0:8080ili http://example.com:8080) i sletjet ćete na GitBucket-ovu početnu stranicu.
Međutim, potrebno je promijeniti lozinku zadanog administratorskog računa. Da biste to učinili, prijavite se na administratorski račun putem Sign ingumba u gornjem desnom kutu web sučelja. Zadana prijava za administratorski račun je rootza korisničko ime, a zatim rootopet za lozinku. Nakon prijave, gumb će biti zamijenjen ikonom profila i padajućim izbornikom. Proširite padajući izbornik i odaberite Account Settings, a zatim postavite novu, sigurniju lozinku u čarobnjaku za postavke računa.
Nakon što ste ažurirali vjerodajnice zadanog administratorskog računa i potvrdili da se GitBucket pokreće u ovoj minimalnoj konfiguraciji, zaustavite Java proces s " CTRL+C" i zatvorite trenutnu ljusku s exit.
Stvaranje usluge Systemd
Trenutno GitBucket možemo pokrenuti samo pristupanjem našem poslužitelju putem SSH-a i pokretanjem procesa iz ljuske ručno. Srećom, Ubuntu dolazi unaprijed zapakiran s Systemd, što nam omogućuje stvaranje usluge s kojom će GitBucket biti automatski pokrenut i održavan od strane sustava.
Koristeći nano, stvorite novu jediničnu datoteku u /etc/systemd/systemdirektoriju.
sudo nano /etc/systemd/system/gitbucket.service
Zatim kopirajte sljedeći sadržaj u datoteku.
[Unit]
Description=GitBucket
After=network.target
[Service]
ExecStart=/usr/bin/java -jar /home/gitbucket/gitbucket.war --port 8080
ExecStop=/bin/kill -SIGINT $MAINPID
Type=simple
User=gitbucket
[Install]
WantedBy=multi-user.target
Ova datoteka jedinice definira osnovno ponašanje pokretanja i isključivanja za GitBucket i pokreće uslugu pod našim neprivilegiranim korisnikom sustava na lokalnom mrežnom sučelju.
Ako ste promijenili broj porta koji će GitBucket slušati, promijenite --portargument za ExecStartnaredbu.
Spremite (" CTRL+O") novu datoteku jedinice i zatim izađite iz uređivača (" CTRL+X"). Morat ćete ponovno učitati Systemd da bi se otkrila nova datoteka jedinice.
sudo systemctl daemon-reload
Nakon što se Systemd ponovno učita, provjerite je li nova jedinica otkrivena i učitana.
sudo systemctl status gitbucket
Trebali biste vidjeti sljedeći izlaz.
gitbucket.service - GitBucket
Loaded: loaded (/etc/systemd/system/gitbucket.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Konačno, omogućite da se nova jedinica automatski pokrene kada se vaš poslužitelj pokrene, a zatim pokrenite uslugu po prvi put.
sudo systemctl enable gitbucket
sudo systemctl start gitbucket
Nakon što se usluga pokrene, moći ćete ponovno pristupiti GitBucketu iz svog preglednika koristeći IP adresu i broj porta.
Konfiguriranje Nginx obrnutog proxyja
Iako se GitBucket može izložiti izravno putem porta 8080, možete poboljšati performanse i konfigurirati značajke kao što su HTTP/2, TLS enkripcija i pravila predmemoriranja izlaganjem GitBucketa kroz Nginx.
Početna postavka Nginxa
Ako još niste instalirali Nginx, ažurirajte svoje popise paketa.
sudo apt update
Zatim instalirajte Nginx paket.
sudo apt install nginx
Nakon što je Nginx instaliran, provjerite možete li pristupiti web poslužitelju putem IP adrese vašeg poslužitelja bez broja porta (tj. http://203.0.113.0ili http://example.com). Ako bude uspješan, vidjet ćete zadanu Nginx odredišnu stranicu za Ubuntu.
Izrada obrnutog proxyja
Kopirat ćemo zadanu konfiguraciju web-mjesta /etc/nginx/sites-availablekao početnu točku za obrnuti proxy.
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/gitbucket
Otvorite novostvorenu konfiguracijsku datoteku pomoću nano.
sudo nano /etc/nginx/sites-available/gitbucket
Pronađite postojeći location /blok na liniji 43.
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
Trenutno će Nginx pokušati vratiti datoteke koje se nalaze u /var/www/htmlkojima se podudaraju dolazni HTTPzahtjevi. Morat ćemo promijeniti ovo ponašanje konfiguriranjem obrnutog proxyja u ovom bloku, koji će umjesto toga slati sve HTTP zahtjeve upućene našem Nginx poslužitelju GitBucket instanci. Ažurirajte location /blok tako da odgovara sljedećem.
location / {
proxy_pass http://localhost:8080; # The address GitBucket is listening on
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 150;
proxy_send_timeout 100;
proxy_read_timeout 100;
proxy_buffers 4 32k;
client_max_body_size 512m; # Needed for large Git operations over HTTP
client_body_buffer_size 128k;
}
Ako ste promijenili broj porta na kojem će GitBucket slušati, ažurirajte proxy_passopciju da to odražava.
Da biste omogućili našu novu konfiguraciju, morat ćete onemogućiti postojeću zadanu konfiguraciju u /etc/nginx/sites-enabled, a zatim simbolizirati našu novu konfiguraciju /etc/nginx/sites-enabledkroz sljedeće.
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/gitbucket /etc/nginx/sites-enabled/gitbucket
Nakon što je konfiguracijska datoteka omogućena, provjerite ima li sintaksičkih pogrešaka.
sudo nginx -t
Zatim ponovno pokrenite Nginx poslužitelj kako biste omogućili našu novu konfiguraciju web-mjesta.
sudo systemctl restart nginx
Sada biste trebali moći pristupiti svojoj GitBucket instalaciji na javnoj adresi vašeg poslužitelja bez broja porta.
Osiguravanje GitBucket procesa s javnog interneta
Trenutno, naša GitBucket instanca sluša na javnom mrežnom sučelju našeg poslužitelja . To će omogućiti korisnicima da zaobiđu Nginx proxy povezivanjem na adresu koju GitBucket trenutno sluša, što je vjerojatno neželjeno. Morat ćemo izmijeniti datoteku jedinice koju smo ranije kreirali da to riješimo. Otvorite datoteku jedinice pomoću nano.
sudo nano /etc/systemd/system/gitbucket.service
Dodavanje --host 127.0.0.1na ExecStartnaredbu, kao što je tako.
...
ExecStart=/usr/bin/java -jar /home/gitbucket/gitbucket.war --port 8080 --host 127.0.0.1
...
To će uzrokovati da GitBucket prihvaća samo veze na sučelju lokalne mreže našeg poslužitelja. Još jednom, spremite (" CTRL+O") datoteku, zatvorite (" CTRL+X") uređivač, ponovno učitajte Systemd i ponovno pokrenite našu GitBucket jedinicu.
sudo systemctl daemon-reload
sudo systemctl restart gitbucket
Ako koristite Vultrov vatrozid, također biste trebali ukloniti sva pravila portova koja ste dodali za pristup GitBucket poslužitelju tijekom početnog postavljanja.