GitLab CE - Przewodnik na start
GitLab CE to hostowana samodzielnie platforma DevOps z repozytoriami Git, potokami CI/CD, systemem śledzenia zgłoszeń, wiki, rejestrem kontenerów i wieloma innymi funkcjami. Jest to otwartoźródłowa alternatywa dla GitHuba, nad którą masz pełną kontrolę. Ten serwer jest dostarczany z w pełni zainstalowanym i skonfigurowanym GitLab CE oraz hasłem administratora podanym podczas składania zamówienia. GitLab jest gotowy do użycia po krótkiej konfiguracji początkowej (2 – 4 minuty przy pierwszym uruchomieniu).
Krok 1 – Sprawdź, czy GitLab działa
Adres IP serwera oraz hasło użytkownika root znajdziesz w sekcji Server Information na karcie Overview swojego serwera w panelu klienta. GitLab będzie dostępny po zakończeniu początkowej konfiguracji (2 – 4 minuty od utworzenia serwera). Otwórz w przeglądarce http://your.server.ip, aby sprawdzić, czy działa. Jeśli zobaczysz błąd 502, odczekaj kilka minut i odśwież stronę. GitLab nadal się uruchamia.
Dane logowania do GitLab:
- Nazwa użytkownika: root
- Hasło: hasło GitLab Root Password podane podczas składania zamówienia
GitLab początkowo działa przez HTTP. Aby włączyć HTTPS z bezpłatnym certyfikatem Let’s Encrypt, najpierw skonfiguruj domenę (zobacz Krok 3).
Jeśli serwer znajduje się za routerem VyOS w sieci prywatnej, skonfiguruj przekierowanie portów (22, 80 i 443), aby udostępnić GitLab z Internetu, lub połącz się przez VPN i uzyskaj dostęp do GitLab przy użyciu prywatnego adresu IP serwera.
Krok 2 – Utwórz swój pierwszy projekt
Kliknij New project na pulpicie, wybierz Create blank project, wpisz nazwę projektu i kliknij Create project.
Sklonuj swoje repozytorium przy użyciu HTTPS lub SSH:
# HTTPS git clone http://your.server.ip/root/my-project.git # SSH (najpierw dodaj swój klucz publiczny w Preferences > SSH Keys) git clone git@your.server.ip:root/my-project.gitKrok 3 – Skonfiguruj własną domenę i HTTPS
GitLab posiada wbudowaną obsługę Let’s Encrypt. Aby włączyć HTTPS dla swojej domeny:
- Utwórz rekord DNS typu A wskazujący domenę na adres IP serwera:
Typ Nazwa Wartość A gitlab your.server.ip - Połącz się z serwerem przez SSH i edytuj plik /etc/gitlab/gitlab.rb: nano /etc/gitlab/gitlab.rb Zmień linię external_url, aby używała HTTPS z Twoją domeną: external_url 'https://gitlab.yourdomain.com’
- Zastosuj konfigurację: gitlab-ctl reconfigure GitLab automatycznie pobierze i skonfiguruje certyfikat Let’s Encrypt. Certyfikat będzie odnawiany automatycznie.
Przed uruchomieniem polecenia reconfigure upewnij się, że rekord A Twojej domeny został już rozpropagowany. Zmiany DNS zwykle zajmują kilka minut, ale mogą potrwać do 24 godzin. Możesz to sprawdzić na dnschecker.org.
Krok 4 – Potoki CI/CD
GitLab posiada wbudowaną obsługę CI/CD. Aby utworzyć potok, dodaj plik .gitlab-ci.yml do katalogu głównego repozytorium:
stages: – build – test build-job: stage: build script: – echo „Building the project…” test-job: stage: test script: – echo „Running tests…”Potoki uruchamiają się automatycznie przy każdym wysłaniu zmian do repozytorium (push). Wyniki znajdziesz w projekcie w sekcji Build > Pipelines.
Uwaga: Aby uruchamiać potoki, musisz zarejestrować GitLab Runner. Skorzystaj z instrukcji instalacji GitLab Runner, aby skonfigurować runner na tym serwerze lub na oddzielnej maszynie.
Po instalacji
Fail2Ban – Ochrona przed atakami brute force
Serwer jest dostarczany z prekonfigurowanym Fail2Ban, który chroni usługę SSH przed atakami brute force.
| Reguła | Maksymalna liczba prób | Czas blokady |
|---|---|---|
| SSH | 5 nieudanych logowań | 1 godzina |
Przydatne polecenia:
# Sprawdź zablokowane adresy IP fail2ban-client status sshd # Odblokuj adres IP fail2ban-client set sshd unbanip 1.2.3.4GitLab posiada również własną ochronę przed atakami brute force na logowanie przez interfejs WWW. Jeśli przypadkowo zablokujesz sobie dostęp, połącz się przez konsolę VNC w panelu klienta i odblokuj swój adres IP.
Aktualizacje
Ważne: GitLab CE nie aktualizuje się automatycznie (jest wyłączony z automatycznych aktualizacji). GitLab należy aktualizować przez określone wersje pośrednie. Pominięcie wersji może spowodować uszkodzenie instancji.
Przed aktualizacją zawsze sprawdź oficjalną ścieżkę aktualizacji. Aby zaktualizować GitLab:
# Sprawdź aktualną wersję gitlab-rake gitlab:env:info | grep „GitLab” # Zaktualizuj do konkretnej wersji (zgodnie ze ścieżką aktualizacji!) apt update apt install gitlab-ce=X.Y.Z-ce.0 # Zastosuj zmiany gitlab-ctl reconfigureAktualizacje systemu operacyjnego można zainstalować przez SSH:
apt update && apt upgrade -yDane dostępowe do serwera
Dane logowania administratora GitLab są zapisane w pliku /root/.gitlab_credentials. Zobaczysz je również po połączeniu z serwerem przez SSH (są wyświetlane w komunikacie powitalnym).
Zarządzanie usługami
GitLab Omnibus zawiera wszystkie usługi (Nginx, PostgreSQL, Redis, Puma, Sidekiq), którymi zarządza się za pomocą polecenia gitlab-ctl:
# Zarządzanie usługami gitlab-ctl status # sprawdź status wszystkich usług gitlab-ctl restart # uruchom ponownie wszystkie usługi gitlab-ctl start # uruchom wszystkie usługi gitlab-ctl stop # zatrzymaj wszystkie usługi # Konfiguracja gitlab-ctl reconfigure # zastosuj zmiany z pliku gitlab.rb # Logi gitlab-ctl tail # podgląd logów na żywo (wszystkie usługi) gitlab-ctl tail nginx # tylko logi Nginx gitlab-ctl tail puma # logi serwera aplikacji # Kopie zapasowe gitlab-backup create # utwórz kopię zapasową danych gitlab-ctl backup-etc # utwórz kopię zapasową plików konfiguracyjnych # Reset hasła użytkownika root gitlab-rails console -e production # Następnie w konsoli: # user = User.find_by_username(’root’) # user.password = 'newpassword’ # user.password_confirmation = 'newpassword’ # user.save!Dołączone oprogramowanie
| Komponent | Szczegóły |
|---|---|
| Ubuntu | 24.04 LTS |
| GitLab CE | Omnibus (Nginx, PostgreSQL, Redis, Puma, Sidekiq) |
| CI/CD | Wbudowane potoki GitLab CI/CD |
| Postfix | Lokalny serwer MTA do wysyłania powiadomień e-mail |
| Let’s Encrypt | Wbudowane zarządzanie certyfikatami SSL |
| Fail2Ban | Ochrona SSH przed atakami brute force |
Rozwiązywanie problemów
| Problem | Rozwiązanie |
|---|---|
| Błąd 502 zaraz po utworzeniu serwera | GitLab nadal się uruchamia (pierwsze uruchomienie trwa 2 – 4 minuty). Poczekaj i odśwież stronę. Sprawdź postęp: gitlab-ctl status |
| Brak dostępu do interfejsu WWW GitLab | Sprawdź stan usług: gitlab-ctl status. Jeśli usługi nie działają, spróbuj uruchomić: gitlab-ctl restart |
| Nie udało się uzyskać certyfikatu Let’s Encrypt | Upewnij się, że rekord DNS typu A wskazuje na adres IP serwera. Sprawdź propagację na dnschecker.org. Przejrzyj błędy: gitlab-ctl tail nginx |
| Polecenia Git push/pull przez SSH nie działają | Dodaj swój klucz publiczny SSH w GitLab (Preferences > SSH Keys). W adresie repozytorium używaj prefiksu git@ |
| Zapomniane hasło administratora | Połącz się przez SSH i sprawdź plik /root/.gitlab_credentials lub zresetuj hasło za pomocą gitlab-rails console (zobacz sekcję Zarządzanie usługami) |
| Wysokie zużycie pamięci | GitLab zużywa około 2,5-3 GB pamięci RAM po zastosowaniu optymalizacji. Zalecane minimum to 4 GB RAM. Jeśli pamięci zaczyna brakować, rozważ zmianę planu serwera na wyższy. |
| Blokada przez Fail2Ban | Skorzystaj z konsoli VNC w panelu klienta, aby odblokować swój adres IP: fail2ban-client set sshd unbanip 1.2.3.4 |
| Polecenie reconfigure trwa zbyt długo | To normalne. Polecenie reconfigure może wykonywać się przez 1-3 minuty. Postęp możesz śledzić za pomocą gitlab-ctl tail |
| Zapomniane hasło użytkownika root | Skorzystaj z konsoli VNC w panelu klienta, aby je zresetować. |