Jak zainstalować GitLab na Ubuntu: Kompletny przewodnik krok po kroku
GitLab to jedna z najpotężniejszych dostępnych dziś platform DevOps o otwartym kodzie źródłowym, oferująca kompleksowy zestaw narzędzi obejmujący kontrolę wersji opartą na Git, potoki ciągłej integracji/ciągłego wdrażania (CI/CD), śledzenie problemów i funkcje współpracy zespołowej — wszystko w jednym miejscu. Niezależnie od tego, czy zarządzasz małym zespołem programistów, czy prowadzisz projekty oprogramowania na skalę przedsiębiorstwa, samodzielne hostowanie GitLab na Ubuntu daje ci pełną kontrolę nad danymi, przepływami pracy i infrastrukturą.
Ten przewodnik przeprowadzi cię przez każdy etap instalacji i konfiguracji GitLab Community Edition (CE) na serwerze Ubuntu, od przygotowania systemu do włączenia HTTPS i zarządzania usługami.
Wymagania wstępne
Przed rozpoczęciem upewnij się, że masz następujące elementy:
- Serwer z systemem Ubuntu 20.04 lub 22.04 LTS (zalecana świeża instalacja)
- Minimum 4 GB RAM i 2 rdzenie CPU (GitLab zaleca co najmniej 4 rdzenie do użytku produkcyjnego)
- Dostęp root lub sudo do serwera
- Zarejestrowana nazwa domeny wskazująca na adres IP serwera (opcjonalnie, ale zdecydowanie zalecane dla HTTPS)
- Porty 80 i 443 otwarte w zaporze
> Wskazówka: Aby uzyskać najlepszą wydajność GitLab, rozważ wdrożenie na planie VPS Hosting z wystarczającą ilością RAM i zasobów CPU. Plany VPS AlexHost są zoptymalizowane dla obciążeń Linux i zawierają pełny dostęp root, co czyni je idealnym środowiskiem dla samodzielnie hostowanych platform DevOps, takich jak GitLab.
Krok 1: Aktualizacja pakietów systemowych
Przed zainstalowaniem jakiegokolwiek oprogramowania, krytyczne jest upewnienie się, że indeks pakietów systemu i zainstalowane pakiety są w pełni zaktualizowane. Zapobiega to konfliktom zależności i zapewnia pracę z najnowszymi poprawkami bezpieczeństwa.
sudo apt update && sudo apt upgrade -yPoczekaj na zakończenie procesu aktualizacji przed przejściem do następnego kroku.
Krok 2: Zainstaluj wymagane zależności
GitLab wymaga kilku pakietów pomocniczych do prawidłowego funkcjonowania, w tym narzędzi do bezpiecznej komunikacji, zarządzania strefą czasową i tworzenia skryptów. Zainstaluj je za pomocą następującego polecenia:
sudo apt install -y curl openssh-server ca-certificates tzdata perlOto co robi każdy pakiet:
| Pakiet | Przeznaczenie |
|---|---|
curl | Pobiera skrypty i pliki z sieci |
openssh-server | Umożliwia dostęp SSH do serwera |
ca-certificates | Weryfikuje certyfikaty SSL/TLS |
tzdata | Dostarcza dane strefy czasowej |
perl | Wymagane dla wewnętrznych skryptów GitLab |
Krok 3: Dodaj oficjalne repozytorium GitLab
GitLab utrzymuje oficjalne repozytorium pakietów, które ułatwia instalację i przyszłe aktualizacje. Użyj następującego polecenia, aby pobrać i wykonać skrypt konfiguracji repozytorium:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bashTen skrypt automatycznie:
- Wykrywa wersję Ubuntu
- Dodaje repozytorium pakietów GitLab do źródeł APT
- Importuje klucz podpisywania GPG repozytorium w celu weryfikacji pakietów
Po zakończeniu skryptu system jest gotowy do zainstalowania GitLab bezpośrednio ze źródła oficjalnego.
Krok 4: Instalacja GitLab Community Edition
Teraz zainstaluj GitLab CE za pomocą menedżera pakietów apt. Musisz ustawić zmienną środowiskową EXTERNAL_URL na adres URL lub adres IP, przez który użytkownicy będą uzyskiwać dostęp do Twojej instancji GitLab.
Jeśli masz nazwę domeny:
sudo EXTERNAL_URL="https://gitlab.yourdomain.com" apt install gitlab-ceJeśli używasz adresu IP (np. dla serwera lokalnego lub prywatnego):
sudo EXTERNAL_URL="http://YOUR_SERVER_IP" apt install gitlab-ceZastąp gitlab.yourdomain.com lub YOUR_SERVER_IP swoją rzeczywistą domeną lub adresem IP.
> Uwaga: Proces instalacji może potrwać kilka minut, ponieważ pobiera i konfiguruje wszystkie komponenty GitLab, w tym PostgreSQL, Redis, NGINX i Sidekiq.
Podczas instalacji GitLab będzie:
- Instalować wszystkie usługi w pakiecie (bazę danych, pamięć podręczną, serwer WWW itp.)
- Konfigurować się na podstawie
EXTERNAL_URLktóry podałeś - Generować początkowe pliki konfiguracyjne w
/etc/gitlab/
Krok 5: Uruchomienie ponownej konfiguracji GitLab
Po instalacji uruchom polecenie ponownej konfiguracji, aby sfinalizować konfigurację, zainicjować bazę danych i uruchomić wszystkie usługi GitLab:
sudo gitlab-ctl reconfigureTo polecenie odczytuje konfigurację z /etc/gitlab/gitlab.rb i stosuje wszystkie ustawienia. Generuje również certyfikaty SSL (jeśli skonfigurowano Let’s Encrypt), konfiguruje schemat bazy danych i uruchamia wszystkie wymagane usługi w tle.
Powinieneś zobaczyć długie wyjście kończące się komunikatem podobnym do:
gitlab Reconfigured!Krok 6: Dostęp do GitLab w przeglądarce internetowej
Po zakończeniu rekonfiguracji otwórz przeglądarkę internetową i przejdź do adresu URL, który podałeś podczas instalacji:
https://gitlab.yourdomain.comlub
http://YOUR_SERVER_IPPierwsze logowanie
Przy pierwszej wizycie GitLab poprosi Cię o ustawienie hasła administratora. Po jego ustawieniu zaloguj się, używając następujących danych logowania:
- Nazwa użytkownika:
root - Hasło: Hasło, które właśnie utworzyłeś
> Wskazówka bezpieczeństwa: Zmień domyślne dane logowania konta root natychmiast po pierwszym logowaniu. Utwórz osobiste konto administratora i ogranicz konto root wyłącznie do użytku w sytuacjach awaryjnych.
Krok 7: Konfiguracja powiadomień e-mail GitLab (opcjonalnie)
Wysyłanie powiadomień e-mail jest niezbędne dla produkcyjnej instancji GitLab — umożliwia funkcje takie jak weryfikacja konta, aktualizacje żądań scalenia, alerty CI/CD i resetowanie hasła. Skonfiguruj ustawienia SMTP w głównym pliku konfiguracyjnym GitLab:
sudo nano /etc/gitlab/gitlab.rbDodaj lub zmodyfikuj następujący blok konfiguracji 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'] = trueZapisz plik i zastosuj zmiany:
sudo gitlab-ctl reconfigure> Szukasz niezawodnej infrastruktury e-mail? AlexHost oferuje profesjonalne usługi Email Hosting, które bezproblemowo integrują się z samodzielnie hostowanymi aplikacjami takimi jak GitLab, zapewniając stabilne przekierowanie SMTP z wysoką dostarczalnością.
Krok 8: Włączenie HTTPS za pomocą Let’s Encrypt (Rekomendowane)
Uruchamianie GitLab przez HTTPS jest zdecydowanie rekomendowane dla każdego środowiska produkcyjnego lub zespołowego. GitLab ma wbudowaną obsługę Let’s Encrypt, bezpłatnego i zautomatyzowanego urzędu certyfikacji SSL.
> Ważne: Let’s Encrypt wymaga, aby Twoja nazwa domeny była publicznie dostępna i aby port 80 był otwarty na Twoim serwerze. Nie będzie działać z surowymi adresami IP.
Otwórz plik konfiguracyjny GitLab:
sudo nano /etc/gitlab/gitlab.rbDodaj następującą konfigurację:
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"Zapisz plik i zmień konfigurację GitLab:
sudo gitlab-ctl reconfigureGitLab automatycznie uzyska i zainstaluje Twój certyfikat SSL, a ustawienie auto_renew zapewnia jego odnowienie przed wygaśnięciem bez żadnej ręcznej interwencji.
> Alternatywa: Jeśli wolisz zarządzać certyfikatami SSL niezależnie lub potrzebujesz certyfikatów wieloznacznych/wielodomenowych, AlexHost oferuje szereg Certyfikatów SSL, które można ręcznie skonfigurować w ustawieniach NGINX GitLab.
Krok 9: Zarządzanie usługami GitLab
GitLab zawiera własne narzędzie do zarządzania usługami zwane gitlab-ctl. Użyj następujących poleceń do kontrolowania usług GitLab:
Uruchomienie GitLab
sudo gitlab-ctl startZatrzymanie GitLab
sudo gitlab-ctl stopPonowne uruchomienie GitLab
sudo gitlab-ctl restartSprawdzenie stanu usługi
sudo gitlab-ctl statusWyświetlanie dzienników w czasie rzeczywistym
sudo gitlab-ctl tailWyświetlanie dzienników dla konkretnej usługi (np. NGINX)
sudo gitlab-ctl tail nginxTe polecenia są nieocenione do rozwiązywania problemów i rutynowej konserwacji. Polecenie status wyświetli stan wszystkich podusług GitLab, w tym PostgreSQL, Redis, Sidekiq, Puma (serwer WWW) i NGINX.
Krok 10: Wstępna konfiguracja GitLab dla Twojej organizacji
Po zainstalowaniu i uruchomieniu GitLab, czas skonfigurować go zgodnie z potrzebami Twojego zespołu. Oto kluczowe obszary do skonfigurowania za pośrednictwem interfejsu sieciowego GitLab:
Zarządzanie użytkownikami
Przejdź do Admin Area → Users, aby utworzyć konta użytkowników dla członków Twojego zespołu. Możesz skonfigurować metody uwierzytelniania, w tym LDAP, OAuth i SAML do logowania jednokrotnego w przedsiębiorstwie.
Grupy i projekty
- Grupy pozwalają organizować powiązane projekty i zarządzać uprawnieniami na dużą skalę
- Projekty to poszczególne repozytoria z własnymi systemami śledzenia problemów, wiki i potokami CI/CD
Potoki CI/CD
Wbudowany CI/CD GitLab to jedna z jego najpotężniejszych funkcji. Utwórz plik .gitlab-ci.yml w katalogu głównym repozytorium, aby zdefiniować zautomatyzowane potoki budowania, testowania i wdrażania.
Ustawienia repozytorium
Skonfiguruj reguły ochrony gałęzi, zatwierdzenia żądań scalenia i przepływy przeglądów kodu w sekcji Settings → Repository każdego projektu.
Konfiguracja kopii zapasowych
Skonfiguruj automatyczne kopie zapasowe, konfigurując następujące elementy w /etc/gitlab/gitlab.rb:
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800 # Keep backups for 7 daysUruchom ręczną kopię zapasową w dowolnym momencie za pomocą:
sudo gitlab-backup createKonfiguracja Firewall
Jeśli masz włączoną UFW (Uncomplicated Firewall) na swoim serwerze Ubuntu, upewnij się, że zezwalasz na ruch HTTP i HTTPS:
sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw statusRozwiązywanie typowych problemów
| Problem | Rozwiązanie |
|---|---|
| GitLab niedostępny po instalacji | Sprawdź reguły zapory; zweryfikuj EXTERNAL_URL w /etc/gitlab/gitlab.rb |
| Błąd 502 Bad Gateway | Uruchom sudo gitlab-ctl restart; sprawdź logi za pomocą sudo gitlab-ctl tail |
| Błąd certyfikatu Let's Encrypt | Upewnij się, że port 80 jest otwarty i DNS domeny jest prawidłowo skonfigurowany |
| Wysokie zużycie pamięci | Zmniejsz pracowników Puma w gitlab.rb: puma['worker_processes'] = 2 |
| Powiadomienia e-mail nie są wysyłane | Zweryfikuj poświadczenia SMTP i uruchom sudo gitlab-rails console do testowania |
Podsumowanie
Instalacja GitLab na Ubuntu to prosty proces, który dostarcza platformę DevOps klasy korporacyjnej pod pełną kontrolą. Postępując zgodnie z tym przewodnikiem, skonfigurowałeś w pełni funkcjonalną instancję GitLab z szyfrowaniem HTTPS, powiadomieniami e-mail i odpowiednim zarządzaniem usługami — gotową do rzeczywistych przepływów pracy programistów.
Samodzielne hostowanie GitLab daje Twojemu zespołowi swobodę dostosowywania przepływów pracy, utrzymania suwerenności danych i integracji z istniejącą infrastrukturą bez powtarzających się kosztów subskrypcji SaaS. Kluczem do płynnego doświadczenia z GitLab jest rozpoczęcie od niezawodnego, wysokowydajnego serwera.
Dla zespołów, które potrzebują solidnej podstawy dla GitLab, Serwery Dedykowane AlexHost oferują maksymalną wydajność i izolację, podczas gdy plany Hosting VPS zapewniają opłacalną i skalowalną alternatywę dla mniejszych zespołów i rozwijających się projektów. Obie opcje obejmują pełny dostęp root, magazyn SSD i wsparcie techniczne 24/7 — wszystko, czego potrzebujesz, aby uruchamiać GitLab z pewnością.
na wszystkich usługach hostingowych