EUR
european

EUR

usa

USD

Ex. VAT Ex. VAT 0%

Kako namestiti GitLab na namenski strežnik

GitLab je platforma za repozitorije Git, pregled kode, sledenje težavam in CI/CD, ki jo lahko poganjate na lastnem strežniku. Samogostovana instanca ohranja vašo izvorno kodo pod vašim nadzorom, njena zmogljivost pa je odvisna samo od virov strežnika in funkcij GitLaba, ki jih uporabljate.

Namenski strežnik je za GitLab zelo primeren. Shranjevanje repozitorijev močno obremenjuje diske, podatkovna zbirka in storitve v ozadju pa potrebujejo stalno količino RAM. Na namenski strojni opremi teh virov ne delite z nikomer, zato GitLab ostane odziven med velikimi potiski (push) in zagoni CI.

Zakaj poganjati lasten GitLab

GitLab.com je priročen za začetek, a ko ekipa raste, je samogostovana instanca pogosto boljša izbira:

  • Koda ostane na vašem strežniku. Izvorna koda, težave in skrivnosti CI/CD so shranjeni na strojni opremi, ki jo nadzirate, na lokaciji podatkovnega centra, ki jo izberete. To je pomembno za projekte z zahtevami NDA ali glede lokacije podatkov.
  • Brez omejitev paketa pri uporabnikih, shrambi in minutah CI/CD. Brezplačna raven GitLab.com jih omejuje, na lastnem strežniku pa omejitve določajo samo njegovi viri.
  • Lastni runnerji CI/CD. Gradnje tečejo na vaših strežnikih brez plačila računskih minut in lahko dostopajo do notranjih storitev, ki so zaprte za internet.
  • Popoln nadzor nad posodobitvami in nastavitvami. Sami odločate, kdaj nadgraditi, katere integracije vklopiti in kako varnostno kopirati podatke.

Če že uporabljate GitLab.com, najprej namestite lastno instanco in nato vanjo prenesite skupine in projekte.

Ta navodila prikazujejo, kako namestite GitLab iz uradnega paketa v Ubuntuju ali Debianu, pridobite brezplačno potrdilo Let's Encrypt in pripravite instanco za svojo ekipo.

Kaj potrebujete pred namestitvijo

Namenski strežnik z vsaj 8 vCPU (nitmi procesorja) in 16 GB RAM. 4-jedrni procesor s tehnologijo Hyper-Threading ali SMT že zagotavlja 8 niti. GitLab se lahko zažene z 8 GB RAM, vendar porabi skoraj vse in bo pod obremenitvijo počasen. Uporabite diske SSD ali NVMe z vsaj 40 GB prostora za sistem in GitLab ter dovolj prostora za vse repozitorije in varnostne kopije.

Na strežniku nameščen Ubuntu 26.04 LTS, Ubuntu 24.04 LTS ali Debian 13. Ukazi v teh navodilih so enaki za vse tri sisteme; kjer se Debian razlikuje, je to navedeno.

Domena ali poddomena za GitLab, na primer gitlab.example.com.

Zapis DNS A, ki to domeno usmerja na javni naslov IPv4 strežnika.

Warning

Če dodate tudi zapis AAAA, mora IPv6 na strežniku že delovati. Let's Encrypt daje prednost IPv6, ko zapis AAAA obstaja, in če strežnik prek IPv6 ni dosegljiv, potrdilo ni izdano. Če niste prepričani, dodajte samo zapis A.

Dostop root ali uporabnik s pravicami sudo. Ukazi v teh navodilih se izvajajo kot root; če uporabljate uporabnika s sudo, jim dodajte sudo. V ukazu, ki doda repozitorij GitLab, postavite sudo pred bash: curl ... | sudo bash.

Vrata 22 (SSH), 80 (HTTP) in 443 (HTTPS) odprta za internet. Vrata 80 so potrebna tudi, če nameravate uporabljati samo HTTPS, ker Let's Encrypt preveri domeno prek HTTP.

Info

V teh navodilih povsod zamenjajte gitlab.example.com z lastno domeno in 203.0.113.10 z naslovom IP svojega strežnika.

