Serwer dedykowany: Instalacja GitLab na Linux
Ten poradnik został stworzony z wykorzystaniem następujących produktów:
(Szczegóły mogą się różnić w zależności od produktów różnych dostawców, ale główne koncepcje pozostają takie same)
Wprowadzenie
GitLab to kompleksowa platforma DevOps, która pozwala zespołom współpracować nad kodem, automatyzować procesy i efektywnie zarządzać całym cyklem życia oprogramowania. W tym poradniku wyjaśnimy, jak zainstalować GitLab na serwerze Linux.
Przygotowanie
Poniższe wymagania są rekomendowane przez oficjalny Zespół GitLab i zdecydowanie zalecamy ich przestrzeganie, aby uniknąć problemów i niedogodności w przyszłości.
Sprzęt
| Komponenty | Minimum | Zalecane |
|---|---|---|
| CPU | 2x 2 GHz | 4x 2.6+ GHz |
| RAM | 4 GB | 8 GB |
| Dysk | 10 GB | 50+ GB |
| Przepustowość | 100 mbit/s (upload & download) | 100 mbit/s (upload & download) |
Oprogramowanie
| Platforma | Opcje |
|---|---|
| System operacyjny | Ubuntu (20.04, 22.04, 24.04), Debian (10, 11, 12), OpenSUSE (15.5) |
| Baza danych | PostgreSQL 14.9+ |
| Serwer WWW | NGINX (w pakiecie z GitLab), Puma 6.4.2+ |
| Inne | Redis 7.x+, Sidekiq 7.3.2+, Prometheus 2.54.1+ |
Dla najdokładniejszych i aktualnych informacji o wymaganiach sprzętowych, sprawdź oficjalną dokumentację GitLab Hardware Requirements.
Przygotowanie
Aby zainstalować GitLab na serwerze Linux, musisz połączyć się przez klienta SSH. Sprawdź nasz poradnik Pierwszy dostęp (SSH), aby dowiedzieć się więcej.
Po nawiązaniu połączenia możesz zacząć instalować niezbędne pakiety potrzebne do instalacji GitLab.
Krok 1: Instalacja zależności
Najpierw musisz zainstalować kilka zależności, aby uruchomić instalator GitLab. Użyj poniższych komend, aby zainstalować wymagane pakiety na swoim serwerze Linux.
- Ubuntu
- Debian
- OpenSUSE
Zaktualizuj listę pakietów do najnowszej wersji i zainstaluj pakiet OpenSSH Server wraz z wymaganymi zależnościami, używając poniższej komendy. To właśnie na tym będzie hostowany panel webowy GitLab.
sudo apt update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
Możesz też zainstalować Postfix (serwer SMTP), jeśli chcesz wysyłać powiadomienia mailowe z GitLab. To jest opcjonalne.
Jeśli chcesz korzystać z powiadomień mailowych, pobierz Postfix poleceniem:
sudo apt-get install -y postfix
Zaktualizuj listę pakietów do najnowszej wersji i zainstaluj pakiet OpenSSH Server wraz z wymaganymi zależnościami, używając poniższej komendy. To właśnie na tym będzie hostowany panel webowy GitLab.
sudo apt update
sudo apt-get install -y curl openssh-server ca-certificates perl
Możesz też zainstalować Postfix (serwer SMTP), jeśli chcesz wysyłać powiadomienia mailowe z GitLab. To jest opcjonalne.
Jeśli chcesz korzystać z powiadomień mailowych, pobierz Postfix poleceniem:
sudo apt-get install -y postfix
Zainstaluj pakiet OpenSSH Server wraz z wymaganymi zależnościami, używając poniższej komendy. To właśnie na tym będzie hostowany panel webowy GitLab.
sudo zypper install curl openssh perl
Następnie upewnij się, że demon OpenSSH jest włączony, wykonując poniższe polecenia.
sudo systemctl status sshd
sudo systemctl enable sshd
sudo systemctl start sshd
Jeśli korzystasz z firewalld, upewnij się, że zapora sieciowa pozwala na niezbędny dostęp.
Sprawdź, czy używasz firewalld, wykonując:
sudo systemctl status firewalld
Jeśli tak, otwórz wymagane porty (domyślnie 80 i 443):
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
Możesz też zainstalować Postfix (serwer SMTP), jeśli chcesz wysyłać powiadomienia mailowe z GitLab. To jest opcjonalne.
Jeśli chcesz korzystać z powiadomień mailowych, pobierz Postfix poleceniami:
sudo zypper install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
Podczas instalacji Postfix może pojawić się konfigurator. W takim wypadku wybierz 'Internet Site' i naciśnij Enter. Jako 'mail name' wpisz zewnętrzną domenę Twojego serwera Linux i potwierdź Enterem. Jeśli pojawią się kolejne ekrany, kontynuuj naciskając Enter, aby zaakceptować domyślne ustawienia.
Jeśli chcesz użyć innego rozwiązania do wysyłania maili, pomiń ten krok i skonfiguruj zewnętrzny serwer SMTP po instalacji GitLab, korzystając z oficjalnego poradnika GitLab.
Krok 2: Instalacja GitLab
Po pobraniu i zainstalowaniu wszystkich zależności, możesz przystąpić do instalacji GitLab.
W tym poradniku zainstalujemy GitLab bezpośrednio z oficjalnych repozytoriów pakietów.
- Ubuntu & Debian
- OpenSUSE
Poniższy skrypt doda repozytoria GitLab do menedżera pakietów apt:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
Po zakończeniu możesz zainstalować pakiet gitlab-ee:
sudo apt-get install -y gitlab-ee
Poniższy skrypt doda repozytoria GitLab do menedżera pakietów Zypper:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
Po zakończeniu możesz zainstalować pakiet gitlab-ee:
sudo zypper install gitlab-ee
Po zakończeniu tego procesu GitLab powinien być gotowy do działania na Twoim serwerze Linux. Przejdź do kolejnej sekcji, gdzie skonfigurujesz podstawowe ustawienia, aby serwer działał poprawnie.
Krok 3: Konfiguracja GitLab
Aby wszystko działało poprawnie, musisz wprowadzić kilka zmian w pliku konfiguracyjnym. Zacznij od otwarcia pliku konfiguracyjnego GitLab w ulubionym edytorze tekstu. W przykładzie użyjemy wbudowanego edytora nano.
sudo nano /etc/gitlab/gitlab.rb
Następnie znajdź linię external_url i wpisz tam swoją domenę lub adres IP serwera Linux, jeśli nie masz domeny do użycia z GitLab.
## GitLab URL
##! URL, pod którym GitLab będzie dostępny.
##! Więcej informacji o konfiguracji external_url znajdziesz pod:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
##!
##! Uwaga: Podczas instalacji/aktualizacji wartość zmiennej środowiskowej
##! EXTERNAL_URL zostanie użyta do wypełnienia/zastąpienia tej wartości.
##! Na instancjach AWS EC2 próbujemy też pobrać publiczną nazwę hosta/adres IP
##! z AWS. Więcej informacji:
##! https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
external_url 'http`s`://`Twoja domena / adres IPv4 Twojego serwera Linux`'
Dodatkowo, zalecamy wpisanie swojego maila w linii letsencrypt['contact_emails']. Pozwoli to Let's Encrypt na wysyłanie powiadomień i kontaktowanie się w sprawie automatycznych, darmowych certyfikatów SSL.
Musisz użyć domeny, jeśli chcesz uzyskać darmowy certyfikat SSL od Let's Encrypt. Nie możesz go wystawić bezpośrednio na adres IP.
################################################################################
# Integracja Let's Encrypt
################################################################################
# letsencrypt['enable'] = nil
# letsencrypt['contact_emails'] = [`Twój email tutaj`] # Powinno to być tablica adresów email do kontaktu
# letsencrypt['group'] = 'root'
# letsencrypt['key_size'] = 2048
# letsencrypt['owner'] = 'root'
# letsencrypt['wwwroot'] = '/var/opt/gitlab/nginx/www'
# Więcej o tych ustawieniach: https://docs.gitlab.com/omnibus/settings/ssl/index.html#renew-the-certificates-automatically
# letsencrypt['auto_renew'] = true
# letsencrypt['auto_renew_hour'] = 0
# letsencrypt['auto_renew_minute'] = nil # Powinno być liczbą lub wyrażeniem cron, jeśli podane.
# letsencrypt['auto_renew_day_of_month'] = "*/4"
# letsencrypt['auto_renew_log_directory'] = '/var/log/gitlab/lets-encrypt'
# letsencrypt['alt_names'] = []
Możesz użyć CTRL+W, aby wyszukać letsencrypt['contact_emails'] i nacisnąć Enter, żeby nie musieć szukać ręcznie w całym pliku.
Gdy skończysz, naciśnij CTRL+X, potem Y i Enter, aby zapisać zmiany.
Na koniec uruchom poniższe polecenie, aby ponownie skonfigurować GitLab z nowymi ustawieniami.
sudo gitlab-ctl reconfigure
Proces ten może chwilę potrwać, ponieważ GitLab zostanie zainicjalizowany z nową konfiguracją, a certyfikaty SSL zostaną automatycznie wystawione, jeśli używasz domeny.
Krok 4: Dostęp do panelu webowego
Po inicjalizacji serwer powinien być dostępny przez przeglądarkę. Wejdź na swoją stronę, wpisując domenę lub adres IP w przeglądarce:
https://[twoja_domena] LUB http://[twój_adres_ip]
Przy pierwszym wejściu na panel webowy pojawi się ekran logowania.
Aby uzyskać dostęp administratora przy pierwszym logowaniu, zaloguj się jako użytkownik root.
Hasło znajdziesz w pliku na serwerze Linux. Otwórz go poleceniem i znajdź pole Password:
sudo nano /etc/gitlab/initial_root_password
# UWAGA: Ta wartość jest ważna tylko w następujących warunkach
# 1. Jeśli została podana ręcznie (poprzez zmienną środowiskową `GITLAB_ROOT_PASSWORD` lub ustawienie `gitlab_rails['initial_root_password']` w `gitlab.rb`) przed zainicjowaniem bazy danych.
# 2. Hasło nie zostało zmienione ręcznie, ani przez UI, ani przez konsolę.
#
# Jeśli hasło tutaj nie działa, musisz zresetować hasło administratora zgodnie z https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
Password: `[TWOJE_HASŁO_JEST_TUTAJ]`
# UWAGA: Ten plik zostanie automatycznie usunięty przy pierwszym uruchomieniu reconfigure po 24 godzinach.
Wprowadź nazwę użytkownika i hasło na stronie logowania, aby po raz pierwszy wejść do panelu GitLab. Teraz możesz korzystać z własnego GitLab na swoim serwerze Linux.
Zalecamy utworzenie nowego użytkownika i/lub zmianę hasła dla użytkownika root. Możesz to zrobić, wchodząc w Admin w lewym dolnym rogu, a następnie wybierając Overview->Users. Na tej stronie zarządzasz użytkownikami swojej instancji GitLab.
Opcjonalnie: Konfiguracja zapory sieciowej z ufw
Możesz pominąć ten krok, jeśli nie chcesz konfigurować zapory lub np. już korzystasz z firewalld na OpenSUSE.
Upewnij się, że porty 80/443 oraz 22 są otwarte.
Instalacja ufw
Jeśli masz już zainstalowany ufw, możesz pominąć ten krok.
- Ubuntu & Debian
- OpenSUSE
sudo apt-get install -y ufw
sudo zypper install ufw
Otwórz wymagane porty
sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH
Włącz zaporę
Domyślnie to polecenie zablokuje dostęp do wszystkich portów poza tymi dozwolonymi. Upewnij się, że whitelist jest poprawnie skonfigurowana przed uruchomieniem.
Aby zapora zaczęła działać, włącz ją poleceniem:
sudo ufw enable
Podsumowanie
Gratulacje, udało Ci się zainstalować GitLab! Jeśli masz pytania lub problemy, skontaktuj się z naszym supportem, który jest dostępny codziennie i chętnie pomoże!
Jeśli chcesz wykonać dodatkową konfigurację, polecamy przeczytać Oficjalną dokumentację GitLab z kolejnymi krokami.