在 Linux 下配置 GitLab,通常分为 安装 GitLab、基础配置、常用设置 几个部分。下面以 最常用、最稳定的方式:Omnibus 包(官方一键安装) 为例说明(以 Ubuntu / CentOS 为主)。
sudo hostnamectl set-hostname gitlab.example.com
sudo apt update
sudo apt install -y curl openssh-server ca-certificates
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" apt install gitlab-ee
sudo yum install -y curl policycoreutils-python openssh-server
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" yum install gitlab-ee
安装完成后会自动启动。
sudo vim /etc/gitlab/gitlab.rb
常见配置项:
external_url 'http://gitlab.example.com'
# 修改端口(可选)
# external_url 'http://gitlab.example.com:8080'
# 邮箱配置(重要)
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "you@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'] = "you@qq.com"
sudo gitlab-ctl reconfigure
sudo gitlab-ctl status # 查看状态
sudo gitlab-ctl start # 启动
sudo gitlab-ctl stop # 停止
sudo gitlab-ctl restart # 重启
sudo gitlab-ctl tail # 查看日志
sudo cat /etc/gitlab/initial_root_password
浏览器访问:
http://gitlab.example.com
使用:
root⚠️ 该密码 24 小时后会被删除
external_url 'https://gitlab.example.com'
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.key"
然后:
sudo gitlab-ctl reconfigure
sudo ufw allow 80
sudo ufw allow 443
或 CentOS:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
sudo apt install gitlab-runner
注册 Runner:
sudo gitlab-runner register
gitlab-ctl reconfigure 未执行external_url 'http://IP:8090'
如果你愿意,可以告诉我:
我可以直接给你一份「可复制的完整配置」。