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:
- Vytvorte DNS A záznam smerujúci vašu doménu na IP servera:
Typ Názov Hodnota A gitlab your.server.ip - Pripojte sa k serveru cez SSH a upravte
/etc/gitlab/gitlab.rb:
Zmeňte riadoknano /etc/gitlab/gitlab.rbexternal_urltak, aby používal HTTPS s vašou doménou:external_url 'https://gitlab.yourdomain.com' - Použite konfiguráciu:
GitLab automaticky získa a nastaví certifikát Let’s Encrypt. Certifikát sa obnovuje automaticky.gitlab-ctl reconfigure
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 |
|---|---|---|
| SSH | 5 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 |
|---|---|
| Ubuntu | 24.04 LTS |
| GitLab CE | Omnibus (Nginx, PostgreSQL, Redis, Puma, Sidekiq) |
| CI/CD | Vstavané CI/CD pipeline GitLab |
| Postfix | Lokálny MTA pre e-mailové oznámenia |
| Let’s Encrypt | Vstavaná správa certifikátov SSL |
| Fail2Ban | Ochrana 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 |