在 CentOS 上搭建 GitLab(官方推荐方式)通常有两种选择:
下面我给你 CentOS 7 / CentOS 8/Stream 的 完整可操作方案,从零到可用。
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
yum install -y curl policycoreutils openssh-server
启动 SSH:
systemctl enable sshd
systemctl start sshd
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
yum install -y gitlab-ce
安装过程较慢,耐心等待
vim /etc/gitlab/gitlab.rb
修改这一行(改成你的 IP 或域名):
external_url 'http://gitlab.example.com'
例如:
external_url 'http://192.168.1.100'
gitlab-ctl reconfigure
⚠️ 第一次执行时间较长
gitlab-ctl start
常用命令:
gitlab-ctl status
gitlab-ctl restart
gitlab-ctl stop
浏览器访问:
http://服务器IP
首次登录会要求设置 root 密码
✅ 默认用户名:
root
external_url 'http://192.168.1.100:8080'
nginx['listen_port'] = 8080
然后:
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
适合已经使用 Docker 的场景:
docker run -d \
--hostname gitlab.example.com \
-p 80:80 -p 443:443 -p 22:22 \
--name gitlab \
-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-ctl tail
✅ 生产环境推荐
如果你愿意,我可以帮你:
你现在是 CentOS 几? 物理机 / 云服务器?