Rocky Linux 10 上搭建 社区版 GitLab CE

第一步:更新系统与安装依赖

在安装 GitLab 之前,确保基础组件已安装且 SELinux 配置得当。

bash 复制代码
# 1. 更新系统
sudo dnf update -y

# 2. 安装必要的基础依赖
sudo dnf install -y curl policycoreutils openssh-server openssh-clients postfix perl

第二步:配置防火墙与 SELinux

Rocky 10 的安全策略非常严格,为了避免 GitLab 安装后无法访问,我们需要提前放行端口并处理 SELinux。

bash 复制代码
# 1. 放行 HTTP 和 SSH
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload

# 2. 修改 SELinux 策略(将 context 设置为允许)
# 即使安装完 GitLab,如果不进行 restorecon,经常会出现 502 错误
sudo setenforce 0  # 临时关闭以保证安装顺利

第三步:配置安装源

GitLab 官方建议使用其提供的脚本来自动配置 yum 源。

bash 复制代码
# 下载并配置源
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

第四步:安装 GitLab

安装过程中,通过 EXTERNAL_URL 变量指定你的 GitLab 访问地址。请务必将下方 URL 替换为你服务器的实际 IP 或域名。

bash 复制代码
# 如果你的 80 端口被之前的 Apache 占用了,建议指定为 8080
sudo EXTERNAL_URL="http://192.16.104.218:8080" dnf install -y gitlab-ce

第五步:初始化配置

安装完成后,需要执行重新配置命令来初始化数据库、Redis 和 Nginx。

bash 复制代码
sudo gitlab-ctl reconfigure

注意:此步骤会消耗大量 CPU 和内存,如果机器配置较低(低于 4GB 内存),这一步可能会卡住,请耐心等待。

第六步:获取初始登录密码

GitLab 会随机生成一个管理员账号 root 的密码,请在终端执行:

bash 复制代码
sudo cat /etc/gitlab/initial_root_password

复制显示的密码,然后访问 http://192.16.104.218:8080,使用用户名 root 和刚才的密码登录。

端口冲突(核心):

你之前已经配置了 Apache 占用 80 端口。由于 GitLab 自带 Nginx,请务必保持我们在 EXTERNAL_URL 中指定的 8080 端口。如果想改,编辑 /etc/gitlab/gitlab.rb:

bash 复制代码
nginx['listen_port'] = 8080

改完后执行 sudo gitlab-ctl reconfigure。

内存占用优化:

GitLab 非常重。如果你的服务器内存紧张(< 8GB),务必在 /etc/gitlab/gitlab.rb 中添加:

bash 复制代码
postgresql['shared_buffers'] = "256MB"
prometheus_monitoring['enable'] = false

配置完成后,执行 sudo gitlab-ctl restart。

SELinux 永久建议:

如果你希望长期开启 SELinux,安装完成后需要运行以下命令修复目录上下文,否则 GitLab 服务将无法启动:

bash 复制代码
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
相关推荐
fb_1234511 分钟前
Linux磁盘分区从入门到实操:MBR_GPT全解析+分区工具实战指南
java·linux·gpt
深念Y30 分钟前
随身WiFi设备记录
linux·嵌入式·无线·射频·随身wifi·zte
柒号华仔1 小时前
【LINUX】Linux从闹钟到高精度定时器的实现
linux
Crazy________1 小时前
k8s部署若依微服务架构流程,v3.6.6
运维·云原生·容器·kubernetes·状态模式
云飞云共享云桌面2 小时前
广东精密机械设备工厂8-10人共享一台SolidWorks设计服务器
运维·服务器·3d·自动化·汽车·制造
jieyucx2 小时前
【高级利用】条件竞争与逻辑漏洞:与服务器赛跑的艺术
android·运维·服务器·web安全·文件上传
tianyuanwo2 小时前
服务器OS组件研发效能度量可视系统——顶层方案设计与阶段性规划
运维·服务器·度量系统
黄华SJ520it3 小时前
二二复制定点裂变双轨商城系统开发:原理、架构与实战指南
运维·小程序·架构·系统开发
生活爱好者!3 小时前
NAS还能用来开视频会议?docker一键部署MiroTalk SFU
运维·docker·容器
xiaoxiangsiyan4 小时前
GitLab CI/CD 自托管(EE 企业版)+ Kubernetes Runner 集群 + ArgoCD(GitOps 部署)
运维·网络·ci/cd·容器·kubernetes·gitlab·argocd