下面分场景给你讲 GitLab 在 Linux 上的配置,从安装 → 基础配置 → 常用高级配置 → 常见问题,基本覆盖 90% 的使用情况。
| 方式 | 适合 |
|---|---|
| Omnibus GitLab(官方推荐) | 生产环境、快速部署 |
| Docker 部署 | 测试、快速迁移 |
| 源码安装 | 不推荐,维护成本高 |
✅ 生产环境强烈推荐:Omnibus GitLab
# Ubuntu / Debian
sudo apt update
sudo apt install -y curl openssh-server ca-certificates tzdata
# CentOS / Rocky
sudo yum install -y curl 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-archive-keyring.gpg
sudo yum install -y gitlab-ce
编辑配置文件:
sudo vim /etc/gitlab/gitlab.rb
external_url 'http://gitlab.example.com'
如果是 HTTPS:
external_url 'https://gitlab.example.com'
sudo gitlab-ctl reconfigure
external_url 'http://192.168.1.100:8080'
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'] = true
gitlab_rails['smtp_tls'] = true
应用:
sudo gitlab-ctl reconfigure
测试邮件:
sudo gitlab-rails console
Notify.test_email('test@example.com', 'Test', 'Hello').deliver_now
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['admin@example.com']
git_data_dirs({
"default" => { "path" => "/data/gitlab/git-data" }
})
# 查看状态
sudo gitlab-ctl status
# 重启
sudo gitlab-ctl restart
# 查看日志
sudo gitlab-ctl tail
# 重新加载配置
sudo gitlab-ctl reconfigure
# 开放端口
sudo ufw allow 80
sudo ufw allow 443
# 或 firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
http://服务器IP
sudo cat /etc/gitlab/initial_root_password
⚠️ 24 小时后自动删除
external_url 配置错误puma['worker_processes'] = 2
sidekiq['max_concurrency'] = 10
docker run -d \
--name gitlab \
-p 80:80 \
-p 443:443 \
-v /data/gitlab/config:/etc/gitlab \
-v /data/gitlab/logs:/var/log/gitlab \
-v /data/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
✔ GitLab Runner(CI/CD)
✔ LDAP / AD 登录
✔ 备份与恢复
✔ Nginx 反向代理
✔ 多实例 / 高可用
如果你愿意,可以告诉我:
我可以直接给你定制一份完整配置文件 ✅