自建 Git 服务器完整教程

自建 Git 服务器可以完全掌控代码资产,保护商业机密,不受第三方平台限制。本文介绍三种方案:原生 Git 裸仓库(最轻量)、Gitea(推荐)和 GitLab CE(功能最全),帮助你在搬瓦工 VPS 上搭建私有代码托管服务。购买搬瓦工使用优惠码 NODESEEK2026 享 6.77% 折扣。

一、方案对比

方案内存需求功能适用场景
原生 Git几乎为零仅 Git 操作个人/极简需求
Gitea约 100-200MBWeb 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 进入官网。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。