跳到主要内容

在 Linux 服务器上安装 GitLab - 搭建属于你的 DevOps 平台

本指南的理想产品

立即开始 — 订购合适的产品,按照本指南一步一步操作。

介绍

GitLab 是一个全面的 DevOps 平台,帮助团队协作编写代码、自动化工作流程,并高效管理整个软件开发生命周期。本指南将讲解如何在 Linux 服务器上安装 GitLab。

通过一键应用安装器安装 GitLab

你可以直接通过我们的 一键应用安装器 在 VPS Web 界面中安装 GitLab。完成初始应用设置后,打开应用目录,搜索 GitLab,并根据你的项目、环境和域名偏好开始部署。这为你提供了一个快速且用户友好的方式来部署和管理 GitLab,无需手动命令行配置,同时还能享受集成的网页管理、自定义域名支持以及可用时的 SSL 证书自动配置。

准备工作

以下要求由官方 GitLab 团队 推荐,强烈建议遵循这些前提条件,以避免后续出现不便和问题。

硬件

组件最低配置推荐配置
CPU2x 2 GHz4x 2.6+ GHz
内存4 GB8 GB
存储10 GB50+ 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 官方的 硬件要求 文档。

安装 GitLab 之前,需要通过 SSH 客户端连接到你的 Linux 服务器。请查看我们的 初始访问(SSH) 指南了解详情。

连接成功后,即可开始安装 GitLab 所需的依赖包。

第一步:安装依赖

首先,你需要安装一些依赖包来运行 GitLab 安装程序。使用以下命令在你的 Linux 服务器上安装所需依赖。

更新软件包列表至最新版本,并安装 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
信息

安装 Postfix 时可能会出现配置界面。此时请选择“Internet Site”,按回车确认。邮件名称(mail name)填写你的 Linux 服务器外部 DNS,继续按回车确认默认设置即可。

如果你想使用其他邮件发送方案,请跳过此步骤,安装完成后根据官方 GitLab 指南 配置外部 SMTP 服务器

第二步:安装 GitLab

安装完所有依赖后,即可开始安装 GitLab。

本指南将直接从官方软件包仓库安装 GitLab。

以下脚本会将 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

安装完成后,你的 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,最后回车保存退出。

最后,运行以下命令应用新的配置:

sudo gitlab-ctl reconfigure

此过程可能需要一些时间,会根据新配置初始化 GitLab,并自动处理 SSL 证书(如果使用了域名)。

第四步:访问 Web 界面

初始化完成后,你可以通过浏览器访问服务器。输入你的域名或 IP 地址:

https://[你的域名] 或 http://[你的 IP 地址]

首次访问时,会看到登录页面。

首次登录请使用用户名 root

密码存储在你的 Linux 服务器上一个文件中,使用以下命令查看:

sudo nano /etc/gitlab/initial_root_password
# 警告:此密码仅在以下条件下有效

# 1. 如果手动提供(通过环境变量 `GITLAB_ROOT_PASSWORD` 或 `gitlab.rb` 中的 `gitlab_rails['initial_root_password']` 设置),且在数据库初始化前提供。

# 2. 密码未被 UI 或命令行手动更改。

#

# 如果此密码无效,请参考 https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password 重置管理员密码。

Password: `[你的密码在这里]`

# 注意:此文件将在首次重新配置后 24 小时内自动删除。

输入用户名和密码登录,即可进入你的 GitLab 仪表盘。

强烈建议你创建新用户和/或修改 root 用户密码。进入左下角的 Admin,选择 Overview->Users,即可管理你的 GitLab 用户。

可选:使用 ufw 设置防火墙

如果你不想配置防火墙,或者已经在 OpenSUSE 上使用 firewalld,可以跳过此部分。

确保允许端口 80/443 和 22。

安装 ufw

如果已安装 ufw,可跳过此步骤。

sudo apt-get install -y ufw

开放必要端口

sudo ufw allow http
sudo ufw allow https
sudo ufw allow OpenSSH

启用防火墙

注意

启用后,默认会阻止除允许端口外的所有访问。请确保白名单配置正确后再执行此命令。

启用防火墙:

sudo ufw enable

总结

恭喜你,GitLab 已成功安装!如果有任何问题,欢迎随时联系我们的支持团队,我们每天都在线为你服务!

如果想进行更多配置,建议阅读 官方 GitLab 文档 了解后续步骤。