GitLab CE - ghid de inițiere
GitLab CE este o platformă DevOps găzduită de dumneavoastră, cu depozite Git, pipeline-uri CI/CD, urmărirea problemelor, wiki, registru de containere și multe altele – o alternativă open-source la GitHub, pe care o controlați complet. Serverul vine cu GitLab CE complet instalat și configurat cu parola de administrator specificată la comandă. GitLab este gata de folosit după o scurtă configurare inițială (2-4 minute la prima pornire).
Pasul 1 – Verificați funcționarea GitLab
Adresa IP și parola root a serverului sunt afișate pe pagina Server Details din panoul clientului. GitLab este disponibil după finalizarea configurării inițiale (2-4 minute după crearea serverului). Deschideți http://your.server.ip în browser pentru a verifica funcționarea. Dacă vedeți o eroare 502, așteptați câteva minute și reîmprospătați – GitLab încă pornește.
Autentificare GitLab:
- Nume de utilizator:
root - Parolă: GitLab Root Password introdusă la comandă
GitLab rulează inițial prin HTTP. Pentru a activa HTTPS cu un certificat gratuit Let’s Encrypt, configurați mai întâi un domeniu (vedeți Pasul 3).
Dacă ați plasat serverul în spatele unui router VyOS într-o rețea privată, configurați redirecționarea porturilor (22, 80 și 443) pentru ca GitLab să fie accesibil de pe internet sau conectați-vă prin VPN și accesați GitLab pe IP-ul privat al serverului.
Pasul 2 – Crearea primului proiect
Faceți clic pe New project pe dashboard, alegeți Create blank project, introduceți un nume și faceți clic pe Create project.
Clonați depozitul prin HTTPS sau 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
Pasul 3 – Configurarea unui domeniu propriu și HTTPS
GitLab are suport Let’s Encrypt integrat. Pentru a activa HTTPS cu domeniul dumneavoastră:
- Creați o înregistrare DNS A care indică domeniul către IP-ul serverului:
Tip Nume Valoare A gitlab your.server.ip - Conectați-vă la server prin SSH și editați
/etc/gitlab/gitlab.rb:
Modificați linianano /etc/gitlab/gitlab.rbexternal_urlpentru a folosi HTTPS cu domeniul dumneavoastră:external_url 'https://gitlab.yourdomain.com' - Aplicați configurația:
GitLab va obține și va configura automat un certificat Let’s Encrypt. Certificatul se reînnoiește automat.gitlab-ctl reconfigure
Asigurați-vă că înregistrarea A a domeniului s-a propagat înainte de a rula reconfigure. Modificările DNS durează de obicei câteva minute, dar pot dura până la 24 de ore. Verificați pe dnschecker.org.
Pasul 4 – Pipeline-uri CI/CD
GitLab are CI/CD integrat. Pentru a crea un pipeline, adăugați un fișier .gitlab-ci.yml în rădăcina depozitului:
stages:
- build
- test
build-job:
stage: build
script:
- echo "Building the project..."
test-job:
stage: test
script:
- echo "Running tests..."
Pipeline-urile rulează automat la fiecare push. Vedeți rezultatele în proiect, la Build > Pipelines.
Notă: Pentru a rula pipeline-uri, trebuie să înregistrați un GitLab Runner. Urmați ghidul de instalare GitLab Runner pentru a configura un runner pe acest server sau pe o mașină separată.
După instalare
Fail2Ban – protecție împotriva atacurilor brute-force
Serverul dumneavoastră include Fail2Ban preconfigurat pentru a proteja SSH împotriva atacurilor brute-force.
| Regulă | Încercări maxime | Durata blocării |
|---|---|---|
| SSH | 5 autentificări eșuate | 1 oră |
Comenzi utile:
# Check banned IPs
fail2ban-client status sshd
# Unban an IP
fail2ban-client set sshd unbanip 1.2.3.4
GitLab are și propria protecție brute-force pentru autentificările web. Dacă vă blocați accidental, conectați-vă prin consola VNC din panoul clientului și deblocați-vă IP-ul.
Actualizări
Important: GitLab CE nu se actualizează automat (este exclus din actualizările automate). GitLab trebuie actualizat prin anumite versiuni intermediare – sărirea versiunilor poate defecta instanța.
Verificați întotdeauna calea oficială de upgrade înainte de actualizare. Pentru actualizare:
# 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
Actualizările sistemului de operare pot fi aplicate prin SSH:
apt update && apt upgrade -y
Datele de acces la server
Datele de acces de administrator GitLab sunt stocate în /root/.gitlab_credentials. Le vedeți și când vă conectați prin SSH (afișate în mesajul de bun venit).
Administrarea serviciilor
GitLab Omnibus reunește toate serviciile (Nginx, PostgreSQL, Redis, Puma, Sidekiq) sub comanda 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!
Software inclus
| Componentă | Detalii |
|---|---|
| Ubuntu | 24.04 LTS |
| GitLab CE | Omnibus (Nginx, PostgreSQL, Redis, Puma, Sidekiq) |
| CI/CD | Pipeline-uri GitLab CI/CD integrate |
| Postfix | MTA local pentru notificări prin e-mail |
| Let’s Encrypt | Administrarea integrată a certificatelor SSL |
| Fail2Ban | Protecție brute-force pentru SSH |
Depanare
| Problemă | Soluție |
|---|---|
| Eroare 502 imediat după creare | GitLab încă pornește (prima pornire durează 2-4 minute). Așteptați și reîmprospătați pagina. Verificați progresul: gitlab-ctl status |
| Interfața web GitLab nu poate fi accesată | Verificarea serviciilor: gitlab-ctl status. Dacă serviciile sunt oprite, încercați gitlab-ctl restart |
| Certificatul Let’s Encrypt a eșuat | Asigurați-vă că înregistrarea DNS A indică IP-ul serverului. Verificați pe dnschecker.org. Examinați erorile: gitlab-ctl tail nginx |
| Git push/pull prin SSH eșuează | Adăugați cheia SSH publică în GitLab (Preferences > SSH Keys). Folosiți git@ în URL-ul de clonare |
| Ați uitat parola de administrator | Conectați-vă prin SSH și verificați /root/.gitlab_credentialssau resetați prin gitlab-rails console (vedeți Administrarea serviciilor) |
| Utilizare mare a memoriei | GitLab folosește ~2,5-3 GB RAM cu optimizările aplicate. Minimum recomandat: 4 GB RAM. Dacă memoria se epuizează, luați în considerare un plan de server mai mare |
| Blocat de Fail2Ban | Deblocați-vă IP-ul prin consola VNC din panoul clientului: fail2ban-client set sshd unbanip 1.2.3.4 |
| Reconfigure durează prea mult | Este normal – reconfigure poate dura 1-3 minute. Monitorizați cu gitlab-ctl tail |
| Ați uitat parola root | Resetați-o prin consola VNC din panoul clientului |