Ubuntu24.04搭建GitLab服务器

Ubuntu24.04搭建GitLab服务器

简述

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

在这里插入图片描述

安装GitLab

  1. 安装依赖包
sudoapt update sudoaptinstall -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 |sudobashsudoaptinstall gitlab-ce 
  • 使用国内清华镜像源安装(推荐)
# 将镜像源添加到源列表sudovim /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 sudoapt update sudoaptinstall 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 |grep80# 或sudonetstat -tulpn |grep80
  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的密码。初始密码存储在服务器的一个文件中,可以通过以下命令查看
sudocat /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 等)

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

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

数据恢复

  1. 安装原GitLab版本
# 查看原 GitLab 版本(在备份文件名中)# 如:..._16.8.0_gitlab_backup.tar → 版本为 16.8.0# 在新服务器上安装对应版本sudoaptinstall 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/ sudochown 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和端口。

使用方法简述

在这里插入图片描述
  • 方式2:本地仓库添加remote仓库
    本地已经有项目代码
    创建stm32f103rct6_modbus空白项目,然后执行如下命令:

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

在这里插入图片描述

创建项目组

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述
git remote add origin http://192.168.0.136:8080/stm32f103/stm32f103rct6_modbus.git git branch -M master git push -uf origin master 

Read more

医疗AI场景下算法编程的深度解析(2026新生培训讲稿)(三)

医疗AI场景下算法编程的深度解析(2026新生培训讲稿)(三)

第5章 逻辑回归:疾病风险概率建模 逻辑回归(Logistic Regression)尽管名称中含有“回归”,但它实际上是一种广泛应用于分类任务的线性模型。在医疗领域,逻辑回归因其简单、高效、可解释性强,以及能够输出概率值的特点,成为疾病风险预测、诊断辅助、预后评估等任务的基石算法。本章将从算法原理出发,深入解析逻辑回归在医疗场景中的适用性,并通过实战案例展示从数据预处理、模型训练、结果解释到临床应用的完整流程。 5.1 算法原理 逻辑回归的核心思想是:通过线性回归的输出来估计样本属于某个类别的概率。它使用一个非线性函数(Sigmoid函数)将线性组合的实数输出映射到0到1之间的概率值,从而解决分类问题。 5.1.1 从线性回归到逻辑回归 线性回归模型试图用特征的线性组合来预测一个连续值: [ z = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + … + \theta_p x_

By Ne0inhk
AI实践(5)检索增强(RAG)

AI实践(5)检索增强(RAG)

AI实践(5)检索增强(RAG) Author: Once Day Date: 2026年3月2日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: AI实践成长_Once-Day的博客-ZEEKLOG博客 参考文章:Prompt Engineering GuideDocumentation - Claude API DocsOpenAI for developers检索增强生成 (RAG) | Prompt Engineering GuideBuild a RAG agent with LangChain - Docs by LangChain一文读懂:大模型RAG(检索增强生成)含高级方法2026 年 RAG 技术最新进展与落地实践指南 - 个人文章 - SegmentFault

By Ne0inhk
【鸿蒙2025领航者闯关】从技术突破到生态共建,开发者的成长与远航

【鸿蒙2025领航者闯关】从技术突破到生态共建,开发者的成长与远航

文章目录 * 前言 * 第一章 鸿蒙开发入门:认知全场景操作系统的核心魅力 * 1.1 鸿蒙操作系统的核心定位 * 1.2 鸿蒙开发的核心技术底座 * 1.2.1 分布式技术:设备协同的“灵魂” * 1.2.2 ArkUI:全场景UI开发的“利器” * 1.2.3 鸿蒙应用的两种形态:FA与HAP * 第二章 技术成长突破:从单端开发到跨设备协同的蜕变 * 2.1 成长痛点:单端开发的“能力天花板” * 2.2 核心突破一:掌握ArkUI多端自适应开发 * 2.2.1 声明式编程的思维转变 * 2.2.2 多端自适应的核心技术:布局约束与媒体查询 * 2.

By Ne0inhk
Flutter for OpenHarmony: Flutter 三方库 dart_style 像官方一样统一你的鸿蒙代码格式(代码美化神器)

Flutter for OpenHarmony: Flutter 三方库 dart_style 像官方一样统一你的鸿蒙代码格式(代码美化神器)

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net 前言 在 OpenHarmony 项目开发中,不论是个人的“心血之作”还是团队协作的“巨无霸”工程,代码的可读性是维护成本的生命线。每个人都有自己的编码习惯:有人喜欢紧凑型,有人喜欢在大括号前后留白。如果代码格式没有统一的标准,代码提交(Git Merge)时的差异对比将是一场灾难。 dart_style(其核心命令即 dart format)是 Dart 语言官方出品的格式化引擎。它通过一套被全球 Dart 开发者公认的算法,强制将你的源码重新排版为最标准、最易读的形态。 一、核心排版逻辑 dart_style 采用“行长度优先”的排版权重算法。 计算行长 修正空白 杂乱的源码 dart_style 解析器 折行与对齐策略

By Ne0inhk