Table of Contents

GitLab CE - průvodce pro začátečníky

GitLab CE je self-hosted DevOps platforma s repozitáři Git, CI/CD pipeline, sledováním úkolů, wiki, registrem kontejnerů a dalšími funkcemi – open-source alternativa ke GitHubu, kterou plně ovládáte. Server obsahuje plně nainstalovaný a nakonfigurovaný GitLab CE s heslem administrátora, které jste zadali při objednávce. GitLab je připraven k použití po krátkém úvodním nastavení (2-4 minuty při prvním startu).


Krok 1 – Ověřte, že GitLab funguje

IP adresa a heslo root vašeho serveru jsou uvedeny na stránce Server Details v klientském panelu. GitLab je dostupný po dokončení úvodního nastavení (2-4 minuty po vytvoření serveru). Otevřete http://your.server.ip v prohlížeči a ověřte, že funguje. Pokud uvidíte chybu 502, počkejte několik minut a obnovte stránku – GitLab se ještě spouští.

Přihlášení do GitLab:

  • Uživatelské jméno: root
  • Heslo: GitLab Root Password, které jste zadali při objednávce

GitLab zpočátku běží přes HTTP. Pro zapnutí HTTPS s bezplatným certifikátem Let’s Encrypt nejprve nastavte doménu (viz krok 3).

Pokud jste server umístili za router VyOS v privátní síti, buď nastavte přesměrování portů (22, 80 a 443), aby byl GitLab dostupný z internetu, nebo se připojte přes VPN a ke GitLabu přistupujte přes privátní IP serveru.


Krok 2 – Vytvoření prvního projektu

Klikněte na New project na nástěnce, zvolte Create blank project, zadejte název a klikněte na Create project.

Naklonujte repozitář přes HTTPS nebo 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 – Nastavení vlastní domény a HTTPS

GitLab má vestavěnou podporu Let’s Encrypt. Zapnutí HTTPS s vaší doménou:

  1. Vytvořte DNS A záznam směřující vaši doménu na IP serveru:
    Typ Název Hodnota
    Agitlabyour.server.ip
  2. Připojte se k serveru přes SSH a upravte /etc/gitlab/gitlab.rb:
    nano /etc/gitlab/gitlab.rb
    Změňte řádek external_url tak, aby používal HTTPS s vaší doménou:
    external_url 'https://gitlab.yourdomain.com'
  3. Použijte konfiguraci:
    gitlab-ctl reconfigure
    GitLab automaticky získá a nastaví certifikát Let’s Encrypt. Certifikát se obnovuje automaticky.

Před spuštěním reconfigure se ujistěte, že se A záznam domény rozšířil. Změny DNS se obvykle projeví během několika minut, ale může to trvat až 24 hodin. Ověřte na dnschecker.org.


Krok 4 – CI/CD pipeline

GitLab má vestavěné CI/CD. Pro vytvoření pipeline přidejte do kořene repozitáře soubor .gitlab-ci.yml :

stages:
  - build
  - test

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

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

Pipeline se spouštějí automaticky při každém push. Výsledky najdete v projektu v Build > Pipelines.

Poznámka: Pro spouštění pipeline je potřeba zaregistrovat GitLab Runner. Postupujte podle návodu k instalaci GitLab Runner a nastavte runner na tomto serveru nebo na samostatném stroji.


Po instalaci

Fail2Ban – ochrana proti útokům hrubou silou

Váš server obsahuje Fail2Ban předkonfigurovaný k ochraně SSH proti útokům hrubou silou.

Pravidlo Max. počet pokusů Doba blokace
SSH5 neúspěšných přihlášení1 hodina

Užitečné příkazy:

# Check banned IPs
fail2ban-client status sshd

# Unban an IP
fail2ban-client set sshd unbanip 1.2.3.4

GitLab má také vlastní ochranu přihlášení do webu proti útokům hrubou silou. Pokud se omylem zablokujete, připojte se přes konzoli VNC v klientském panelu a odblokujte svou IP.

Aktualizace

Důležité: GitLab CE se neaktualizuje automaticky (je vyloučen z automatických aktualizací). GitLab se musí aktualizovat přes konkrétní mezilehlé verze – přeskočení verzí může instanci poškodit.

Vždy zkontrolujte oficiální cestu aktualizace . Postup aktualizace:

# 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

Aktualizace OS lze provést přes SSH:

apt update && apt upgrade -y

Přihlašovací údaje serveru

Přihlašovací údaje administrátora GitLab jsou uloženy v /root/.gitlab_credentials. Uvidíte je také po připojení přes SSH (zobrazují se v uvítací zprávě).

Správa služeb

GitLab Omnibus spojuje všechny služby (Nginx, PostgreSQL, Redis, Puma, Sidekiq) pod příkazem 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ý software

Komponenta Podrobnosti
Ubuntu24.04 LTS
GitLab CEOmnibus (Nginx, PostgreSQL, Redis, Puma, Sidekiq)
CI/CDVestavěné CI/CD pipeline GitLab
PostfixLokální MTA pro e-mailová oznámení
Let’s EncryptVestavěná správa certifikátů SSL
Fail2BanOchrana SSH proti útokům hrubou silou

Řešení problémů

Problém Řešení
Chyba 502 hned po vytvoření GitLab se ještě spouští (první start trvá 2-4 minuty). Počkejte a obnovte stránku. Průběh zjistíte: gitlab-ctl status
Nelze se dostat do webového rozhraní GitLab Kontrola služeb: gitlab-ctl status. Pokud služby neběží, zkuste gitlab-ctl restart
Certifikát Let’s Encrypt selhal Ujistěte se, že DNS A záznam směřuje na IP serveru. Ověřte na dnschecker.org. Prohlédněte chyby: gitlab-ctl tail nginx
Git push/pull přes SSH selhává Přidejte veřejný SSH klíč v GitLab (Preferences > SSH Keys). Použijte git@ v URL pro klonování
Zapomenuté heslo administrátora Připojte se přes SSH a zkontrolujte /root/.gitlab_credentialsnebo resetujte přes gitlab-rails console (viz Správa služeb)
Vysoké využití paměti GitLab s použitými optimalizacemi využívá ~2,5-3 GB RAM. Minimální doporučení: 4 GB RAM. Pokud paměť dochází, zvažte vyšší tarif serveru
Blokováno službou Fail2Ban Odblokujte svou IP přes konzoli VNC v klientském panelu: fail2ban-client set sshd unbanip 1.2.3.4
Reconfigure trvá příliš dlouho To je normální – reconfigure může trvat 1-3 minuty. Sledujte pomocí gitlab-ctl tail
Zapomenuté heslo root Obnovte jej přes konzoli VNC v klientském panelu