Назад к блогу
2 февраля 2026Руководства

Как настроить приватный Git сервер на VPS

Полное руководство по настройке собственного приватного Git сервера на VPS. Узнайте, как разместить Git репозитории с полным контролем и приватностью, используя GitLab, Gitea или bare репозитории.

Как настроить приватный Git сервер на VPS

Размещение собственного Git сервера дает вам полный контроль над репозиториями кода, обеспечивая приватность и избегая зависимости от сторонних сервисов. Независимо от того, нужен ли вам простой bare репозиторий или полнофункциональная платформа хостинга Git, это руководство охватывает несколько вариантов настройки приватного Git сервера на вашем VPS.

Почему размещать собственный Git сервер?

  • Полная приватность: ваш код остается на вашем сервере
  • Нет привязки к поставщику: полный контроль над репозиториями
  • Кастомизация: настройка точно так, как вы хотите
  • Экономичность: один сервер для неограниченных репозиториев
  • Соответствие требованиям: соответствие требованиям резидентности данных
  • Обучение: понимание внутренностей Git сервера

Вариант 1: GitLab (полнофункциональный)

GitLab предоставляет полную DevOps платформу:

bash
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 сервис:

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/

# Создайте systemd сервис
nano /etc/systemd/system/gitea.service
# Настройте и запустите Gitea
systemctl enable gitea
systemctl start gitea

Вариант 3: Bare Git репозиторий (простой)

Для базового хостинга Git без веб-интерфейса:

bash
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:

bash
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 сервера
  • Настройте файрвол для ограничения доступа
  • Используйте SSL/TLS для веб-интерфейсов
  • Реализуйте контроль доступа и права
  • Мониторьте логи на подозрительную активность

Стратегия резервного копирования

Регулярные резервные копии необходимы:

bash
#!/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