Table of Contents

GitLab CE - príručka pre začiatočníkov

GitLab CE je self-hosted DevOps platforma s repozitármi Git, CI/CD pipeline, sledovaním úloh, wiki, registrom kontajnerov a ďalšími funkciami – open-source alternatíva ku GitHubu, ktorú plne ovládate. Server obsahuje plne nainštalovaný a nakonfigurovaný GitLab CE s heslom administrátora, ktoré ste zadali pri objednávke. GitLab je pripravený na použitie po krátkom úvodnom nastavení (2-4 minúty pri prvom štarte).


Krok 1 – Overte, že GitLab funguje

IP adresa a heslo root vášho servera sú uvedené na stránke Server Details v klientskom paneli. GitLab je dostupný po dokončení úvodného nastavenia (2-4 minúty po vytvorení servera). Otvorte http://your.server.ip v prehliadači a overte, že funguje. Ak uvidíte chybu 502, počkajte niekoľko minút a obnovte stránku – GitLab sa ešte spúšťa.

Prihlásenie do GitLab:

  • Používateľské meno: root
  • Heslo: GitLab Root Password, ktoré ste zadali pri objednávke

GitLab spočiatku beží cez HTTP. Na zapnutie HTTPS s bezplatným certifikátom Let’s Encrypt najprv nastavte doménu (pozri krok 3).

Ak ste server umiestnili za router VyOS v privátnej sieti, buď nastavte presmerovanie portov (22, 80 a 443), aby bol GitLab dostupný z internetu, alebo sa pripojte cez VPN a ku GitLabu pristupujte cez privátnu IP servera.


Krok 2 – Vytvorenie prvého projektu

Kliknite na New project na nástenke, zvoľte Create blank project, zadajte názov a kliknite na Create project.

Naklonujte repozitár cez HTTPS alebo SSH:

# HTTPS
git clone http://your.server.ip/root/my-project.git

# SSH (add your public key in Preferences > SSH Keys first)
git clone git@your.server.ip:root/my-project.git

Krok 3 – Nastavenie vlastnej domény a HTTPS

GitLab má vstavanú podporu Let’s Encrypt. Zapnutie HTTPS s vašou doménou:

  1. Vytvorte DNS A záznam smerujúci vašu doménu na IP servera:
    Typ Názov Hodnota
    Agitlabyour.server.ip
  2. Pripojte sa k serveru cez SSH a upravte /etc/gitlab/gitlab.rb:
    nano /etc/gitlab/gitlab.rb
    Zmeňte riadok external_url tak, aby používal HTTPS s vašou doménou:
    external_url 'https://gitlab.yourdomain.com'
  3. Použite konfiguráciu:
    gitlab-ctl reconfigure
    GitLab automaticky získa a nastaví certifikát Let’s Encrypt. Certifikát sa obnovuje automaticky.

Pred spustením reconfigure sa uistite, že sa A záznam domény rozšíril. Zmeny DNS sa zvyčajne prejavia v priebehu niekoľkých minút, ale môže to trvať až 24 hodín. Overte na dnschecker.org.


Krok 4 – CI/CD pipeline

GitLab má vstavané CI/CD. Na vytvorenie pipeline pridajte do koreňa repozitára súbor .gitlab-ci.yml :

stages:
  - build
  - test

build-job:
  stage: build
  script:
    - echo "Building the project..."

test-job:
  stage: test
  script:
    - echo "Running tests..."

Pipeline sa spúšťajú automaticky pri každom push. Výsledky nájdete v projekte v Build > Pipelines.

Poznámka: Na spúšťanie pipeline treba zaregistrovať GitLab Runner. Postupujte podľa návodu na inštaláciu GitLab Runner a nastavte runner na tomto serveri alebo na samostatnom stroji.


Po inštalácii

Fail2Ban – ochrana proti útokom hrubou silou

Váš server obsahuje Fail2Ban predkonfigurovaný na ochranu SSH proti útokom hrubou silou.

Pravidlo Max. počet pokusov Doba blokovania
SSH5 neúspešných prihlásení1 hodina

Užitočné príkazy:

# Check banned IPs
fail2ban-client status sshd

