下面给你一份**在 CentOS 上部署 GitLab(社区版 GitLab CE)**的常见做法,适用于 CentOS 7 / CentOS 8 Stream。如果你用的是 CentOS 9 Stream,建议改走 Rocky / Alma 或 Docker 方式。
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 openssh-clients
systemctl enable sshd
systemctl start sshd
dnf install -y curl policycoreutils openssh-server
systemctl enable sshd
systemctl start sshd
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ce
EXTERNAL_URL="http://192.168.1.100" yum install -y gitlab-ce
⚠️ 安装过程会持续几分钟,耐心等待
gitlab-ctl reconfigure
完成后会看到类似:
gitlab Reconfigured!
浏览器访问:
http://服务器IP
首次登录会要求设置 root 密码
gitlab-ctl status
gitlab-ctl restart
gitlab-ctl tail
编辑:
vi /etc/gitlab/gitlab.rb
示例(QQ 邮箱):
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
然后:
gitlab-ctl reconfigure
如果你不想折腾系统环境:
docker run -d \
--hostname gitlab.example.com \
--publish 80:80 \
--name gitlab \
--restart always \
gitlab/gitlab-ce:latest
gitlab-ctl reconfigure 未完成prometheus_monitoring['enable'] = false
你可以告诉我:
我可以给你定制版部署方案 ✅