深入解析:ubuntu24.04搭建GitLab服务器

简述

GitLab是一个功能强大的DevOps平台,涵盖了从项目规划、源代码管理到持续集成、部署和监控的整个开发生命周期。下面这个流程图梳理了GitLab的核心功能模块和学习路径:
在这里插入图片描述

安装GitLab

  1. 安装依赖包
sudo apt update
sudo apt install -y curl openssh-server ca-certificates postfix
  • 在安装postfix(邮件服务器)时,可能会弹出配置窗口。如果你有域名并计划用于GitLab,可以选择"Internet Site"并设置域名;如果暂时不需要邮件功能或没有域名,也可以先跳过,后续再配置。
  1. 添加GitLab软件仓库并安装
    接下来,我们通过官方仓库安装GitLab。这里提供了官方源和国内镜像源两种方式,国内镜像通常速度更快。
  • 使用官方源安装:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt install gitlab-ce
  • 使用国内清华镜像源安装(推荐)
# 将镜像源添加到源列表
sudo vim /etc/apt/sources.list.d/gitlab-ce.list
# 在文件中添加以下行
deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu noble main
# 安装信任证书并更新软件列表
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
sudo apt update
sudo apt install gitlab-ce

安装成功后打印个很有创艺的Gitlab Logo:
在这里插入图片描述

配置GitLab

  1. 配置外部访问地址(关键步骤)
    GitLab最重要的配置是设置其外部访问地址。编辑配置文件/etc/gitlab/gitlab.rb,找到external_url项。
  • 如果你有域名(例如gitlab.example.com):
external_url 'http://gitlab.example.com'
  • 如果你只有IP地址(例如192.168.0.136):
external_url 'http://192.168.0.136'

注意:一定要带’http://’ 或安全访问’https://’ 需要安装认证证书

  • 注意:如果服务器的80端口已被占用,或者你想使用其他端口,可以在IP或域名后加上端口号,例如 http://192.168.0.136:8080

可以使用如下命令查看指定端口是否被占用,没有输出为未占用:

sudo ss -tulpn | grep 80
# 或
sudo netstat -tulpn | grep 80
  1. 应用配置并启动GitLab
    执行以下命令使配置生效,这会启动所有必要的服务,这个过程可能需要几分钟,请耐心等待。
sudo gitlab-ctl reconfigure
  1. 配置防火墙
    如果系统防火墙(UFW)是开启状态,需要放行HTTP和HTTPS流量
sudo ufw allow http
sudo ufw allow https
sudo ufw allow ssh  # 确保SSH端口开放,以免被锁在服务器外
sudo ufw reload

访问与初始化

  1. 访问GitLab并查找初始密码
    在浏览器中输入你配置的external_url地址(如http://192.168.1.100)。
    首次访问会要求你设置管理员root的密码。初始密码存储在服务器的一个文件中,可以通过以下命令查看
sudo cat /etc/gitlab/initial_root_password

注意:此密码文件将在24小时后被自动删除,出于安全考虑,请尽快登录后修改密码。

如果提示错误可能是puma端口冲突,编辑gitlab.rb重新配置后重新启动
sudo vim /etc/gitlab/gitlab.rb

external_url 'http://192.168.0.136:8080'
puma['port'] = 8081

重新配置,重新启动

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

在这里插入图片描述

输入管理员账号密码登录
Username:root
Password:“初始密码”

操作到这一步输入 http://192.168.0.136:8080显示如下
在这里插入图片描述
选择:Acknowledge
在这里插入图片描述

修改默认密码

Overview=>Users=>Administrator行点击 Edit
在这里插入图片描述
输入需要修改的信息点击Save changes保存修改内容
在这里插入图片描述
使用修改后的账号密码重新登录
在这里插入图片描述

日常管理维护

  • 服务器管理常用命令
sudo gitlab-ctl restart    # 重启所有GitLab服务
sudo gitlab-ctl stop       # 停止所有GitLab服务
sudo gitlab-ctl status     # 查看各服务状态
sudo gitlab-rake --version # 查看gitlab-rake版本 不是GitLab的版本
sudo gitlab-rake gitlab:env:info # 查看GitLab详细信息

数据备份

定期备份是一个好习惯。可以使用以下命令创建备份

# 
sudo gitlab-backup create
# GitLab 12.2 之前版本旧命令,已弃用
sudo gitlab-rake gitlab:backup:create

备份文件默认存储在/var/opt/gitlab/backups/目录。
备份文件示例:1710123456_2025_03_10_16.8.0_gitlab_backup.tar

备份内容包含:

  • Git 仓库
  • 数据库(用户、项目、权限、Issue、CI/CD 等)
  • 上传的附件(头像、LFS 文件、Wiki 等)

手动备份配置
备份命令不包含以下关键配置文件,需单独保存:

# 主配置文件
sudo cp /etc/gitlab/gitlab.rb ~/gitlab.rb.backup
# 加密密钥(用于解密数据库中的敏感数据,如 CI 变量、两步验证等)
sudo cp /etc/gitlab/gitlab-secrets.json ~/gitlab-secrets.json.backup

数据恢复

  1. 安装原GitLab版本
# 查看原 GitLab 版本(在备份文件名中)
# 如:..._16.8.0_gitlab_backup.tar → 版本为 16.8.0
# 在新服务器上安装对应版本
sudo apt install gitlab-ce=16.8.0-ce.0
  1. 停止 Puma 和 Sidekiq 服务
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
  1. 将备份文件复制到新服务器
scp oldserver:/var/opt/gitlab/backups/1710123456_2025_03_10_16.8.0_gitlab_backup.tar /var/opt/gitlab/backups/
sudo chown git:git /var/opt/gitlab/backups/*.tar
  1. 恢复数据
sudo gitlab-backup restore BACKUP=1710123456_2025_03_10_16.8.0
  1. 恢复配置
sudo cp ~/gitlab.rb.backup /etc/gitlab/gitlab.rb
sudo cp ~/gitlab-secrets.json.backup /etc/gitlab/gitlab-secrets.json
  1. 重新配置并启动
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
  1. 验证恢复结果
sudo gitlab-rake gitlab:check SANITIZE=true

进阶配置(可选)

  • 配置HTTPS访问
    为了更高的安全性,建议配置SSL证书启用HTTPS。你可以从Let’s Encrypt获取免费证书,或者使用自己的商业证书。配置需要在/etc/gitlab/gitlab.rb中修改external_url为https://,并配置证书路径。

  • 配置外网访问
    如果你希望GitLab能从公司或家庭网络之外访问,你需要:

  1. 在云服务平台的安全组规则中,放行你配置的端口(如80、443)。
  2. 如果你在局域网内,还需要在路由器上设置端口转发,将公网IP的端口转发到内网GitLab服务器的IP和端口。

使用方法简述

在这里插入图片描述

  • 创建项目组
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 方式1:克隆仓库到本地
    将远端服务器创建的空白git仓库克隆到本地,然后在此基础上做项目开发
    在这里插入图片描述

  • 方式2:本地仓库添加remote仓库
    本地已经有项目代码
    创建stm32f103rct6_modbus空白项目,然后执行如下命令:

git remote add origin http://192.168.0.136:8080/stm32f103/stm32f103rct6_modbus.git
git branch -M master
git push -uf origin master
posted @ 2025-12-12 17:54  clnchanpin  阅读(107)  评论(0)    收藏  举报