VPS:在 Linux 上安装 GitLab
介绍
GitLab 是一个全面的 DevOps 平台,帮助团队协作编写代码、自动化工作流程,并高效管理整个软件开发生命周期。本指南将讲解如何在 Linux 服务器上安装 GitLab。
准备工作
以下要求由官方 GitLab 团队 推荐,强烈建议遵循这些先决条件,以避免后续出现不便和问题。
硬件
| 组件 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 2x 2 GHz | 4x 2.6+ GHz |
| 内存 | 4 GB | 8 GB |
| 存储 | 10 GB | 50+ GB |
| 带宽 | 100 mbit/s(上下行) | 100 mbit/s(上下行) |
软件
| 平台 | 选项 |
|---|---|
| 操作系统 | Ubuntu(20.04、22.04、24.04)、Debian(10、11、12)、OpenSUSE(15.5) |
| 数据库 | PostgreSQL 14.9+ |
| Web 服务器 | NGINX(随 GitLab 捆绑)、Puma 6.4.2+ |
| 其他 | Redis 7.x+、Sidekiq 7.3.2+、Prometheus 2.54.1+ |
有关最准确和最新的规格信息,请参考 GitLab 官方的 硬件要求 文档。
要在 Linux 服务器上安装 GitLab,必须通过 SSH 客户端建立连接。请查看我们的 初始访问(SSH) 指南了解详情。
连接建立后,即可开始安装 GitLab 实际安装所需的依赖包。
第一步:安装依赖
首先,你需要安装一些依赖项来运行 GitLab 安装程序。使用以下命令在你的 Linux 服务器上安装所需依赖。
- Ubuntu
- Debian
- OpenSUSE
更新软件包列表至最新版本,并安装 OpenSSH Server 及其所需的先决条件。GitLab 的 Web 界面面板就是通过它来托管的。
sudo apt update
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
如果你希望在使用 GitLab 时能发送邮件通知,可以选择安装 Postfix(SMTP 服务器)。这是可选的。
如果需要邮件通知,运行以下命令安装 Postfix:
sudo apt-get install -y postfix
更新软件包列表至最新版本,并安装 OpenSSH Server 及其所需的先决条件。GitLab 的 Web 界面面板就是通过它来托管的。
sudo apt update
sudo apt-get install -y curl openssh-server ca-certificates perl
如果你希望在使用 GitLab 时能发送邮件通知,可以选择安装 Postfix(SMTP 服务器)。这是可选的。
如果需要邮件通知,运行以下命令安装 Postfix:
sudo apt-get install -y postfix
安装 OpenSSH Server 及其所需的先决条件。GitLab 的 Web 界面面板就是通过它来托管的。
sudo zypper install curl openssh perl
接着,确保 OpenSSH 守护进程已启用,运行以下命令:
sudo systemctl status sshd
sudo systemctl enable sshd
sudo systemctl start sshd
如果你使用 firewalld,请确保防火墙开放了必要的端口。
先运行以下命令确认是否启用了 firewalld:
sudo systemctl status firewalld
如果启用了,确保开放默认端口(80 和 443):
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld
如果你希望在使用 GitLab 时能发送邮件通知,可以选择安装 Postfix(SMTP 服务器)。这是可选的。
如果需要邮件通知,运行以下命令安装并启动 Postfix:
sudo zypper install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
安装 Postfix 时可能会出现配置界面。此时请选择“Internet Site”,按回车确认。邮件名称(mail name)填写你的 Linux 服务器外部 DNS,继续按回车确认。如果出现其他界面,继续按回车接受默认设置。
如果你想使用其他方案发送邮件,请跳过此步骤,GitLab 安装完成后可参考官方指南 配置外部 SMTP 服务器 进行设置。
第二步:安装 GitLab
下载并安装所有依赖后,即可开始安装 GitLab。
本指南将直接从官方软件包仓库安装 GitLab。
- Ubuntu & Debian
- OpenSUSE
以下脚本会将 GitLab 仓库添加到 apt 包管理器:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
完成后,安装 gitlab-ee 包:
sudo apt-get install -y gitlab-ee
以下脚本会将 GitLab 仓库添加到 Zypper 包管理器:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
完成后,安装 gitlab-ee 包:
sudo zypper install gitlab-ee
完成后,你的 Linux 服务器上就装好了 GitLab。接下来配置一些关键设置,确保服务器正常运行。
第三步:配置 GitLab
为了确保一切正常,你需要修改配置文件。用你喜欢的文本编辑器打开 GitLab 配置文件。这里以预装的 nano 编辑器为例:
sudo nano /etc/gitlab/gitlab.rb
找到 external_url 行,填写你的域名,或者如果没有域名,则填写 Linux 服务器的 IP 地址。
## GitLab URL
##! GitLab 可访问的 URL。
##! 更多关于配置 external_url 的信息请参考:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
##!
##! 注意:安装/升级时,环境变量 EXTERNAL_URL 的值会用来填充/替换此值。
##! 在 AWS EC2 实例上,我们也会尝试从 AWS 获取公共主机名/IP 地址。
##! 详情见:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html
external_url 'http`s`://`你的域名或 Linux 服务器 IPv4 地址`'
另外,建议在 letsencrypt['contact_emails'] 行填写你的邮箱,这样 Let's Encrypt 可以向你发送自动免费 SSL 证书的通知。
如果想用 Let's Encrypt 免费 SSL 证书,必须使用域名,不能直接用 IP 地址申请。
################################################################################
# Let's Encrypt 集成
################################################################################
# letsencrypt['enable'] = nil
# letsencrypt['contact_emails'] = [`你的邮箱`] # 这是一个邮箱地址数组,用于联系
# letsencrypt['group'] = 'root'
# letsencrypt['key_size'] = 2048
# letsencrypt['owner'] = 'root'
# letsencrypt['wwwroot'] = '/var/opt/gitlab/nginx/www'
# 更多设置见:https://docs.gitlab.com/omnibus/settings/ssl/index.html#renew-the-certificates-automatically
# letsencrypt['auto_renew'] = true
# letsencrypt['auto_renew_hour'] = 0
# letsencrypt['auto_renew_minute'] = nil # 数字或 cron 表达式
# letsencrypt['auto_renew_day_of_month'] = "*/4"
# letsencrypt['auto_renew_log_directory'] = '/var/log/gitlab/lets-encrypt'
# letsencrypt['alt_names'] = []
你可以用 CTRL+W 搜索 letsencrypt['contact_emails'],快速定位,无需手动翻找整个文件。
编辑完成后,按 CTRL+X,然后按 Y,最后按回车保存退出。
最后,运行以下命令用新配置重新配置 GitLab:
sudo gitlab-ctl reconfigure
这个过程可能需要一些时间,会根据新配置初始化 GitLab,自动处理相关流程。如果使用了域名,SSL 证书也会自动签发。
第四步:访问 Web 界面
初始化完成后,你可以通过浏览器访问服务器。输入你的域名或 IP 地址:
https://[你的域名] 或 http://[你的 IP 地址]
首次访问时,会看到登录页面。
首次登录使用 root 用户名获取管理员权限。
密码存储在 Linux 服务器上的一个文件里。用以下命令打开,找到 Password 字段:
sudo nano /etc/gitlab/initial_root_password
# 警告:此密码仅在以下条件下有效
# 1. 如果手动提供(通过 `GITLAB_ROOT_PASSWORD` 环境变量或 `gitlab_rails['initial_root_password']` 设置),且在数据库初始化前提供。
# 2. 密码未被 UI 或命令行手动更改。
#
# 如果此密码无效,请参考 https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password 重置管理员密码。
Password: `[你的密码]`
# 注意:此文件将在首次重新配置后 24 小时内自动删除。
在登录页面输入用户名和密码,进入你的 GitLab 仪表盘。现在你可以访问自己 Linux 服务器上的 GitLab 面板了。
强烈建议创建新用户和/或修改 root 用户密码。进入左下角的 Admin,选择 Overview->Users,即可管理 GitLab 用户。
可选:用 ufw 设置防火墙
如果你不想配置防火墙,或者已经在 OpenSUSE 上使用 firewalld,可以跳过这部分。
确保允许端口 80/443 和 22。
安装 ufw
如果你已经安装了 ufw,可以跳过此步骤。
- Ubuntu & Debian
- OpenSUSE
sudo apt-get install -y ufw
sudo zypper install ufw
开放必要端口
sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH
启用防火墙
启用后默认会阻止除允许端口外的所有访问。请确保白名单配置正确后再执行此命令。
启用防火墙:
sudo ufw enable
总结
恭喜你,GitLab 安装成功!如果有任何问题,欢迎随时联系我们的支持团队,我们每天都在线帮你解决!
如果想进行更多配置,推荐阅读 官方 GitLab 文档 了解后续步骤。