下面给你一个**在 Linux 上从零搭建 GitLab(自建 GitLab 服务)**的常用方案,以 Ubuntu / CentOS + 官方 Omnibus 包 为例,最稳妥、最省事。
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装依赖
sudo apt install -y curl openssh-server ca-certificates postfix
# 添加 GitLab 源
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
安装 社区版(CE):
sudo EXTERNAL_URL="http://gitlab.example.com" apt install gitlab-ce
如果是内网,可直接用 IP:
sudo EXTERNAL_URL="http://192.168.1.100" apt install gitlab-ce
sudo yum install -y curl policycoreutils openssh-server postfix
sudo systemctl enable sshd postfix
sudo systemctl start sshd postfix
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-ce
sudo gitlab-ctl reconfigure
等待执行完成(几分钟)
浏览器访问:
http://服务器IP
首次登录:
rootsudo cat /etc/gitlab/initial_root_password
⚠️ 该文件 24 小时后会自动删除
# 启动
sudo gitlab-ctl start
# 停止
sudo gitlab-ctl stop
# 重启
sudo gitlab-ctl restart
# 查看状态
sudo gitlab-ctl status
# 查看日志
sudo gitlab-ctl tail
编辑配置文件:
sudo vim /etc/gitlab/gitlab.rb
external_url 'https://gitlab.example.com'
letsencrypt['enable'] = true
重新加载:
sudo gitlab-ctl reconfigure
# Ubuntu
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
sudo gitlab-rake "gitlab:password:reset[root]"
sudo gitlab-rake gitlab:backup:create
| 方式 | 说明 |
|---|---|
| Docker GitLab | 轻量,适合测试 |
| Kubernetes | 企业级 |
| 源码安装 | 不推荐 |
如果你告诉我:
我可以给你精确到命令的搭建方案。