📦 第04章 · GitLab Omnibus 安装
apt 安装/reconfigure
GitLab Omnibus 安装¶
这一章讲自托管 GitLab CE 的安装。用 Omnibus 包是最省事的方式:一条命令装好,自带 nginx/PostgreSQL/Redis 等全套依赖。装完 gitlab-ctl reconfigure 初始化。本机跑的就是 GitLab CE,外部由 nginx 反代。
先想清楚三件事¶
- 内存:GitLab 挺吃资源,建议至少 2GB 内存(单机),机器还不够可能会卡。
- 域名:确认用什么域名访问(本机
gitlab.bangdream.xyz),后面配external_url。 - 部署形态:是否把 TLS 交给外层 nginx(本机是这样),GitLab 自带 nginx 只监听回环。
在 Ubuntu 上装 GitLab CE(Omnibus)¶
用官方脚本添加 gitlab 源再安装:
# 1) 加官方仓库脚本
curl -fsSL https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
# 2) 安装(指定版本可选;不指定装最新)
sudo apt update
sudo apt install gitlab-ce
提示 | 官方源在国内可能慢,可切换到镜像源(如清华/腾讯)提高速度。也可指定版本回滚,如
sudo apt install gitlab-ce=17.0.0。
配置 external_url(关键)¶
编辑 /etc/gitlab/gitlab.rb,设定访问地址:
external_url 'https://gitlab.bangdream.xyz'
初始化(reconfigure)¶
sudo gitlab-ctl reconfigure
这一步会安装/配置所有内置组件(nginx、PostgreSQL、Redis、sidekiq、puma、gitaly 等),并生成初始的 root 密码(版本不同,最新会输出到某个文件或需首次访问设置)。
耗时 | reconfigure 通常要几分钟,别中断。它决定服务能正常起。
获取并修改 root 密码¶
如果 reconfigure 生成了随机密码,或用本机的存放方式:
# 查看自动生成的 root 密码(某些版本)
cat /etc/gitlab/initial_root_password
# 或本机做法:把 root 密码记录在安全文件
cat /root/.deploy/gitlab_root_password
# 或直接命令行重置
sudo gitlab-rails runner "u=User.find_by(username:'root'); u.password='新密码'; u.password_confirmation='新密码'; u.save!"
安全 | root 密码属于敏感信息,存
chmod 600的文件,别放进代码仓库或聊天明文。
启动/状态/日志¶
sudo gitlab-ctl status # 看各组件状态
sudo gitlab-ctl restart # 重启
sudo gitlab-ctl tail # 跟随所有日志
gitlab-rails -v # 看版本
sudo gitlab-ctl reconfigure # 改配置后再跑一次
常见目录与命令¶
| 目录/命令 | 作用 |
|---|---|
/etc/gitlab/gitlab.rb |
主配置文件 |
/var/opt/gitlab/gitlab-rails/etc/ |
生成的配置 |
sudo gitlab-ctl reconfigure |
应用配置(改 gitlab.rb 后必跑) |
sudo gitlab-ctl status / restart |
状态/重启 |
sudo gitlab-rails console / runner |
Rails 控制台 |
| 日志 | sudo gitlab-ctl tail |
前置注意(反代场景常见)¶
本机让外层 nginx 终止 TLS并反代到 127.0.0.1:8090,所以 gitlab.rb 里要把 GitLab 自带 nginx 改到回环 8090,并关掉它自己的 letsencrypt(详见下一章《gitlab.rb 配置》)。
容易错 | 若不改反代配置就直接把外部域名指到 80/443,会和 GitLab 自带的 nginx 冲突,或 TLS 重复/证书报错。务必让"一条链路"只终止一次 TLS。
相关命令 / 依赖检查¶
grep -i memory /var/opt/gitlab/看是否内存不足。sudo gitlab-ctl tail postgresql,gitaly看对应组件日志排错。curl -sI https://gitlab.bangdream.xyz/访问测试。