Ubuntu24.04搭建GitLab服务器

Ubuntu24.04搭建GitLab服务器

简述

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

安装GitLab

  1. 安装依赖包
shell 复制代码
sudo apt update
sudo apt install -y curl openssh-server ca-certificates postfix
  • 在安装postfix(邮件服务器)时,可能会弹出配置窗口。如果你有域名并计划用于GitLab,可以选择"Internet Site"并设置域名;如果暂时不需要邮件功能或没有域名,也可以先跳过,后续再配置。
  1. 添加GitLab软件仓库并安装
    接下来,我们通过官方仓库安装GitLab。这里提供了官方源和国内镜像源两种方式,国内镜像通常速度更快。
  • 使用官方源安装:
shell 复制代码
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt install gitlab-ce
  • 使用国内清华镜像源安装(推荐)
shell 复制代码
# 将镜像源添加到源列表
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项。
shell 复制代码
external_url 'http://gitlab.example.com'
  • 如果你只有IP地址(例如192.168.0.136):
shell 复制代码
external_url 'http://192.168.0.136'

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

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

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

shell 复制代码
sudo ss -tulpn | grep 80
# 或
sudo netstat -tulpn | grep 80
  1. 应用配置并启动GitLab
    执行以下命令使配置生效,这会启动所有必要的服务,这个过程可能需要几分钟,请耐心等待。
shell 复制代码
sudo gitlab-ctl reconfigure
  1. 配置防火墙
    如果系统防火墙(UFW)是开启状态,需要放行HTTP和HTTPS流量
shell 复制代码
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的密码。初始密码存储在服务器的一个文件中,可以通过以下命令查看
shell 复制代码
sudo cat /etc/gitlab/initial_root_password 

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

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

sudo vim /etc/gitlab/gitlab.rb

shell 复制代码
external_url 'http://192.168.0.136:8080'

puma['port'] = 8081

重新配置,重新启动

shell 复制代码
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

输入管理员账号密码登录

Username:root

Password:"初始密码"

操作到这一步输入 http://192.168.0.136:8080显示如下

选择:Acknowledge

修改默认密码

Overview=>Users=>Administrator行点击 Edit

输入需要修改的信息点击Save changes保存修改内容

使用修改后的账号密码重新登录

日常管理维护

  • 服务器管理常用命令
shell 复制代码
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详细信息

数据备份

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

shell 复制代码
# 
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 等)

手动备份配置

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

bash 复制代码
# 主配置文件
sudo cp /etc/gitlab/gitlab.rb ~/gitlab.rb.backup

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

数据恢复

  1. 安装原GitLab版本
bash 复制代码
# 查看原 GitLab 版本(在备份文件名中)
# 如:..._16.8.0_gitlab_backup.tar → 版本为 16.8.0

# 在新服务器上安装对应版本
sudo apt install gitlab-ce=16.8.0-ce.0
  1. 停止 Puma 和 Sidekiq 服务
bash 复制代码
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
  1. 将备份文件复制到新服务器
bash 复制代码
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. 恢复数据
bash 复制代码
sudo gitlab-backup restore BACKUP=1710123456_2025_03_10_16.8.0
  1. 恢复配置
cpp 复制代码
sudo cp ~/gitlab.rb.backup /etc/gitlab/gitlab.rb
sudo cp ~/gitlab-secrets.json.backup /etc/gitlab/gitlab-secrets.json
  1. 重新配置并启动
bash 复制代码
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
  1. 验证恢复结果
bash 复制代码
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空白项目,然后执行如下命令:

bash 复制代码
git remote add origin http://192.168.0.136:8080/stm32f103/stm32f103rct6_modbus.git
git branch -M master
git push -uf origin master
相关推荐
ulias2123 小时前
Linux系统中的权限问题
linux·运维·服务器
青花瓷4 小时前
Ubuntu下OpenClaw的安装(豆包火山API版)
运维·服务器·ubuntu
问简5 小时前
docker 镜像相关
运维·docker·容器
Dream of maid6 小时前
Linux(下)
linux·运维·服务器
齐鲁大虾6 小时前
统信系统UOS常用命令集
linux·运维·服务器
Benszen6 小时前
Docker容器化技术实战指南
运维·docker·容器
ZzzZZzzzZZZzzzz…6 小时前
Nginx 平滑升级:从 1.26.3 到 1.28.0,用户无感知
linux·运维·nginx·平滑升级·nginx1.26.3·nginx1.28.0
一叶知秋yyds7 小时前
Ubuntu 虚拟机安装 OpenClaw 完整流程
linux·运维·ubuntu·openclaw
专吃海绵宝宝菠萝屋的派大星8 小时前
使用Dify对接自己开发的mcp
java·服务器·前端
斯普信云原生组8 小时前
Prometheus 环境监控虚机 Redis 方案(生产实操版)
运维·docker·容器