个人心得-搭建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 -- 禁用防火墙,不建议这么做
相关推荐
天天摸鱼的java工程师4 分钟前
工作中 Java 程序员如何集成 AI?Spring AI、LangChain4j、JBoltAI 实战对比
java·后端
叫我:松哥5 分钟前
基于 Flask 框架开发的在线学习平台,集成人工智能技术,提供分类练习、随机练习、智能推荐等多种学习模式
人工智能·后端·python·学习·信息可视化·flask·推荐算法
IT=>小脑虎8 分钟前
2026版 Go语言零基础衔接进阶知识点【详解版】
开发语言·后端·golang
图南随笔14 分钟前
Spring Boot(二十三):RedisTemplate的Set和Sorted Set类型操作
java·spring boot·redis·后端·缓存
pathfinder同学19 分钟前
Vafast:一个让我放弃 Express 和 Hono 的 TypeScript Web 框架
后端
麦兜*25 分钟前
Spring Boot 整合 Apache Doris:实现海量数据实时OLAP分析实战
大数据·spring boot·后端·spring·apache
源代码•宸27 分钟前
Golang基础语法(go语言指针、go语言方法、go语言接口、go语言断言)
开发语言·经验分享·后端·golang·接口·指针·方法
Bony-28 分钟前
Golang 常用工具
开发语言·后端·golang
pyniu29 分钟前
Spring Boot车辆管理系统实战开发
java·spring boot·后端
love_summer30 分钟前
深入理解Python控制流:从if-else到结构模式匹配,写出更优雅的条件判断逻辑
后端