Cum să instalezi GitLab pe Ubuntu: Ghid complet pas cu pas
GitLab este una dintre cele mai puternice platforme DevOps open-source disponibile astazi, oferind o suita cuprinzatoare de instrumente, inclusiv control de versiuni bazat pe Git, conducte de integrare continua/livrare continua (CI/CD), urmarire probleme si caracteristici de colaborare in echipa — toate intr-un singur loc. Fie ca gestionezi o mica echipa de dezvoltare sau rulezi proiecte software la scara intreprinderii, auto-gazduirea GitLab pe Ubuntu iti ofera control deplin asupra datelor, fluxurilor de munca si infrastructurii tale.
Acest ghid te ghideaza prin fiecare pas al instalarii si configurarii GitLab Community Edition (CE) pe un server Ubuntu, de la pregatirea initiala a sistemului pana la activarea HTTPS si gestionarea serviciilor.
Cerinte preliminare
Inainte de a incepe, asigura-te ca ai urmatoarele in loc:
- Un server care ruleaza Ubuntu 20.04 sau 22.04 LTS (instalare noua recomandatã)
- Minim 4 GB RAM si 2 nuclee CPU (GitLab recomanda cel putin 4 nuclee pentru utilizarea in productie)
- Acces root sau sudo la server
- Un nume de domeniu inregistrat care indica adresa IP a serverului tau (optional dar puternic recomandat pentru HTTPS)
- Porturile 80 si 443 deschise in firewall-ul tau
> Sfat: Pentru cea mai buna performanta GitLab, considera implementarea pe un plan VPS Hosting cu RAM si resurse CPU suficiente. Planurile VPS AlexHost sunt optimizate pentru sarcinile Linux si vin cu acces root complet, facandu-le un mediu ideal pentru platforme DevOps auto-gazduire cum ar fi GitLab.
Pasul 1: Actualizeaza pachetele sistemului
Inainte de a instala orice software, este critic sa te asiguri ca indexul pachetelor sistemului tau si pachetele instalate sunt complet actualizate. Aceasta previne conflictele de dependente si asigura ca lucrezi cu cele mai recente patch-uri de securitate.
sudo apt update && sudo apt upgrade -yAsteapta ca procesul de upgrade sa se finalizeze inainte de a trece la pasul urmator.
Pasul 2: Instaleaza dependentele necesare
GitLab necesita mai multe pachete de suport pentru a functiona corect, inclusiv instrumente pentru comunicare sigura, gestionarea fusului orar si scripting. Instaleaza-le cu urmatoarea comanda:
sudo apt install -y curl openssh-server ca-certificates tzdata perlIata ce face fiecare pachet:
| Pachet | Scop |
|---|---|
curl | Descarca scripturi si fisiere de pe web |
openssh-server | Activeaza accesul SSH la serverul tau |
ca-certificates | Valideaza certificatele SSL/TLS |
tzdata | Furnizeaza date despre fus orar |
perl | Necesar pentru scripturile interne GitLab |
Pasul 3: Adauga depozitul oficial GitLab
GitLab intretine un depozit oficial de pachete care face instalarea si upgrade-urile viitoare simple. Foloseste urmatoarea comanda pentru a descarca si executa scriptul de configurare a depozitului:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bashAcest script efectueaza automat:
- Detecteaza versiunea ta Ubuntu
- Adauga depozitul de pachete GitLab la sursele APT
- Importa cheia de semnare GPG a depozitului pentru verificarea pachetelor
Odata ce scriptul se termina, sistemul tau este gata sa instaleze GitLab direct din sursa oficiala.
Pasul 4: Instaleaza GitLab Community Edition
Acum instaleaza GitLab CE folosind managerul de pachete apt. Trebuie sa setezi variabila de mediu EXTERNAL_URL la URL-ul sau adresa IP prin care utilizatorii vor accesa instanta ta GitLab.
Daca ai un nume de domeniu:
sudo EXTERNAL_URL="https://gitlab.yourdomain.com" apt install gitlab-ceDaca folosesti o adresa IP (de exemplu, pentru un server local sau privat):
sudo EXTERNAL_URL="http://YOUR_SERVER_IP" apt install gitlab-ceInlocuieste gitlab.yourdomain.com sau YOUR_SERVER_IP cu domeniul sau adresa IP reala.
> Nota: Procesul de instalare poate dura cateva minute deoarece descarca si configureaza toate componentele GitLab, inclusiv PostgreSQL, Redis, NGINX si Sidekiq.
In timpul instalarii, GitLab va:
- Instala toate serviciile incluse (baza de date, cache, server web, etc.)
- Se configureaza pe baza
EXTERNAL_URLpe care l-ai furnizat - Genereaza fisiere de configurare initiala in
/etc/gitlab/
Pasul 5: Ruleaza reconfigurarea GitLab
Dupa instalare, ruleaza comanda de reconfigurare pentru a finaliza configurarea, a initializa baza de date si a porni toate serviciile GitLab:
sudo gitlab-ctl reconfigureAceasta comanda citeste configuratia din /etc/gitlab/gitlab.rb si aplica toate setarile. De asemenea, genereaza certificatele SSL (daca Let’s Encrypt este configurat), configureaza schema bazei de date si porneste toate serviciile de fundal necesare.
Ar trebui sa vezi o iesire lunga care se termina cu un mesaj similar cu:
gitlab Reconfigured!Pasul 6: Acceseaza GitLab in browserul tau web
Odata ce reconfigurarea este completa, deschide browserul web si naviga la URL-ul pe care l-ai specificat in timpul instalarii:
https://gitlab.yourdomain.comsau
http://YOUR_SERVER_IPConectare pentru prima data
La prima vizita, GitLab iti va cere sa setezi o parola de administrator. Dupa setarea acesteia, conecteaza-te folosind urmatoarele credentiale:
- Nume utilizator:
root - Parola: Parola pe care tocmai ai creat-o
> Sfat de securitate: Schimba credentialele contului implicit root imediat dupa prima conectare. Creeaza un cont admin personal si restrictioneaza contul root doar pentru utilizare in caz de urgenta.
Pasul 7: Configureaza notificarile prin email GitLab (Optional)
Trimiterea notificarilor prin email este esentiala pentru o instanta GitLab in productie — activeaza caracteristici cum ar fi verificarea contului, actualizari de cereri de fuziune, alerte CI/CD si resetari de parola. Configureaza setarile SMTP in fisierul principal de configurare GitLab:
sudo nano /etc/gitlab/gitlab.rbAdauga sau modifica urmatorul bloc de configurare SMTP:
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.yourmailprovider.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "your_email@yourdomain.com"
gitlab_rails['smtp_password'] = "your_email_password"
gitlab_rails['smtp_domain'] = "yourdomain.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = trueSalveaza fisierul si aplica modificarile:
sudo gitlab-ctl reconfigure> Cauti o infrastructura de email fiabila? AlexHost ofera servicii profesionale de Email Hosting care se integreaza perfect cu aplicatiile auto-gazduire cum ar fi GitLab, oferind releu SMTP stabil cu livrabilitate inalta.
Pasul 8: Activeaza HTTPS cu Let’s Encrypt (Recomandat)
Rularea GitLab peste HTTPS este puternic recomandatã pentru orice mediu de productie sau echipa. GitLab are suport incorporat pentru Let’s Encrypt, o autoritate de certificare SSL libera si automatizata.
> Important: Let’s Encrypt necesita ca numele de domeniu sa fie accesibil public si ca portul 80 sa fie deschis pe serverul tau. Nu va functiona cu adrese IP brute.
Deschide fisierul de configurare GitLab:
sudo nano /etc/gitlab/gitlab.rbAdauga urmatoarea configuratie:
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['your_admin_email@yourdomain.com']
letsencrypt['auto_renew'] = true
letsencrypt['auto_renew_hour'] = 12
letsencrypt['auto_renew_minute'] = 30
letsencrypt['auto_renew_day_of_month'] = "*/7"Salveaza fisierul si reconfigureaza GitLab:
sudo gitlab-ctl reconfigureGitLab va obtine si instala automat certificatul SSL, iar setarea auto_renew asigura ca este reinnoit inainte de expirare fara nicio interventie manuala.
> Alternativa: Daca preferi sa gestionezi certificatele SSL independent sau ai nevoie de certificatele wildcard/multi-domeniu, AlexHost ofera o gama de Certificatele SSL care pot fi configurate manual in setarile NGINX ale GitLab.
Pasul 9: Gestionarea serviciilor GitLab
GitLab grupeaza propriul instrument de gestionare a serviciilor numit gitlab-ctl. Foloseste urmatoarele comenzi pentru a controla serviciile GitLab:
Porneste GitLab
sudo gitlab-ctl startOpreste GitLab
sudo gitlab-ctl stopReporneste GitLab
sudo gitlab-ctl restartVerifica starea serviciului
sudo gitlab-ctl statusVizualizeaza jurnalele in timp real
sudo gitlab-ctl tailVizualizeaza jurnalele pentru un serviciu specific (de exemplu, NGINX)
sudo gitlab-ctl tail nginxAceste comenzi sunt nepretuire pentru depanare si intretinere de rutina. Comanda status va afisa starea tuturor sub-serviciilor GitLab, inclusiv PostgreSQL, Redis, Sidekiq, Puma (server web) si NGINX.
Pasul 10: Configurare initiala GitLab pentru organizatia ta
Cu GitLab instalat si rulandu-se, este timp sa-l configurezi pentru nevoile echipei tale. Iata zonele cheie de configurat prin interfata web GitLab:
Gestionarea utilizatorilor
Naviga la Admin Area → Users pentru a crea conturi de utilizator pentru membrii echipei tale. Poti configura metode de autentificare, inclusiv LDAP, OAuth si SAML pentru autentificare unica la nivel de intreprindere.
Grupuri si proiecte
- Grupurile iti permit sa organizezi proiectele conexe si sa gestionezi permisiunile la scara
- Proiectele sunt depozite individuale cu propriile urmaritoare de probleme, wiki-uri si conducte CI/CD
Conducte CI/CD
CI/CD-ul incorporat al GitLab este una dintre cele mai puternice caracteristici ale sale. Creeaza un fisier .gitlab-ci.yml in radacina depozitului tau pentru a defini conducte automatizate de construire, testare si implementare.
Setarile depozitului
Configureaza regulile de protectie a ramurilor, aprobari de cereri de fuziune si fluxuri de revizuire a codului sub sectiunea Settings → Repository a fiecarui proiect.
Configurare backup
Configureaza backup-urile automatizate prin configurarea urmatoarelor in /etc/gitlab/gitlab.rb:
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800 # Keep backups for 7 daysRuleaza un backup manual in orice moment cu:
sudo gitlab-backup createConfigurare firewall
Daca ai UFW (Uncomplicated Firewall) activat pe serverul Ubuntu, asigura-te ca permiti traficul HTTP si HTTPS:
sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw statusDepanare probleme comune
| Problema | Solutie |
|---|---|
| GitLab nu este accesibil dupa instalare | Verifica regulile firewall-ului; verifica EXTERNAL_URL in /etc/gitlab/gitlab.rb |
| Eroare 502 Bad Gateway | Ruleaza sudo gitlab-ctl restart; verifica jurnalele cu sudo gitlab-ctl tail |
| Esec certificat |
