在 Debian 系统下配置 GitLab,常见有两种方式:
下面重点讲 Debian + Omnibus GitLab 的完整配置流程(生产环境最常用)。
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/debian $(lsb_release -cs) main" \
| sudo tee /etc/apt/sources.list.d/gitlab_gitlab-ee.list
GitLab EE 是社区版 + 企业特性,免费可用
若只要 CE,把gitlab-ee换成gitlab-ce
sudo apt update
sudo apt install -y gitlab-ee
sudo vim /etc/gitlab/gitlab.rb
external_url 'http://gitlab.example.com'
✅ 如果是 HTTPS:
external_url 'https://gitlab.example.com'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "your@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_rails['gitlab_email_from'] = 'your@qq.com'
sudo gitlab-ctl reconfigure
⚠️ 这一步会执行 Chef,时间稍长,属于正常现象
浏览器访问:
http://服务器IP
首次登录:
rootsudo cat /etc/gitlab/initial_root_password
| 功能 | 命令 |
|---|---|
| 启动 | sudo gitlab-ctl start |
| 停止 | sudo gitlab-ctl stop |
| 重启 | sudo gitlab-ctl restart |
| 查看状态 | sudo gitlab-ctl status |
| 重新加载配置 | sudo gitlab-ctl reconfigure |
| 查看日志 | sudo gitlab-ctl tail |
letsencrypt['enable'] = true
letsencrypt['contact_emails'] = ['admin@example.com']
然后:
sudo gitlab-ctl reconfigure
sudo ufw allow 80
sudo ufw allow 443
sudo ufw reload
docker run -d \
--hostname gitlab.example.com \
-p 80:80 -p 443:443 -p 22:22 \
--name gitlab \
gitlab/gitlab-ee:latest
sudo swapoff -a
external_url 不对告诉我你的 Debian 版本 + 使用场景,我可以给你更精确的配置方案。