Как настроить приватный 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 сервера
- Настройте файрвол для ограничения доступа
- Используйте 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