Povezava s strežnikom

S svojega računalnika se s strežnikom povežite prek SSH:

ssh [email protected]

Preverite različico operacijskega sistema:

cat /etc/os-release

Primer izpisa:

PRETTY_NAME="Ubuntu 26.04 LTS" NAME="Ubuntu" VERSION_ID="26.04" ...

Izpis mora prikazovati Ubuntu 26.04, Ubuntu 24.04 ali Debian 13. Nato preverite število jeder procesorja, količino RAM in prosti prostor na disku:

nproc free -h df -h /

Prepričajte se, da domena že kaže na strežnik. Ta ukaz zaženite na lokalnem računalniku (deluje v Windows, macOS in Linuxu):

nslookup gitlab.example.com

Zapis A mora vrniti javni naslov IPv4 strežnika. Če uporabljate tudi zapis AAAA, se prepričajte, da je strežnik dosegljiv prek IPv6. Če se naslovi ne ujemajo, popravite zapise DNS in počakajte, da sprememba začne veljati. Ne nadaljujte, dokler se domena ne razreši pravilno, saj GitLab potrdilo Let's Encrypt zahteva med začetno konfiguracijo.

Posodobitev strežnika in namestitev odvisnosti

Posodobite sezname paketov in nameščene pakete:

apt update && apt upgrade -y

Ime gostitelja strežnika nastavite na domeno GitLab. GitLab tega ne zahteva, vendar je tako ime sistema skladno z naslovom GitLab v dnevnikih in odhodni e-pošti:

hostnamectl set-hostname gitlab.example.com

Namestite pakete, ki jih GitLab potrebuje:

apt install -y curl openssh-server ca-certificates perl tzdata locales

GitLab potrebuje tudi jezikovno nastavitev UTF-8: brez nje se priložena zbirka PostgreSQL med namestitvijo morda ne bo inicializirala. Omogočite en_US.UTF-8 na seznamu jezikovnih nastavitev in jo generirajte (v Ubuntuju 26.04 je že omogočena in prvi ukaz ne spremeni ničesar):

sed -i 's/^# *en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen locale-gen

Konfiguracija požarnega zidu

Ta navodila uporabljajo požarni zid UFW. V Ubuntuju je vključen, a privzeto izklopljen; v Debianu ga najprej namestite:

apt install -y ufw

Če je UFW na vašem strežniku že vklopljen, najprej preverite trenutna pravila z ufw status. Dovolite SSH, HTTP in HTTPS in šele nato vklopite požarni zid, da se seja SSH ne prekine:

ufw allow ssh ufw allow http ufw allow https ufw enable

Ko vas sistem prosi za potrditev, odgovorite y. Preverite pravila:

ufw status

Primer izpisa:

Status: active To Action From -- ------ ---- 22/tcp ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443/tcp (v6) ALLOW Anywhere (v6)

Warning

Če vaš strežnik SSH uporablja druga vrata kot 22, ta vrata dovolite pred ufw enable, na primer z ufw allow 2222/tcp. Sicer boste izgubili povezavo.

Dodajanje repozitorija GitLab

GitLab je na voljo v dveh izdajah:

  • GitLab Enterprise Edition (gitlab-ee). Vključuje vse brezplačne funkcije in omogoča kasnejšo aktivacijo plačljivih funkcij brez ponovne namestitve.
  • GitLab Community Edition (gitlab-ce). Povsem odprtokodna gradnja z brezplačnimi funkcijami GitLab.

Ta navodila uporabljajo gitlab-ee. Če imate raje Community Edition, v vseh ukazih gitlab-ee zamenjajte z gitlab-ce.

Dodajte uradni repozitorij GitLab:

curl -fsSL https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | bash

Skripta doda repozitorij in njegov podpisni ključ ter osveži seznam paketov.

Namestitev GitLab

Namestite paket in naslov svoje instance podajte v EXTERNAL_URL. V naslovu uporabite https://: v tem primeru GitLab zahteva potrdilo Let's Encrypt in samodejno nastavi preusmeritev iz HTTP na HTTPS.

