O GitLab
GitLab to platforma DevOps, która w jednej aplikacji łączy hosting repozytoriów Git, merge requesty, śledzenie zgłoszeń, rejestr pakietów oraz ciągłą integrację (CI/CD). Wersja Community (CE) jest open source. Sprawdza się w zespołach programistycznych, agencjach i małych firmach, które chcą trzymać kod i pipeline'y na serwerze pod własną kontrolą.
Po dostarczeniu VPS z Linuksem (Debian 12 lub 13, Ubuntu 20.04, 22.04 lub 24.04) ma zainstalowany GitLab CE z oficjalnego repozytorium packages.gitlab.com, w postaci pakietu Omnibus. Dla publicznego adresu IP serwera generowany jest samopodpisany certyfikat TLS ważny 10 lat. Adres zewnętrzny jest ustawiony na https://SERVER_IP, a ruch HTTP jest przekierowywany na HTTPS.
Konto administratora to root. Jego początkowe hasło znajduje się w pliku /etc/gitlab/initial_root_password. Receptura wymaga co najmniej 4 GB RAM (zalecane 8 GB) i 2 rdzeni CPU. GitLab jest zasobochłonny, więc dobierz rozmiar VPS z odpowiednim zapasem.
Co możesz zrobić z GitLab
Oficjalna instalacja Omnibus
GitLab CE jest instalowany z repozytorium apt GitLaba, a następnie konfigurowany poleceniem
gitlab-ctl reconfigure. Aktualizacje wykonujesz później przez apt.HTTPS od pierwszej minuty
Samopodpisany certyfikat RSA 2048 dla adresu IP serwera trafia do
/etc/gitlab/ssl/. Nginx przekierowuje HTTP na HTTPS.Wygenerowane hasło roota
Początkowe hasło konta
rootjest zapisane w/etc/gitlab/initial_root_password. Nie ma żadnego znanego hasła domyślnego.Repozytoria, review i CI/CD
Merge requesty, zgłoszenia, wiki, rejestr pakietów i pipeline'y CI/CD są dostępne w jednym interfejsie, bez podłączania zewnętrznych narzędzi.
Konfiguracja w jednym pliku
Wszystkie ustawienia zmieniasz w
/etc/gitlab/gitlab.rb, a potem uruchamiaszgitlab-ctl reconfigure. Taki plik łatwo wersjonować i odtworzyć na innym serwerze.
Pierwsze kroki z GitLab
Od zamówienia do produkcji w kilka minut.
- 1
Zamów VPS z GitLabem
Wybierz [VPS z Linuksem](/vps-linux) w Paryżu lub Frankfurcie z co najmniej 4 GB RAM (zalecane 8 GB). W zakładce „Applications” formularza zamówienia zaznacz GitLab.
- 2
Poczekaj na dostawę i połącz się
Instalacja i pierwsza konfiguracja trwają kilka minut po starcie serwera. Możesz śledzić ich postęp przez SSH, a po zakończeniu odczytać hasło roota.
Bashssh root@SERVER_IP tail -f /var/log/cloud-init-output.log sudo cat /etc/gitlab/initial_root_password - 3
Otwórz GitLab i zaloguj się
Wejdź na https://SERVER_IP i zaakceptuj ostrzeżenie przeglądarki, które wynika z samopodpisanego certyfikatu. Zaloguj się jako
rootz hasłem odczytanym wcześniej, a następnie zmień je w ustawieniach profilu.Bashsudo gitlab-ctl status - 4
Zabezpiecz instancję na produkcję
Skieruj domenę na serwer, a potem zmień
external_urlw/etc/gitlab/gitlab.rbnahttps://YOUR_DOMAIN. Włącz Let's Encrypt (letsencrypt['enable'] = true) albo zainstaluj własny certyfikat i zastosuj konfigurację. Ogranicz dostęp zaporą (porty 22, 80 i 443) oraz zaplanuj kopie zapasowe.Bashsudo nano /etc/gitlab/gitlab.rb sudo gitlab-ctl reconfigure sudo gitlab-backup create
Zastosowania GitLab
Prywatny serwer Git dla zespołu
Trzymaj kod źródłowy projektów na europejskim serwerze, którym sam zarządzasz, z uprawnieniami nadawanymi na poziomie grup i projektów.
Wewnętrzne pipeline'y CI/CD
Uruchamiaj testy i wdrożenia na podstawie plików
.gitlab-ci.ymlwersjonowanych razem z kodem, na własnych runnerach.Migracja z usługi hostowanej
Zaimportuj repozytoria z GitHuba lub innego GitLaba, aby odzyskać kontrolę nad danymi i regułami dostępu.
Środowisko do nauki i testów
Wypróbuj konfigurację GitLaba, kopie zapasowe albo aktualizację wersji na osobnym serwerze, zanim dotkniesz produkcji.
Najczęstsze pytania o GitLab
Receptura wymaga minimum 4 GB RAM, zaleca 8 GB i co najmniej 2 rdzenie CPU. Przy mniejszej ilości instalacja może się nie udać, a interfejs będzie bardzo wolny. Jeśli regularnie używasz CI/CD, zaplanuj 8 GB.
Więcej o GitLab
Wymiana certyfikatu samopodpisanego
Dostarczony certyfikat jest powiązany z adresem IP, dlatego przeglądarki wyświetlają ostrzeżenie. Aby się go pozbyć, użyj nazwy domeny (zobacz /web-domains) i zmień /etc/gitlab/gitlab.rb:
Rubyexternal_url 'https://YOUR_DOMAIN' letsencrypt['enable'] = true letsencrypt['contact_emails'] = ['admin@YOUR_DOMAIN']
Następnie uruchom sudo gitlab-ctl reconfigure. Domena musi już wskazywać na serwer, a porty 80 i 443 muszą być osiągalne, bo przechodzi przez nie weryfikacja.
Zasoby i pamięć
GitLab uruchamia kilka usług (Puma, Sidekiq, PostgreSQL, Redis, Nginx, Gitaly). Przy 4 GB RAM instancja działa dla małego zespołu, ale przydaje się swap i trochę zapasu. Przejdź na 8 GB, gdy pipeline'y uruchamiasz często albo korzysta z niej kilkudziesięciu użytkowników.
Kopie zapasowe i aktualizacje
Polecenie sudo gitlab-backup create tworzy archiwum danych aplikacji. Osobno zachowaj też /etc/gitlab/gitlab.rb i /etc/gitlab/gitlab-secrets.json, których to archiwum nie obejmuje. Aktualizujesz przez sudo apt update && sudo apt install gitlab-ce. Najpierw przeczytaj oficjalną ścieżkę aktualizacji, ponieważ GitLab czasem wymaga wersji pośrednich.