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
相关推荐
九河云2 小时前
不同级别华为云代理商的增值服务内容与质量差异分析
大数据·服务器·人工智能·科技·华为云
知兀2 小时前
私有化部署的gitlab的push failed问题,使用http远程连接(使用token或用户、密码)
gitlab
guygg882 小时前
Linux服务器上安装配置GitLab
linux·运维·gitlab
RokFile2 小时前
SysInfoKeeper是一款面向 Linux/Unix 的硬件变动检测 CLI 工具
运维
地球没有花2 小时前
gitlab cicd 模块解释
运维·ci/cd·gitlab
小坏讲微服务3 小时前
Docker-compose搭建Docker Hub镜像仓库整合SpringBootCloud
运维·分布式·spring cloud·docker·云原生·容器·eureka
AI大模型学徒3 小时前
Docker(五)_数据根目录空间不足的原因与解决方法
运维·docker·容器
tzhou644523 小时前
Linux文本处理工具:cut、sort、uniq、tr
linux·运维·服务器
顾安r4 小时前
11.19 脚本 最小web控制linux/termux
linux·服务器·css·flask