Table of Contents

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ă:

  1. Creați o înregistrare DNS A care indică domeniul către IP-ul serverului:
    Tip Nume Valoare
    Agitlabyour.server.ip
  2. Conectați-vă la server prin SSH și editați /etc/gitlab/gitlab.rb:
    nano /etc/gitlab/gitlab.rb
    Modificați linia external_url pentru a folosi HTTPS cu domeniul dumneavoastră:
    external_url 'https://gitlab.yourdomain.com'
  3. Aplicați configurația:
    gitlab-ctl reconfigure
    GitLab va obține și va configura automat un certificat Let’s Encrypt. Certificatul se reînnoiește automat.

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
SSH5 autentificări eșuate1 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
Ubuntu24.04 LTS
GitLab CEOmnibus (Nginx, PostgreSQL, Redis, Puma, Sidekiq)
CI/CDPipeline-uri GitLab CI/CD integrate
PostfixMTA local pentru notificări prin e-mail
Let’s EncryptAdministrarea integrată a certificatelor SSL
Fail2BanProtecț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