下面给你一个从零到可用的 Linux 上搭建 GitLab 的实战指南,适合自建服务器 / 云服务器(Ubuntu / CentOS 都覆盖)。
GitLab 主要分两种:
| 版本 | 说明 |
|---|---|
| GitLab CE | 社区版(免费,推荐) |
| GitLab EE | 企业版(收费) |
✅ 一般自建直接用 GitLab CE
⚠️ 内存 < 4GB 基本跑不起来(卡死)
sudo apt update && sudo apt upgrade -y
sudo yum update -y
# Ubuntu
sudo apt install -y curl openssh-server ca-certificates tzdata
# CentOS
sudo yum install -y curl policycoreutils openssh-server
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
sudo apt update
sudo apt install -y gitlab-ce
curl -fsSL https://packages.gitlab.com/gpg.key | sudo gpg --dearmor -o /etc/pki/rpm-gpg/gitlab-gpg
sudo yum install -y gitlab-ce
sudo vim /etc/gitlab/gitlab.rb
修改:
external_url 'http://gitlab.example.com'
如果是 IP 访问:
external_url 'http://192.168.1.100'
sudo gitlab-ctl reconfigure
⏳ 第一次会等 3–10 分钟
浏览器访问:
http://服务器IP
sudo cat /etc/gitlab/initial_root_password
⚠️ 密码只保存 24 小时
登录后:
右上角 → Preferences → Password
右上角 → Preferences → Localization → 简体中文
# 查看状态
sudo gitlab-ctl status
# 重启
sudo gitlab-ctl restart
# 停止
sudo gitlab-ctl stop
# 查看日志
sudo gitlab-ctl tail
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxx@qq.com"
gitlab_rails['smtp_password'] = "授权码"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
然后:
sudo gitlab-ctl reconfigure
sudo apt install certbot -y
certbot certonly --standalone -d gitlab.example.com
再修改:
external_url 'https://gitlab.example.com'
nginx['ssl_certificate'] = "/etc/letsencrypt/live/gitlab.example.com/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/gitlab.example.com/privkey.pem"
free -h
解决:
Linux 上搭建 GitLab = 安装 → 配置 external_url → reconfigure → 浏览器访问
如果你愿意,我可以: ✅ 给你 Docker 方式搭建 ✅ 给你 离线安装包方式 ✅ 帮你 排查具体报错 ✅ 推荐 轻量替代(Gitea / Forgejo)
你现在是 Ubuntu 还是 CentOS?物理机还是云服务器?