当前位置:首页 > 行业动态 > 正文

如何轻松搭建Git服务器?完整配置教程在此

准备工作

在配置Git服务器前,需确保以下条件已满足:

  1. 服务器环境:一台运行Linux(如Ubuntu、CentOS)的云服务器或物理主机,具备公网IP或内网访问权限。
  2. 权限要求:拥有rootsudo权限的用户账号。
  3. 基础工具:安装git核心工具,执行命令:
    sudo apt-get install git -y  # Ubuntu/Debian
    sudo yum install git -y       # CentOS/RHEL

选择Git服务软件

根据团队规模与需求,推荐以下两种主流方案:

GitLab(适合中大型团队)

  • 特点:功能全面(CI/CD、问题跟踪等),但资源占用较高。

  • 安装步骤

    # 安装依赖
    sudo apt-get install curl openssh-server ca-certificates postfix -y
    # 添加GitLab仓库并安装
    curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
    sudo apt-get install gitlab-ce
  • 配置与启动

    sudo gitlab-ctl reconfigure  # 初始化配置
    sudo gitlab-ctl start        # 启动服务

    访问 http://服务器IP 完成初始化设置,默认用户名 root,首次登录需设置密码。

    如何轻松搭建Git服务器?完整配置教程在此  第1张

Gitea(轻量级,适合小型团队)

  • 特点:资源占用低,部署简单。

  • 安装步骤

    # 下载二进制文件(以v1.20为例)
    wget -O gitea https://dl.gitea.com/gitea/1.20/gitea-1.20-linux-amd64
    chmod +x gitea
    # 创建服务用户并启动
    sudo useradd -m -d /home/gitea -s /bin/bash gitea
    sudo ./gitea web -p 3000

    访问 http://服务器IP:3000 进行安装向导。


安全加固与权限管理

  1. SSH密钥认证

    • 生成密钥:ssh-keygen -t ed25519
    • 将公钥(~/.ssh/id_ed25519.pub)添加到Git服务器的用户配置中。
  2. 防火墙设置

    sudo ufw allow ssh     # 开放SSH端口
    sudo ufw allow http    # 开放HTTP(如80端口)
    sudo ufw enable        # 启用防火墙
  3. HTTPS加密
    使用Let’s Encrypt免费证书:

    sudo apt-get install certbot -y
    sudo certbot certonly --standalone -d git.example.com

    在Git服务配置文件中绑定证书路径(如GitLab的/etc/gitlab/gitlab.rb)。


数据备份与恢复

  • GitLab备份

    sudo gitlab-rake gitlab:backup:create  # 手动备份
    sudo gitlab-ctl backup-etc             # 备份配置文件

    备份文件默认存储于 /var/opt/gitlab/backups

  • Gitea备份
    通过Web界面(/admin/backups)或命令行执行:

    ./gitea dump -c /etc/gitea/app.ini     # 生成备份压缩包

常见问题解决

  1. 仓库访问权限错误

    • 检查用户SSH密钥是否绑定。
    • 确认仓库的git用户(如git:git)拥有目录权限。
  2. GitLab服务启动失败

    • 查看日志:sudo gitlab-ctl tail
    • 检查端口冲突(默认使用80、443、22端口)。

引用说明

本文参考以下权威来源:

  • GitLab官方文档:https://docs.gitlab.com/
  • Gitea安装指南:https://docs.gitea.io/
  • Pro Git书籍:https://git-scm.com/book/

0