Як наладзіць прыватны 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