插件窝 干货文章 如何在Linux上配置本地代码仓库(如GitLab)

如何在Linux上配置本地代码仓库(如GitLab)

GitLab sudo bash rails 750    来源:    2025-04-15

在Linux上配置本地GitLab代码仓库

GitLab是一个功能强大的自托管Git仓库管理平台,下面我将详细介绍如何在Linux系统上安装和配置本地GitLab实例。

系统要求

  • 操作系统: Ubuntu 18.04/20.04/22.04, CentOS 7/8, Debian 10/11, 或其他兼容的Linux发行版
  • 硬件要求:
    • 至少4GB RAM (推荐8GB以上)
    • 至少4核CPU
    • 至少10GB可用磁盘空间(实际需求取决于项目规模)

安装方法

方法一:使用官方Omnibus包(推荐)

  1. 安装依赖项

    sudo apt-get update
    sudo apt-get install -y curl openssh-server ca-certificates postfix
    
  2. 添加GitLab仓库并安装

    curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
    sudo EXTERNAL_URL="http://your-server-ip-or-domain" apt-get install gitlab-ce
    

    your-server-ip-or-domain替换为你的服务器IP或域名。

方法二:使用Docker安装

  1. 安装Docker

    sudo apt-get update
    sudo apt-get install -y docker.io docker-compose
    sudo systemctl enable --now docker
    
  2. 创建docker-compose.yml

    version: '3'
    services:
     gitlab:
       image: 'gitlab/gitlab-ce:latest'
       restart: always
       hostname: 'your-server-ip-or-domain'
       environment:
         GITLAB_OMNIBUS_CONFIG: |
           external_url 'http://your-server-ip-or-domain'
       ports:
         - '80:80'
         - '443:443'
         - '22:22'
       volumes:
         - '/srv/gitlab/config:/etc/gitlab'
         - '/srv/gitlab/logs:/var/log/gitlab'
         - '/srv/gitlab/data:/var/opt/gitlab'
    
  3. 启动GitLab容器

    sudo docker-compose up -d
    

初始配置

  1. 首次访问

    在浏览器中访问http://your-server-ip-or-domain,首次访问会要求设置root用户密码。

  2. 配置SMTP(可选)

    编辑/etc/gitlab/gitlab.rb(Omnibus安装)或容器内的该文件:

    gitlab_rails['smtp_enable'] = true
    gitlab_rails['smtp_address'] = "smtp.your-email-provider.com"
    gitlab_rails['smtp_port'] = 587
    gitlab_rails['smtp_user_name'] = "your-email@example.com"
    gitlab_rails['smtp_password'] = "your-email-password"
    gitlab_rails['smtp_domain'] = "example.com"
    gitlab_rails['smtp_authentication'] = "login"
    gitlab_rails['smtp_enable_starttls_auto'] = true
    gitlab_rails['gitlab_email_from'] = "your-email@example.com"
    

    然后运行:

    sudo gitlab-ctl reconfigure
    
  3. 配置SSH访问

    确保服务器SSH端口(默认22)开放,用户可以通过SSH密钥克隆和推送代码。

日常管理命令

  • 查看GitLab状态:

    sudo gitlab-ctl status
    
  • 重启GitLab:

    sudo gitlab-ctl restart
    
  • 更新GitLab:

    sudo apt-get update
    sudo apt-get upgrade gitlab-ce
    sudo gitlab-ctl reconfigure
    
  • 备份GitLab:

    sudo gitlab-rake gitlab:backup:create
    

安全建议

  1. 定期更新GitLab到最新版本
  2. 配置防火墙规则,限制不必要的访问
  3. 定期备份数据
  4. 为不同团队成员设置适当的权限级别
  5. 启用HTTPS加密通信

常见问题解决

Q: 502错误无法访问GitLab A: 通常是由于内存不足导致,尝试增加服务器内存或添加swap空间。

Q: 忘记root密码 A: 在服务器上执行:

sudo gitlab-rake "gitlab:password:reset[root]"

Q: 备份恢复 A: 首先停止相关服务,然后恢复:

sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-rake gitlab:backup:restore BACKUP=备份文件名
sudo gitlab-ctl restart

通过以上步骤,你应该能够在Linux服务器上成功搭建并运行一个本地GitLab代码仓库。