# Unban an IP
fail2ban-client set sshd unbanip 1.2.3.4

GitLab má aj vlastnú ochranu prihlásenia do webu proti útokom hrubou silou. Ak sa omylom zablokujete, pripojte sa cez konzolu VNC v klientskom paneli a odblokujte svoju IP.

Aktualizácie

Dôležité: GitLab CE sa neaktualizuje automaticky (je vylúčený z automatických aktualizácií). GitLab sa musí aktualizovať cez konkrétne medziľahlé verzie – preskočenie verzií môže inštanciu poškodiť.

Vždy skontrolujte oficiálnu cestu aktualizácie . Postup aktualizácie:

# Check current version
gitlab-rake gitlab:env:info | grep "GitLab"

# Update to a specific version (follow the upgrade path!)
apt update
apt install gitlab-ce=X.Y.Z-ce.0

# Apply changes
gitlab-ctl reconfigure

Aktualizácie OS možno vykonať cez SSH:

apt update && apt upgrade -y

Prihlasovacie údaje servera

Prihlasovacie údaje administrátora GitLab sú uložené v /root/.gitlab_credentials. Uvidíte ich aj po pripojení cez SSH (zobrazujú sa v uvítacej správe).

Správa služieb

GitLab Omnibus spája všetky služby (Nginx, PostgreSQL, Redis, Puma, Sidekiq) pod príkazom gitlab-ctl :

# Service management
gitlab-ctl status              # check all services
gitlab-ctl restart             # restart all services
gitlab-ctl start               # start all services
gitlab-ctl stop                # stop all services

# Configuration
gitlab-ctl reconfigure         # apply changes from gitlab.rb

# Logs
gitlab-ctl tail                # live log output (all services)
gitlab-ctl tail nginx          # Nginx logs only
gitlab-ctl tail puma           # application server logs

# Backups
gitlab-backup create           # create data backup
gitlab-ctl backup-etc          # backup configuration files

# Reset root password
gitlab-rails console -e production
# Then in console:
#   user = User.find_by_username('root')
#   user.password = 'newpassword'
#   user.password_confirmation = 'newpassword'
#   user.save!

Zahrnutý softvér

Komponent Podrobnosti
Ubuntu24.04 LTS
GitLab CEOmnibus (Nginx, PostgreSQL, Redis, Puma, Sidekiq)
CI/CDVstavané CI/CD pipeline GitLab
PostfixLokálny MTA pre e-mailové oznámenia
Let’s EncryptVstavaná správa certifikátov SSL
Fail2BanOchrana SSH proti útokom hrubou silou

Riešenie problémov

Problém Riešenie
Chyba 502 hneď po vytvorení GitLab sa ešte spúšťa (prvý štart trvá 2-4 minúty). Počkajte a obnovte stránku. Priebeh zistíte: gitlab-ctl status
Nedá sa dostať do webového rozhrania GitLab Kontrola služieb: gitlab-ctl status. Ak služby nebežia, skúste gitlab-ctl restart
Certifikát Let’s Encrypt zlyhal Uistite sa, že DNS A záznam smeruje na IP servera. Overte na dnschecker.org. Prezrite si chyby: gitlab-ctl tail nginx
Git push/pull cez SSH zlyháva Pridajte verejný SSH kľúč v GitLab (Preferences > SSH Keys). Použite git@ v URL na klonovanie
Zabudnuté heslo administrátora Pripojte sa cez SSH a skontrolujte /root/.gitlab_credentialsalebo resetujte cez gitlab-rails console (pozri Správa služieb)
Vysoké využitie pamäte GitLab s použitými optimalizáciami využíva ~2,5-3 GB RAM. Minimálne odporúčanie: 4 GB RAM. Ak pamäť dochádza, zvážte vyšší tarif servera
Zablokované službou Fail2Ban Odblokujte svoju IP cez konzolu VNC v klientskom paneli: fail2ban-client set sshd unbanip 1.2.3.4
Reconfigure trvá príliš dlho Je to normálne – reconfigure môže trvať 1-3 minúty. Sledujte pomocou gitlab-ctl tail
Zabudnuté heslo root Obnovte ho cez konzolu VNC v klientskom paneli