自建 Git 服务器完整教程
自建 Git 服务器可以完全掌控代码资产,保护商业机密,不受第三方平台限制。本文介绍三种方案:原生 Git 裸仓库(最轻量)、Gitea(推荐)和 GitLab CE(功能最全),帮助你在搬瓦工 VPS 上搭建私有代码托管服务。购买搬瓦工使用优惠码 NODESEEK2026 享 6.77% 折扣。
一、方案对比
| 方案 | 内存需求 | 功能 | 适用场景 |
|---|---|---|---|
| 原生 Git | 几乎为零 | 仅 Git 操作 | 个人/极简需求 |
| Gitea | 约 100-200MB | Web UI、Issue、CI/CD | 小团队推荐 |
| GitLab CE | 约 2-4GB | 完整 DevOps 平台 | 大团队/企业 |
二、方案一:原生 Git 裸仓库
最轻量的方案,仅通过 SSH 访问,无 Web 界面。
# 安装 Git
apt update && apt install git -y
# 创建 Git 专用用户
adduser --system --shell /usr/bin/git-shell --group --home /home/git git
# 配置 SSH 密钥认证
mkdir -p /home/git/.ssh
cp ~/.ssh/authorized_keys /home/git/.ssh/
chown -R git:git /home/git/.ssh
chmod 700 /home/git/.ssh
chmod 600 /home/git/.ssh/authorized_keys
# 创建裸仓库
sudo -u git git init --bare /home/git/repos/my-project.git
客户端使用
# 克隆
git clone git@your-vps-ip:repos/my-project.git
# 添加远程仓库
git remote add origin git@your-vps-ip:repos/my-project.git
git push -u origin main
三、方案二:Gitea(推荐)
Gitea 是轻量级的自托管 Git 服务,使用 Go 编写,功能丰富且资源占用极低。详细教程请参考 Gitea 部署教程。
# Docker 部署 Gitea
mkdir -p /opt/gitea && cd /opt/gitea
cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
gitea:
image: gitea/gitea:latest
environment:
- USER_UID=1000
- USER_GID=1000
volumes:
- gitea_data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2222:22"
restart: unless-stopped
volumes:
gitea_data:
EOF
docker compose up -d
访问 http://你的IP:3000 完成初始化设置。
四、方案三:GitLab CE
# Docker 部署 GitLab CE(需要 4GB+ 内存)
docker run -d \
--hostname gitlab.example.com \
--name gitlab \
-p 8443:443 -p 8080:80 -p 2222:22 \
-v gitlab_config:/etc/gitlab \
-v gitlab_logs:/var/log/gitlab \
-v gitlab_data:/var/opt/gitlab \
--shm-size 256m \
--restart unless-stopped \
gitlab/gitlab-ce:latest
# 获取初始 root 密码
docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
五、配置 Nginx 反向代理
# Gitea 反向代理
server {
listen 80;
server_name git.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 100m;
}
}
六、配置 Webhook 自动部署
Gitea 支持 Webhook 功能,可以在代码推送后自动触发部署。详细配置请参考 Webhook 自动部署教程。
七、备份策略
# 原生 Git 备份
tar -czf /backup/git-repos-$(date +%Y%m%d).tar.gz /home/git/repos/
# Gitea Docker 备份
docker exec -u git gitea gitea dump -c /data/gitea/conf/app.ini
# 定时备份(crontab)
0 3 * * * tar -czf /backup/gitea-$(date +\%Y\%m\%d).tar.gz /opt/gitea/
总结
对于搬瓦工 VPS 用户,Gitea 是自建 Git 服务器的最佳选择 —— 功能丰富、资源占用低、部署简单。如果只需要最基本的 Git 功能,原生裸仓库方案零资源消耗。GitLab CE 功能最全但需要较多资源。更多 CI/CD 相关内容请参考 Jenkins vs GitLab CI 对比。选购搬瓦工请访问 全部方案,使用优惠码 NODESEEK2026 享 6.77% 折扣,通过 bwh81.net 进入官网。