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:
- Vytvořte DNS A záznam směřující vaši doménu na IP serveru:
Typ Název Hodnota A gitlab your.server.ip - Připojte se k serveru přes SSH a upravte
/etc/gitlab/gitlab.rb:
Změňte řádeknano /etc/gitlab/gitlab.rbexternal_urltak, aby používal HTTPS s vaší doménou:external_url 'https://gitlab.yourdomain.com' - Použijte konfiguraci:
GitLab automaticky získá a nastaví certifikát Let’s Encrypt. Certifikát se obnovuje automaticky.gitlab-ctl reconfigure
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 |
|---|---|---|
| SSH | 5 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 |
|---|---|
| Ubuntu | 24.04 LTS |
| GitLab CE | Omnibus (Nginx, PostgreSQL, Redis, Puma, Sidekiq) |
| CI/CD | Vestavěné CI/CD pipeline GitLab |
| Postfix | Lokální MTA pro e-mailová oznámení |
| Let’s Encrypt | Vestavěná správa certifikátů SSL |
| Fail2Ban | Ochrana 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 |