Preduvjeti
Korak 1: Izvršite osnovne zadatke za hosting GitLab CE
Korak 2: Instalirajte potrebne ovisnosti
Korak 3: Postavite GitLab APT repo i zatim instalirajte GitLab CE
Korak 4: Omogućite HTTPS pristup integracijom Let's Encrypt SSL certifikata
Otkako je Microsoft kupio GitHub, dosta programera planiralo je premjestiti vlastita spremišta koda s github.com na alternativno rješenje s vlastitim hostingom. GitLab Community Edition (CE) je najčešći izbor.
Kao sofisticirano i fleksibilno rješenje, GitLab CE se može implementirati raznim metodama, ali ovdje će biti pokrivena samo službeno preporučena metoda, instalacija Omnibus paketa.
Preduvjeti
- Svježa instanca poslužitelja Vultr Debian 9 x64 s najmanje 4 GB memorije. 8 GB ili više preporučuje se za opsluživanje do 100 korisnika. Recimo da je njegova IPv4 adresa
203.0.113.1.
- Korisnik sudoa .
- Domena
gitlab.example.comje usmjerena na gore spomenutu instancu.
Napomena: Prilikom postavljanja na vlastitu instancu poslužitelja, svakako zamijenite sve primjere vrijednosti stvarnim.
Pokrenite SSH terminal i prijavite se na svoju instancu poslužitelja Debian 9 x64 kao sudo korisnik.
Dodajte zamjensku particiju i prilagodite postavku zamjene
Prilikom implementacije GitLab CE 11.x na stroju s 4 GB memorije, potrebno je postaviti swap particiju od 4 GB za nesmetan rad.
sudo dd if=/dev/zero of=/swapfile count=4096 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -m
Napomena: Ako koristite drugu veličinu poslužitelja, veličina swap particije može varirati.
Za potrebe performansi sustava, preporuča se konfigurirati postavku zamjene kernela na nisku vrijednost kao što je 10:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
cat /proc/sys/vm/swappiness
Izlaz catnaredbe će biti 10.
Postavite ime računala i potpuno kvalificirani naziv domene (FQDN)
Koristite sljedeće naredbe za postavljanje imena hosta gitlab, i FQDN, gitlab.example.com, za stroj:
sudo hostnamectl set-hostname gitlab
sudo sed -i "1 i\203.0.113.1 gitlab.example.com gitlab" /etc/hosts
Rezultate možete potvrditi:
hostname
hostname -f
Postavite pravila vatrozida
Postavite razumna pravila vatrozida za pokretanje web stranice:
sudo iptables -F
sudo iptables -X
sudo iptables -Z
sudo iptables -A INPUT -s $(echo $(w -h ${USER}) | cut -d " " -f3) -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -d 127.0.0.0/8 -j REJECT
sudo iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
sudo iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
sudo iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD DROP
Sve gore navedene postavke odmah će stupiti na snagu. Upotrijebite sljedeću naredbu da ih popišete za pregled:
sudo iptables -L -n
Koristite iptable-persistentalat za spremanje svih postojećih iptables pravila u datoteku /etc/iptables/rules.v4, čineći sva iptables pravila trajnima:
sudo apt install -y iptables-persistent
Tijekom instalacije bit ćete upitani želite li spremiti trenutna IPv4/IPv6 pravila. Pritisnite ENTERdvaput za spremanje trenutnih IPv4 i IPv6 pravila na /etc/iptables/rules.v4i /etc/iptables/rules.v6.
Ako kasnije pokušate ažurirati pravila IPv4, upotrijebite sljedeće za spremanje ažuriranja:
sudo bash -c 'iptables-save > /etc/iptables/rules.v4'
Ažurirajte sustav
sudo apt update
sudo apt upgrade -y && sudo shutdown -r now
Kada se sustav ponovno pokrene, prijavite se ponovo kao isti sudo korisnik da biste nastavili dalje.
Korak 2: Instalirajte potrebne ovisnosti
Prije instaliranja GitLab CE, morate instalirati potrebne ovisnosti:
sudo apt install -y curl openssh-server ca-certificates
Također, ako želite koristiti Postfix za slanje poruka obavijesti, morate instalirati Postfix:
sudo apt install -y postfix
Tijekom instalacije može se pojaviti zaslon za konfiguraciju:
- Pritisnite TABda biste označili
<OK>gumb na prvom zaslonu, a zatim pritisnite ENTER.
- Odaberite
Internet Sitei pritisnite ENTER.
- Za
mail namepolje unesite FQDN vašeg poslužitelja gitlab.example.com, i pritisnite ENTER.
- Ako se pojave drugi zasloni, pritisnite ENTERza prihvaćanje zadanih postavki.
Pokrenite i omogućite uslugu Postfix:
sudo systemctl enable postfix.service
sudo systemctl start postfix.service
Izmijenite pravila vatrozida za Postfix:
sudo iptables -A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 143 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 993 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 110 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 995 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo bash -c 'iptables-save > /etc/iptables/rules.v4'
Nakon što je Postfix instaliran, morate konfigurirati Postfix uređujući njegovu glavnu konfiguracijsku datoteku /etc/postfix/main.cfu skladu sa stvarnim postavkama poslužitelja.
Napomena: Osim gornjih uputa, morate poslati kartu za podršku kako biste otkazali Vultrovu zadanu blokadu na SMTP portu 25.
Alternativno, ako želite koristiti drugo rješenje za razmjenu poruka, samo preskočite instalaciju Postfixa i odaberite korištenje vanjskog SMTP poslužitelja nakon što je GitLab CE instaliran.
Korak 3: Postavite GitLab APT repo i zatim instalirajte GitLab CE
Postavite GitLab CE APT spremište na vašem sustavu:
cd
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
Zatim instalirajte GitLab CE 11.x:
sudo EXTERNAL_URL="http://gitlab.example.com" apt install -y gitlab-ce
Instalacija može potrajati neko vrijeme.
Konačno, usmjerite svoj omiljeni web-preglednik na http://gitlab.example.com, a zatim pošaljite novu lozinku kako se od vas zatraži da završite instalaciju.
Od sada, koristite vjerodajnice u nastavku za prijavu kao administrator:
- Korisničko ime:
root
- Zaporka:
<your-new-password>
Korak 4: Omogućite HTTPS pristup integracijom Let's Encrypt SSL certifikata
Za sada ste uspješno instalirali GitLab CE 11.x na svoju instancu poslužitelja, a korisnici već mogu posjetiti stranicu koristeći HTTP protokol. Iz sigurnosnih razloga, preporučuje se omogućiti HTTPS pristup vašem GitLab poslužitelju integracijom Let's Encrypt SSL certifikata.
Koristite viuređivač za otvaranje GitLab CE konfiguracijske datoteke:
sudo vi /etc/gitlab/gitlab.rb
Pronađite sljedeća dva retka:
external_url 'http://gitlab.example.com'
# letsencrypt['contact_emails'] = [] # This should be an array of email addresses to add as contacts
Zamijenite ih u skladu s tim:
external_url 'https://gitlab.example.com'
letsencrypt['contact_emails'] = ['admin@example.com']
Spremi i zatvori:
:wq!
Ponovno konfigurirajte GitLab CE koristeći ažurirane postavke:
sudo gitlab-ctl reconfigure
Rekonfiguracija može potrajati neko vrijeme.
Nakon što se rekonfiguracija izvrši, svi će korisnici biti prisiljeni koristiti HTTPS protokol prilikom pristupa GitLab stranici.
Napomena: Nakon prebacivanja s HTTP-a na HTTPS, naslijeđeni kolačići mogu uzrokovati GitLab 422 pogrešku. Brisanje kolačića rješava ovaj problem.