温馨提示×

linux gitlab怎么配置

小樊
38
2026-08-13 06:01:51
栏目: 智能运维

下面分常见场景给你讲一下 Linux 上 GitLab 的配置方法,从「安装 → 基础配置 → 常用调整」一步步来。如果你用的是 GitLab CE(社区版),这是最常见的情况。


一、环境准备(推荐)

  • 系统:Ubuntu 20.04 / 22.04 或 CentOS 7/8
  • 内存:≥ 4GB(2GB 会很卡)
  • 磁盘:≥ 20GB
  • 用户:root 或 sudo 权限

二、安装 GitLab(以 Ubuntu 为例)

1️⃣ 安装依赖

sudo apt update
sudo apt install -y curl openssh-server ca-certificates tzdata

2️⃣ 添加 GitLab 仓库

curl -fsSL https://packages.gitlab.com/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/gitlab-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/gitlab-archive-keyring.gpg] https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/gitlab_gitlab-ce.list

3️⃣ 安装 GitLab CE

sudo apt update
sudo apt install -y gitlab-ce

三、基础配置(重点)

1️⃣ 修改配置文件

sudo vim /etc/gitlab/gitlab.rb

2️⃣ 设置访问地址(必须)

external_url 'http://gitlab.example.com'

或 IP:

external_url 'http://192.168.1.100'

✅ 如果是 HTTPS

external_url 'https://gitlab.example.com'

3️⃣ 应用配置(重要)

sudo gitlab-ctl reconfigure

⚠️ 第一次会耗时 1–3 分钟


四、访问 GitLab

浏览器访问:

http://服务器IP

首次登录:

  • 用户名:root
  • 密码查看:
sudo cat /etc/gitlab/initial_root_password

五、常用配置项(gitlab.rb)

✅ 修改端口

external_url 'http://192.168.1.100:8080'

✅ 修改仓库存储路径

git_data_dirs({
  "default" => {
    "path" => "/data/gitlab/git-data"
  }
})

然后:

sudo gitlab-ctl reconfigure

✅ 配置 SMTP 邮件(发邮件)

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "123456@qq.com"
gitlab_rails['smtp_password'] = "邮箱授权码"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "123456@qq.com"

六、常用管理命令

sudo gitlab-ctl status        # 查看状态
sudo gitlab-ctl restart       # 重启
sudo gitlab-ctl stop          # 停止
sudo gitlab-ctl tail          # 查看日志

七、常见问题

❌ 访问 502

  • 内存不足
  • 端口冲突
  • external_url 配置错误

❌ 卡在 reconfigure

  • 检查磁盘空间
  • 检查是否有其他服务占用 80/8080 端口

八、可选:Docker 方式(更简单)

docker run -d \
  --hostname gitlab.example.com \
  -p 443:443 -p 80:80 -p 22:22 \
  --name gitlab \
  gitlab/gitlab-ce:latest

九、我可以进一步帮你

你可以直接告诉我:

  1. Ubuntu 还是 CentOS?
  2. 本机测试还是服务器?
  3. 是否需要 HTTPS / 域名?
  4. 是否需要 CI/CD、邮箱、LDAP?

我可以给你一份完全按你环境定制的配置文件

0