返回博客
二月 2, 2026指南

如何在 VPS 上设置私有 Git 服务器

在 VPS 上设置您自己的私有 Git 服务器的完整指南。了解如何使用 GitLab、Gitea 或裸仓库以完全的控制和隐私托管 Git 仓库。

如何在 VPS 上设置私有 Git 服务器

托管您自己的 Git 服务器可以让您完全控制代码仓库,确保隐私并避免依赖第三方服务。无论您需要简单的裸仓库还是功能齐全的 Git 托管平台,本指南都涵盖了在 VPS 上设置私有 Git 服务器的多种选项。

为什么托管您自己的 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
# 在 http://your-server-ip 访问 GitLab
# 默认用户名: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:裸 Git 仓库(简单)

用于没有 Web 界面的基本 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 服务器软件更新
  • 配置防火墙以限制访问
  • 对 Web 界面使用 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