EXTERNAL_URL='https://gitlab.example.com' apt install -y gitlab-ee

Med namestitvijo GitLab razpakira svoje komponente (spletni strežnik, zbirko PostgreSQL, Redis, shrambo Git in storitve v ozadju), konfiguracijo zapiše v /etc/gitlab/gitlab.rb, zahteva potrdilo in zažene vse storitve. To traja od 5 do 10 minut. Ko se konča, se izpis zaključi s sporočilom »Thank you for installing GitLab!«.

Primer izpisa:

Thank you for installing GitLab! GitLab should be available at https://gitlab.example.com

GitLab za račun root ustvari naključno geslo in ga shrani v datoteko. Prikažite ga:

cat /etc/gitlab/initial_root_password

Kopirajte geslo. Datoteka se samodejno izbriše 24 ur po namestitvi, zato se prej prijavite in nastavite svoje geslo.

Info

Geslo za root lahko nastavite sami med namestitvijo, tako da v ukaz za namestitev pred EXTERNAL_URL dodate GITLAB_ROOT_PASSWORD='your-password'. Uporabite enojne narekovaje, da lupina ne spremeni znakov, kot sta $ ali !. Če je geslo krajše od 8 znakov, ga GitLab ne uporabi in ustvari naključno geslo.

Odprtje GitLab in preverjanje HTTPS

V brskalniku odprite https://gitlab.example.com. Stran se mora odpreti brez varnostnega opozorila, brskalnik pa mora prikazati veljavno potrdilo, ki ga je izdal Let's Encrypt.

Info

Če stran prikaže napako 502, GitLab še zaganja svoje storitve. Počakajte minuto ali dve in ponovno naložite stran.

Prijavite se z uporabniškim imenom root in geslom iz initial_root_password.

Geslo takoj zamenjajte. Izberite svoj avatar, nato Edit profile. V levem meniju razširite Access, izberite Password and authentication, nato Change password. Vnesite trenutno in novo geslo ter izberite Save password. GitLab zavrne šibka gesla, vključno s tistimi, ki vsebujejo besedo »gitlab« ali vaše uporabniško ime.

Če se stran ne odpre prek HTTPS, potrdilo najverjetneje ni bilo izdano. V tem primeru izpis namestitve vsebuje napako Let's Encrypt. Preverite, ali se domena razreši na naslov IP strežnika, ali so vrata 80 odprta in ali ni zapisa AAAA brez delujočega IPv6. Ko odpravite vzrok, znova zahtevajte potrdilo:

gitlab-ctl reconfigure

Let's Encrypt omejuje število neuspešnih poskusov na uro, zato pred ponovnim poskusom odpravite vzrok.

Osnovna konfiguracija GitLab

Izklop javne registracije. Če je instanca namenjena samo vaši ekipi, izklopite ustvarjanje računov na strani za registracijo. Privzeto se lahko registrira vsak, ki odpre vašo stran GitLab, nov račun pa nato čaka na odobritev skrbnika. Najhitreje je to storiti z gumbom Deactivate v pasici na domači strani GitLab. Lahko pa v zgornjem desnem kotu izberete Admin, odprete Settings > General in razširite New user account restrictions. Počistite potrditveno polje Allow new user accounts in izberite Save changes. Nove račune bodo nato ustvarjali samo skrbniki.

Ustvarjanje uporabniških računov. Pojdite na Admin > Instance overview > Users in izberite New user, izpolnite ime, uporabniško ime in e-poštni naslov ter izberite Create user. Za vsakodnevno delo uporabljajte osebni račun s skrbniškimi pravicami, račun root pa le po potrebi.

Ustvarjanje skupine. Skupine povezujejo projekte in člane ekipe. V zgornji vrstici izberite Create new (ikona plus), nato New group > Create group, vnesite ime in izberite Create group. Sodelavce dodajte v skupino v Manage > Members.

Dodajanje ključa SSH. Za delo z repozitoriji prek SSH vsak uporabnik doda svoj javni ključ v Edit profile > Access > SSH keys: izberite Add new key, prilepite ključ in izberite Add key.

