在 Linux 上部署和配置 GitLab,通常分为 硬件要求、系统准备、安装方式、基础配置、常见问题 几部分。下面给你一个实用型清单,适合生产环境。
✅ 推荐
❌ 不推荐
官方推荐
# Ubuntu / Debian
sudo apt update
sudo apt install -y curl openssh-server ca-certificates tzdata
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-ee/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gitlab_gitlab-ee.list
sudo apt update
sudo apt install gitlab-ee
docker run -d \
--hostname gitlab.example.com \
-p 443:443 -p 80:80 -p 22:22 \
--name gitlab \
gitlab/gitlab-ee:latest
/etc/gitlab/gitlab.rb
# 访问地址
external_url 'http://gitlab.example.com'
# 邮件(SMTP)
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'] = "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 gitlab-ctl start
# 查看状态
sudo gitlab-ctl status
http://服务器IP
root✅ 防火墙
sudo ufw allow 80
sudo ufw allow 22
✅ SSH
sudo systemctl enable ssh
sudo systemctl start ssh
✅ 禁用或限制注册
Admin → Settings → Sign-up restrictions
gitlab-ctl status
gitlab-ctl restart
gitlab-ctl stop
gitlab-ctl tail
gitlab-rake gitlab:check
| 问题 | 原因 | 解决 |
|---|---|---|
| 502 | 内存不足 | ≥4G |
| 访问慢 | Swap 没开 | 加 swap |
| 端口冲突 | 80/22 被占用 | 改端口 |
| 邮件发不出 | SMTP 配置错 | 检查 465/587 |
你可以直接告诉我:
我可以给你 一步一步的定制部署方案。