个人心得-搭建GitLab社区版服务器

服务器配置

由于本人没有真实服务器,所以使用VMWare虚拟机进行服务器模拟,以下是服务器的一些配置信息:

  • CentOS镜像官网:www.centos.org/download/
  • 系统镜像:CentOS-Stream-9-latest-x86_64-dvd1.iso
  • 系统内存:4G
  • 硬盘大小:50G
  • 处理器:4个

安装GitLab服务

  • 新建gitlan-ce.repo文件,在/etc/yum.repos.d/目录下,新建gitlab-ce.repo文件,并填写下面内容,这是下载GitLab的镜像源地址。
js 复制代码
[gitlab-ce]

name=Gitlab CE Repository

baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/

gpgcheck=0

enabled=1
  • 更新本地yum缓存
js 复制代码
yum makecache
  • 查询可安装gitlab版本
js 复制代码
yum list --showduplicates gitlab-ce
  • 安装gitlab
js 复制代码
-- 指定版本安装命令;版本号,例如:16.8.1-ce.0.el7,需要写完整,根据自己需求选择版本
yum install gitlab-ce-版本
-- 最新版本安装命令
yum install gitlab-ce

等待系统自行安装完毕即可。

配置web端、自定义端口及更新配置重启

  • 配置web端访问地址
js 复制代码
1. 编辑 /etc/gitlab/gitlab.rb 文件
2. 找到 external_url 属性,修改访问地址,可IP或域名

补充:默认使用http,如果需要配置https的话,需要自行查阅资料。
  • 自定义端口
js 复制代码
1. 编辑 /etc/gitlab/gitlab.rb 文件
2. 找到 nginx['listen_port'] 属性
3. 修改端口信息
补充:gitlab的web端口默认使用80端口,并且自带nginx代理,可根据需求进行修改端口以及nginx配置
  • 更新配置并重启服务
js 复制代码
sudo gitlab-ctl reconfigure

服务启动成功后,控制台会输出类似以下内容:

js 复制代码
Running handlers complete

Chef Infra Client finished, ...

gitlab Reconfigured!

web端

  • 访问external_url设置的地址进入登录页
    初始账号:root
    初始密码:在 /etc/gitlab/initial_root_password文件中查看
    该密码为临时密码,24小时有效,登录后需重新修改密码

至此,整个GitLab的简单搭建就已经完成;这里面还有一些坑是需要大家自己去填的,比如https要如何配置;nginx要如何配置等。

常见问题

  • 无法访问web端口:
    • 检查服务器防火墙是否开放端口访问
    • 检查服务器防火墙是否开放http与https访问
    • 检查gitlab携带的nginx是否正常启动
    • 检查external_url是否正确配置
  • 首次登录502 Bad Gateway
    • 通常是因为gitlab后端服务未完全启动,请等待几分钟再尝试
    • 查看日志:sudo gitlab-ctl tail puma 或 sudo gitlab-ctl tail

常用命令

js 复制代码
sudo gitlab-ctl start    # 启动所有 gitlab 组件;

sudo gitlab-ctl stop        # 停止所有 gitlab 组件;

sudo gitlab-ctl restart        # 重启所有 gitlab 组件;

sudo gitlab-ctl status        # 查看服务状态;

sudo gitlab-ctl reconfigure        # 启动服务;

sudo vim /etc/gitlab/gitlab.rb        # 修改默认的配置文件;

gitlab-rake gitlab:check SANITIZE=true --trace    # 检查gitlab;

sudo gitlab-ctl tail        # 查看日志;

-- 下面是开放防火墙端口与http/https命令
sudo firewall-cmd --permanent --add-service=http 
sudo firewall-cmd --permanent --add-service=https 
-- 如果用了自定义端口,比如 8080: 
-- sudo firewall-cmd --permanent --add-port=8080/tcp 
sudo firewall-cmd --reload

-- CentOS 8+/RHEL 使用 nftables 或直接关闭
sudo systemctl stop firewalld 
sudo systemctl disable firewalld -- 禁用防火墙,不建议这么做
相关推荐
朱涛的自习室10 分钟前
我给 Gemini 4 和 DeepSeek 搞了套「末位淘汰」,AI 干活会更猛吗?(Day 3)
android·前端·后端
woniu_maggie3 小时前
SAP MDG主数据治理实战:从架构原理到项目实施全解析
后端
xiaoqiMikko3 小时前
Redis 实战(一):内存满了 —— 拒写、淘汰、被系统杀掉,以及删了 key 内存为什么不降(6.2.4 实测)
redis·后端
工程师小爱3 小时前
电芯尺寸合格,不等于电池包尺寸合格
后端
geovindu3 小时前
rust:Memento Pattern(续)
开发语言·后端·设计模式·rust·行为模式·备忘录模
闲云lazycloud3 小时前
第 1 课:Harness 与 Agent 运行时
人工智能·后端
熊哈哈O_o4 小时前
260+异构同步链路:DDL语法自动翻译在大规模数据同步中的实现原理
后端
用户9888321871744 小时前
别把 IOptionsSnapshot 注入单例:从生命周期看 .NET 配置读取
后端
姜鱼问生4 小时前
别再 chmod 777 了,用 ACL 给它开一扇窗
后端·算法·架构