Info

GitLab pošilja e-pošto za ponastavitev gesel, potrditev računov in odklepanje po neuspešnih poskusih prijave. Dokler odhodna e-pošta ni nastavljena (glejte »Kaj nastaviti naprej«), te funkcije ne delujejo in morajo skrbniki gesla ponastavljati ročno.

Preverjanje namestitve

Preverite, ali vse storitve GitLab delujejo:

gitlab-ctl status

Primer izpisa:

run: gitaly: (pid 2981) 512s; run: log: (pid 2975) 512s run: gitlab-workhorse: (pid 3412) 498s; run: log: (pid 3401) 498s run: nginx: (pid 3530) 495s; run: log: (pid 3522) 495s run: postgresql: (pid 3105) 507s; run: log: (pid 3098) 507s run: puma: (pid 3288) 501s; run: log: (pid 3280) 501s run: redis: (pid 2950) 514s; run: log: (pid 2944) 514s run: sidekiq: (pid 3350) 499s; run: log: (pid 3342) 499s ...

Vsaka vrstica se mora začeti z run:.

Zaženite vgrajeno preverjanje konfiguracije in storitev:

gitlab-rake gitlab:check SANITIZE=true

Ustvarite testni repozitorij. V spletnem vmesniku izberite Create new > New project/repository > Create blank project, vnesite ime test, izberite svojo skupino in pustite izbrano možnost Initialize repository with a README. Izberite Create project.

S svojega računalnika preverite dostop prek SSH:

ssh -T [email protected]

Primer izpisa:

Welcome to GitLab, @username!

Delujoča nastavitev odgovori s pozdravnim sporočilom, ki vsebuje vaše uporabniško ime. Nato klonirajte testni repozitorij:

git clone [email protected]:group/test.git

Zamenjajte group s potjo svoje skupine. Če se repozitorij klonira in vsebuje README.md, je GitLab nameščen in deluje.

Kaj nastaviti naprej

Varnostne kopije. Ukaz gitlab-backup create ustvari varnostno kopijo aplikacije z zbirko GitLab, repozitoriji in drugimi podatki aplikacije v /var/opt/gitlab/backups. Konfiguracijski datoteki /etc/gitlab/gitlab.rb in /etc/gitlab/gitlab-secrets.json nista vključeni in ju je treba varnostno kopirati ločeno, na primer z gitlab-ctl backup-etc. Brez gitlab-secrets.json obnovljena instanca ne more dešifrirati nastavitev 2FA in spremenljivk CI/CD. Varnostne kopije aplikacije in konfiguracije izdelujte redno in jih kopirajte v shrambo zunaj strežnika GitLab, na primer v INTROSERV Cloud Storage: glejte Povezava INTROSERV Cloud Storage s strežnikom.

Odhodna e-pošta. V /etc/gitlab/gitlab.rb nastavite strežnik SMTP, da lahko GitLab pošilja obvestila, ponastavitve gesel in potrditve računov. Glejte Nastavitve SMTP v dokumentaciji GitLab.

GitLab Runner. Runner izvaja cevovode CI/CD. Gradnje porabijo veliko CPU in RAM, zato je Runner bolje namestiti na ločen VPS ali namenski strežnik kot na sam strežnik GitLab.

Posodobitve. GitLab vsak mesec izda novo različico, varnostne popravke pa pogosteje. Pred nadgradnjo čez več različic preverite uradno pot nadgradnje: GitLab mora iti skozi določene vmesne različice. Ustvarite varnostno kopijo in nato posodobite z apt update && apt install -y gitlab-ee.

Nadzor. GitLab vključuje Prometheus in izvaža lastne metrike. Zdravje instance lahko preverite v Admin > Monitoring > Health check, tam navedene končne točke pa lahko povežete z zunanjim sistemom za nadzor.

Za izbiro strežnika za svojo instanco GitLab glejte stran Namenski strežniki.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • kingdom
  • germany
  • Español
  • French
  • Hrvatska
  • Italiano
  • Poland
  • Slovenski
  • ukraine
  • Türkçe
  • Русский
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA