在 Ubuntu 24.04 上安装 GitLab CE 的步骤
1. 系统要求
在开始安装之前,请确保您的服务器满足以下最低硬件要求:
- CPU:至少 4 核心(支持多达 500 个用户)。
- 内存:至少 4GB RAM(建议 8GB 以获得更好性能)。
- 存储:根据存储库大小,至少 10-20GB 可用磁盘空间。
- 网络:有效的域名(例如 gitlab.yourdomain.com)指向服务器的公共 IP 地址,或使用服务器的 IP 地址。
- 权限:具有 sudo 权限的非 root 用户或 root 访问权限。
2. 更新系统包
在安装 GitLab 之前,更新系统以确保所有包和安全补丁都是最新的。打开终端并运行以下命令:
bash
收起取消自动换行运行
复制
sudo apt update && sudo apt upgrade -y
3. 安装必要的依赖项
GitLab 要求安装一些依赖软件包,这些包通常已部分存在于系统中,但为确保完整性,请运行以下命令:
bash
收起取消自动换行运行
复制
sudo apt install -y curl openssh-server ca-certificates tzdata perl
在安装过程中,如果提示配置 Postfix(邮件服务器),选择 Internet Site,并输入您的服务器域名以配置邮件发送功能。GitLab 使用 Postfix 发送通知邮件。
4. 添加 GitLab 官方仓库
GitLab 不在 Ubuntu 24.04 的默认软件源中,因此需要添加 GitLab 官方软件源。运行以下命令下载并执行 GitLab 提供的安装脚本:
bash
收起取消自动换行运行
复制
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
此脚本会检测操作系统(Ubuntu 24.04,代号 Noble),安装必要的工具(如 apt-transport-https),并配置 GitLab CE 的 APT 仓库。您将看到类似以下的输出:
text
收起取消自动换行
复制
Detected operating system as Ubuntu/noble. Checking for curl... Detected curl... Checking for gpg... Detected gpg... Running apt-get update... done. Installing apt-transport-https... done. Installing /etc/apt/sources.list.d/gitlab_gitlab-ce.list...done. Importing packagecloud gpg key... done. Running apt-get update... done. The repository is setup! You can now install packages.
5. 安装 GitLab CE
配置好仓库后,使用以下命令安装 GitLab Community Edition:
bash
收起取消自动换行运行
复制
sudo apt install gitlab-ce -y
您也可以通过指定 EXTERNAL_URL 在安装时自动配置 GitLab 的域名或 IP 地址。例如:
bash
收起取消自动换行运行
复制
sudo EXTERNAL_URL="https://gitlab.yourdomain.com" apt install gitlab-ce -y
注意:
- 替换 gitlab.yourdomain.com 为您的实际域名或服务器 IP 地址(例如 http://192.168.1.100)。
- 如果使用 HTTPS,需在后续步骤中配置 SSL(如 Let’s Encrypt)。
- 安装过程可能需要几分钟,因为 GitLab 是一个大型软件包,包含多个组件(如 Nginx、PostgreSQL、Redis 等)。
安装完成后,您将看到类似以下的输出,提示配置尚未完成:
text
收起取消自动换行
复制
Thank you for installing GitLab! GitLab was unable to detect a valid hostname for your instance. Please configure a URL for your GitLab instance by setting `external_url` configuration in /etc/gitlab/gitlab.rb file. Then, you can start your GitLab instance by running the following command: sudo gitlab-ctl reconfigure
6. 配置 GitLab
GitLab 的配置文件位于 /etc/gitlab/gitlab.rb。按照以下步骤配置 GitLab:
-
编辑配置文件: 使用文本编辑器(如 nano)编辑 /etc/gitlab/gitlab.rb:
bash
收起取消自动换行运行
复制sudo nano /etc/gitlab/gitlab.rb
-
设置外部 URL: 找到 external_url 一行(默认被注释),取消注释并设置您的域名或 IP 地址。例如:
ruby
收起取消自动换行
复制external_url 'https://gitlab.yourdomain.com'
如果未设置域名,可以使用服务器 IP 地址,例如:
ruby
收起取消自动换行
复制external_url 'http://192.168.1.100'
-
(可选)启用 Let’s Encrypt SSL: 如果您使用域名并希望启用 HTTPS,取消注释并配置 Let’s Encrypt 设置:
ruby
收起取消自动换行
复制letsencrypt['enable'] = true letsencrypt['contact_emails'] = ['admin@yourdomain.com']
这将自动从 Let’s Encrypt 获取并配置 SSL 证书。
-
保存并退出: 保存文件(在 nano 中按 Ctrl+O,Enter,然后 Ctrl+X 退出)。
-
重新配置 GitLab: 运行以下命令应用配置更改:
bash
收起取消自动换行运行
复制sudo gitlab-ctl reconfigure
此命令会初始化 GitLab 的所有服务(如数据库、Web 服务器等),可能需要几分钟。完成后,GitLab 将启动并运行。
7. 获取初始管理员密码
GitLab 安装后会为 root 用户生成一个随机密码,存储在 /etc/gitlab/initial_root_password 文件中。查看密码:
bash
收起取消自动换行运行
复制
sudo cat /etc/gitlab/initial_root_password
输出示例:
text
收起取消自动换行
复制
Password: YOUR_PASSWORD # NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
注意:此密码仅在 24 小时内有效。请妥善保存,并在首次登录后更改密码。
8. 访问 GitLab Web 界面
打开浏览器,访问您配置的 external_url(例如 https://gitlab.yourdomain.com 或 http://192.168.1.100)。使用以下凭据登录:
- 用户名:root
- 密码:从 /etc/gitlab/initial_root_password 获取的密码
首次登录后,系统会提示您更改 root 用户密码。点击右上角用户图标,选择 Edit Profile,然后在 Password 选项卡中设置新密码。
9. 防火墙配置
如果您的服务器启用了防火墙(如 UFW),确保允许 HTTP、HTTPS 和 SSH 流量:
bash
收起取消自动换行运行
复制
sudo ufw allow http sudo ufw allow https sudo ufw allow ssh sudo ufw status
10. (可选)配置 SMTP 以发送邮件
GitLab 需要配置 SMTP 服务以发送通知邮件。如果未在安装依赖时配置 Postfix,可以通过编辑 /etc/gitlab/gitlab.rb 配置其他 SMTP 服务(如 Google SMTP)。示例(使用 Google SMTP):
ruby
收起取消自动换行
复制
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "your-email@gmail.com"
gitlab_rails['smtp_password'] = "your-app-password"
gitlab_rails['smtp_domain'] = "gmail.com"
gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true
保存后重新运行:
bash
收起取消自动换行运行
复制
sudo gitlab-ctl reconfigure
11. 验证安装
检查 GitLab 服务状态以确保所有组件正常运行:
bash
收起取消自动换行运行
复制
sudo gitlab-ctl status
输出应显示所有服务(如 nginx、postgresql、redis 等)处于 run 状态。
12. 下一步
安装完成后,您可以:
- 创建新项目或导入现有 Git 存储库。
- 配置用户、组和权限。
- 设置 CI/CD 管道以实现自动化构建和部署。
- 探索 GitLab 的其他功能,如问题跟踪、Wiki 和容器注册表。
故障排除
- 无法访问 Web 界面:检查防火墙设置、域名解析或 external_url 配置是否正确。
- 密码无效:如果初始密码无效,请按照 GitLab 官方文档重置 root 密码:https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password。
- 服务未运行:使用 sudo gitlab-ctl restart 重启服务,或检查日志 /var/log/gitlab/。