Table of Contents

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.git

Krok 3 – Skonfiguruj własną domenę i HTTPS

GitLab posiada wbudowaną obsługę Let’s Encrypt. Aby włączyć HTTPS dla swojej domeny:

  1. Utwórz rekord DNS typu A wskazujący domenę na adres IP serwera:
    Typ Nazwa Wartość
    Agitlabyour.server.ip
  2. 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’
  3. 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
SSH5 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.4

GitLab 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 reconfigure

Aktualizacje systemu operacyjnego można zainstalować przez SSH:

apt update && apt upgrade -y

Dane 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
Ubuntu24.04 LTS
GitLab CEOmnibus (Nginx, PostgreSQL, Redis, Puma, Sidekiq)
CI/CDWbudowane potoki GitLab CI/CD
PostfixLokalny serwer MTA do wysyłania powiadomień e-mail
Let’s EncryptWbudowane zarządzanie certyfikatami SSL
Fail2BanOchrona 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ć.