GitLab安装需严格满足系统与硬件要求:仅支持Ubuntu 22.04/20.04、CentOS/RHEL 7/8,至少4GB内存+4核CPU;必须用官方Omnibus包安装,正确配置external_url(无尾部斜杠)并执行reconfigure。

GitLab 安装前必须确认系统版本和资源是否达标
GitLab 对硬件和系统要求不低,盲目安装容易卡在启动阶段或后续无法创建仓库。官方明确要求:Ubuntu 22.04/20.04、CentOS/RHEL 7/8(注意:RHEL/CentOS 9 不被官方支持,gitlab-omnibus 包尚未适配),且至少 4GB 内存 + 4 核 CPU —— 低于这个配置,gitlab-ctl reconfigure 很可能卡死在 ruby_block[create gitlab database] action run。
- 用
cat /etc/os-release确认发行版和版本号,别只看uname -r -
free -h和nproc必须同时满足最低要求;内存不足时即使装完,gitlab-ctl status也会显示gitaly或postgresql为 down - 阿里云/腾讯云的“1核2G入门型”实例默认不满足条件,别硬试
直接用官方 Omnibus 包安装,别碰源码或 Docker 方式
新手最常踩的坑是搜到过时教程,尝试用 docker run --rm gitlab/gitlab-ce 或从源码编译 —— 前者默认绑定 localhost,外网打不开;后者依赖 Ruby 版本、bundle 配置极难对齐,99% 的失败都发生在这里。Omnibus 是 GitLab 官方唯一推荐的一键部署方式,所有依赖(Nginx、PostgreSQL、Redis、Gitaly)已预编译打包。
- 下载地址必须是
https://packages.gitlab.com/gitlab/gitlab-ce/下对应系统的 repo,不是 GitHub Release 页面 - Ubuntu 执行:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash,然后sudo apt-get install gitlab-ce - CentOS 7:先
yum install -y curl policycoreutils-python,再运行官方脚本,否则gitlab-ctl reconfigure会因 SELinux 模块缺失失败
配置 external_url 后必须重跑 reconfigure,且不能带末尾斜杠
装完 GitLab 默认监听 http://localhost,外网访问不到。改 /etc/gitlab/gitlab.rb 中的 external_url 是唯一生效方式 —— 但写错格式会导致 Nginx 404、Cloning 报 fatal: unable to access 'https://xxx.git': Failed to connect。
-
external_url "https://gitlab.example.com"✅(无尾部/) -
external_url "https://gitlab.example.com/"❌(加了/会导致所有 API 路径多一层,CI/CD 和 Web IDE 直接失效) - 改完必须执行
sudo gitlab-ctl reconfigure,不是 reload 或 restart;reconfigure 会校验证书路径、生成 Nginx 配置、初始化数据库 - 如果用了 HTTPS,确保
nginx['redirect_http_to_https'] = true和证书路径(nginx['ssl_certificate'])都正确,否则浏览器提示不安全且 Git 推送拒绝
首次访问打不开?重点检查防火墙、端口和初始密码
页面空白或连接超时,八成不是 GitLab 没起来,而是网络或认证环节断了。GitLab 启动后默认监听 localhost:8080(unicorn)和 *:80(Nginx),但云服务器通常默认关掉 80 端口。
- 查服务状态:
sudo gitlab-ctl status,所有服务应为run;若sidekiq或postgresql是down,看日志sudo gitlab-ctl tail postgresql - 开防火墙端口:
sudo ufw allow 80(Ubuntu)或sudo firewall-cmd --permanent --add-port=80/tcp(CentOS),然后 reload - 初始 root 密码在
/etc/gitlab/initial_root_password,文件仅存在一次,gitlab-ctl reconfigure后自动删除;没记下来就只能重置:sudo gitlab-rake "gitlab:password:reset[root]"
GitLab 启动慢是常态,首次访问可能要等 2–3 分钟才响应,别反复刷新或重装。真正麻烦的是路径配置错误或证书链不全,这两处一旦出问题,现象和网络问题几乎一样,但修法完全不同。










