在 Linux 系统上部署 GitLab,最常用、最稳定的方式是使用 GitLab 官方提供的 Omnibus 安装包。下面我按通用流程 + 常见发行版给你一个完整、可操作的部署指南。
| 项目 | 最低 | 推荐 |
|---|---|---|
| CPU | 2 核 | 4 核+ |
| 内存 | 4 GB | 8 GB+ |
| 磁盘 | 20 GB | 50 GB+ |
| 系统 | Linux | Ubuntu / CentOS / Rocky / Alma |
⚠️ 内存 < 4GB 很容易出现 502 错误
root 或 sudo 权限gitlab.example.com)sudo apt update
sudo apt install -y curl openssh-server ca-certificates tzdata
curl -fsSL https://packages.gitlab.com/gpg.key | sudo gpg --dearmor > /usr/share/keyrings/gitlab-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/gitlab-archive-keyring.gpg] https://packages.gitlab.com/gitlab/gitlab-ee/ubuntu $(lsb_release -cs) main" | \
sudo tee /etc/apt/sources.list.d/gitlab_gitlab-ee.list
sudo apt update
sudo apt install -y gitlab-ee
社区版用
gitlab-ce
sudo yum install -y curl policycoreutils openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
curl -fsSL https://packages.gitlab.com/gpg.key | sudo tee /etc/pki/rpm-gpg/gitlab-gpgkey
sudo tee /etc/yum.repos.d/gitlab_gitlab-ee.repo <<EOF
[gitlab_gitlab-ee]
name=gitlab_gitlab-ee
baseurl=https://packages.gitlab.com/gitlab/gitlab-ee/el/7/\$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
gpgkey=https://packages.gitlab.com/gitlab/gitlab-ee/gpgkey
EOF
sudo yum install -y gitlab-ee
编辑配置文件:
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
首次登录:
rootsudo cat /etc/gitlab/initial_root_password
⚠️ 密码 24 小时后自动删除
| 功能 | 命令 |
|---|---|
| 启动 | sudo gitlab-ctl start |
| 停止 | sudo gitlab-ctl stop |
| 重启 | sudo gitlab-ctl restart |
| 查看状态 | sudo gitlab-ctl status |
| 查看日志 | sudo gitlab-ctl tail |
external_url 'https://gitlab.example.com'
letsencrypt['enable'] = true
letsencrypt['auto_renew'] = true
然后:
sudo gitlab-ctl reconfigure
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
原因:
gitlab-ctl reconfigure 未完成解决:
free -h
sudo gitlab-ctl restart
docker run -d \
--hostname gitlab.example.com \
-p 80:80 -p 443:443 -p 22:22 \
--name gitlab \
gitlab/gitlab-ee
✅ 推荐方案
如果你愿意,我可以:
你现在是 个人学习 还是 公司生产环境?