二月 2, 2026指南
如何在 VPS 上设置私有 Git 服务器
在 VPS 上设置您自己的私有 Git 服务器的完整指南。了解如何使用 GitLab、Gitea 或裸仓库以完全的控制和隐私托管 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.gitSSH 访问配置
设置 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