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
相关推荐
zzzzzz3101 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode1 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220702 天前
如何搭建本地yum源(上)
运维
大树885 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠5 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质5 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz5 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工5 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智5 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_5 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化