Powrót do bloga
Luty 2, 2026Poradniki

Jak skonfigurować prywatny serwer Git na VPS

Kompletny przewodnik dotyczący konfiguracji własnego prywatnego serwera Git na VPS. Dowiedz się, jak hostować repozytoria Git z pełną kontrolą i prywatnością przy użyciu GitLab, Gitea lub gołych repozytoriów.

Jak skonfigurować prywatny serwer Git na VPS

Hostowanie własnego serwera Git daje pełną kontrolę nad repozytoriami kodu, zapewniając prywatność i unikając zależności od usług stron trzecich. Niezależnie od tego, czy potrzebujesz prostego gołego repozytorium, czy pełnofunkcjonalnej platformy hostingu Git, ten przewodnik obejmuje wiele opcji konfiguracji prywatnego serwera Git na Twoim VPS.

Dlaczego hostować własny serwer Git?

  • Pełna prywatność: Twój kod pozostaje na Twoim serwerze
  • Brak uzależnienia od dostawcy: Pełna kontrola nad repozytoriami
  • Personalizacja: Konfiguruj dokładnie tak, jak chcesz
  • Ekonomiczność: Jeden serwer dla nieograniczonych repozytoriów
  • Zgodność: Spełnianie wymagań dotyczących miejsca przechowywania danych
  • Nauka: Zrozumienie wewnętrznych mechanizmów serwera Git

Opcja 1: GitLab (pełnofunkcjonalny)

GitLab zapewnia kompletną platformę DevOps:

bash
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash
apt install gitlab-ce

gitlab-ctl reconfigure
# Dostęp do GitLab: http://your-server-ip
# Domyślna nazwa użytkownika: root
# Ustaw hasło przy pierwszym logowaniu

Opcja 2: Gitea (lekki)

Gitea to lekka, samodzielnie hostowana usługa Git:

bash
wget -O gitea https://dl.gitea.io/gitea/1.21.0/gitea-1.21.0-linux-amd64
chmod +x gitea
mv gitea /usr/local/bin/

# Utwórz usługę systemd
nano /etc/systemd/system/gitea.service
# Skonfiguruj i uruchom Gitea
systemctl enable gitea
systemctl start gitea

Opcja 3: Gołe repozytorium Git (proste)

Dla podstawowego hostingu Git bez interfejsu internetowego:

bash
mkdir -p /srv/git/myproject.git
cd /srv/git/myproject.git
git --bare init

# Ustaw odpowiednie uprawnienia
chown -R git:git /srv/git
chmod -R 755 /srv/git

# Klonuj z klienta:
git clone git@your-server:/srv/git/myproject.git

Konfiguracja dostępu SSH

Skonfiguruj SSH dla bezpiecznego dostępu do Git:

bash
adduser git
su - git
mkdir .ssh
chmod 700 .ssh
nano .ssh/authorized_keys
# Dodaj publiczne klucze programistów
chmod 600 .ssh/authorized_keys

# Testuj połączenie:
ssh git@your-server

Najlepsze praktyki bezpieczeństwa

  • Używaj kluczy SSH zamiast haseł
  • Włącz uwierzytelnianie dwuskładnikowe (GitLab/Gitea)
  • Regularne kopie zapasowe repozytoriów
  • Utrzymuj oprogramowanie serwera Git zaktualizowane
  • Skonfiguruj zaporę ogniową, aby ograniczyć dostęp
  • Używaj SSL/TLS dla interfejsów internetowych
  • Implementuj kontrolę dostępu i uprawnienia
  • Monitoruj logi pod kątem podejrzanej aktywności

Strategia kopii zapasowych

Regularne kopie zapasowe są niezbędne:

bash
#!/bin/bash
# Skrypt kopii zapasowej repozytorium Git
BACKUP_DIR="/backup/git"
REPO_DIR="/srv/git"
DATE=$(date +%Y%m%d)

tar -czf $BACKUP_DIR/git-backup-$DATE.tar.gz $REPO_DIR
# Zachowaj ostatnie 30 dni
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete