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.

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:
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 logowaniuOpcja 2: Gitea (lekki)
Gitea to lekka, samodzielnie hostowana usługa Git:
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 giteaOpcja 3: Gołe repozytorium Git (proste)
Dla podstawowego hostingu Git bez interfejsu internetowego:
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.gitKonfiguracja dostępu SSH
Skonfiguruj SSH dla bezpiecznego dostępu do Git:
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-serverNajlepsze 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:
#!/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