Как да настроите частен Git сървър на VPS
Пълен наръчник за настройка на собствен частен Git сървър на VPS. Научете как да хоствате Git хранилища с пълен контрол и поверителност, използвайки GitLab, Gitea или bare хранилища.

Хостването на собствен Git сървър ви дава пълен контрол над хранилищата на кода си, осигурявайки поверителност и избягвайки зависимост от услуги на трети страни. Независимо дали имате нужда от просто bare хранилище или пълнофункционална платформа за хостване на Git, този наръчник обхваща множество опции за настройка на частен Git сървър на вашия VPS.
Защо да хоствате собствен Git сървър?
- Пълна поверителност: Вашият код остава на вашия сървър
- Без обвързване с доставчик: Пълен контрол над вашите хранилища
- Персонализация: Конфигуриране точно както искате
- Икономично: Един сървър за неограничени хранилища
- Съответствие: Отговаряне на изискванията за местоположение на данните
- Обучение: Разбиране на вътрешностите на Git сървъра
Опция 1: GitLab (Пълнофункционален)
GitLab предоставя пълна DevOps платформа:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash
apt install gitlab-ce
gitlab-ctl reconfigure
# Достъп до GitLab на http://your-server-ip
# Потребителско име по подразбиране: root
# Задайте парола при първо влизанеОпция 2: Gitea (Лек)
Gitea е лек, самостоятелно хостван 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/
# Създайте systemd услуга
nano /etc/systemd/system/gitea.service
# Конфигурирайте и стартирайте Gitea
systemctl enable gitea
systemctl start giteaОпция 3: Bare Git хранилище (Просто)
За основно Git хостване без уеб интерфейс:
mkdir -p /srv/git/myproject.git
cd /srv/git/myproject.git
git --bare init
# Задайте правилни разрешения:
chown -R git:git /srv/git
chmod -R 755 /srv/git
# Клониране от клиент:
git clone git@your-server:/srv/git/myproject.gitКонфигурация на SSH достъп
Настройте SSH за безопасен достъп до Git:
adduser git
su - git
mkdir .ssh
chmod 700 .ssh
nano .ssh/authorized_keys
# Добавете публични ключове на разработчици
chmod 600 .ssh/authorized_keys
# Тест на връзката:
ssh git@your-serverНай-добри практики за сигурност
- Използвайте SSH ключове вместо пароли
- Активирайте двуфакторна автентикация (GitLab/Gitea)
- Редовни резервни копия на хранилищата
- Поддържайте софтуера на Git сървъра актуален
- Конфигурирайте firewall за ограничаване на достъпа
- Използвайте SSL/TLS за уеб интерфейси
- Приложете контрол на достъпа и разрешения
- Мониторирайте логовете за подозрителна дейност
Стратегия за резервно копие
Редовните резервни копия са от съществено значение:
#!/bin/bash
# Скрипт за резервно копие на 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
# Запазете последните 30 дни
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete