基于ubuntu搭建gitlab

原文地址:基于ubuntu搭建gitlab – 无敌牛

欢迎参观我的网站:无敌牛 – 技术/著作/典籍/分享等

之前介绍了一个使用 git + openssh-server 搭建一个极简 git 库的方法,感兴趣可以查看往期文章:手搓一个极简远端git库 – 无敌牛 。git实现了代码管理的核心,gitlab 更有丰富的权限管理、自动测试、系统集成等丰富的功能,而且可视化操作也更友好,更加方便代码管理。本片文章介绍一下 gitlab 服务的搭建方法。

1、添加GitLab软件仓库源

在系统源增加 gitlab 的软件仓库源,直接执行以下代码。(前提:需要有 curl 工具,没有则需要安装: apt install curl)

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash

安装成功会添加 /etc/apt/sources.list.d/gitlab_gitlab-ce.list 和 /usr/share/keyrings/gitlab_gitlab-ce-archive-keyring.gpg 文件

2、安装gitlab及相关软件

sudo apt install -y gitlab-ce ca-certificates postfix

3、修改相关配置

打开 /etc/gitlab/gitlab.rb 文件,修改以下参数

external_url 'https://YourIpOrDomain'
gitlab_rails['time_zone'] = 'Asia/Shanghai'
nginx['enable'] = true
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/cert/server.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/cert/server.key"
nginx['ssl_ciphers'] = "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"
nginx['ssl_prefer_server_ciphers'] = "off"
nginx['listen_port'] = 443

external_url 设置成对系统的 IP 地址 或者 指定的域名(只要域名指向gitlab主机即可)

nginx打开了 https 访问,所以需要颁布证书。参考往期文章:自签名证书 – 无敌牛 ,自签名证书 和 Let’s Encrypt 颁发证书都有介绍。

4、部署生效并启动服务

部署生效:gitlab-ctl reconfigure

启动系统:gitlab-ctl start

打开浏览器访问,首次登录使用root账号登录即可,root 初始密码会保存在 /etc/gitlab/initial_root_password 文件。也可以注册新账号,不过新账号需要root通过才可以使用。


另外、docker方式安装

1、找一目录,在此创建 gitlab 的工作目录,并进入刚创建的 gitlab 目录

mkdir -p gitlab/{config,logs,data}
cd gitlab

2、在此目录创建 compose.yml 文件,内容如下。xx.xx.xx.xx 需要改成自己的 IP 地址或者 域名

version: '3.8'
services:gitlab:image: gitlab/gitlab-ce:latestcontainer_name: gitlabrestart: alwayshostname: 'xx.xx.xx.xx'  # 改为你的域名或IPenvironment:GITLAB_OMNIBUS_CONFIG: |external_url 'https://xx.xx.xx.xx'gitlab_rails['gitlab_shell_ssh_port'] = 2222ports:- "880:80"- "443:443"- "2222:22"volumes:- ./config:/etc/gitlab- ./logs:/var/log/gitlab- ./data:/var/opt/gitlabshm_size: '256m'

3、启动: docker-compose up -d 。root 的初始密码就在 config/initial_root_password

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/92415.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/92415.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

测试GO前沿实验室:为水系电池研究提供多维度表征解决方案

测试GO前沿实验室:为水系电池研究提供多维度表征解决方案随着全球能源转型加速,水系电池因其高安全性、低成本和环境友好特性,成为下一代储能技术的重要发展方向。测试狗前沿实验室针对水系电池研发中的关键科学问题,整合先进表征…

Spring Boot 中 YAML 配置文件详解

Spring Boot 中 YAML 配置文件详解 在 Spring Boot 项目中,配置文件是不可或缺的一部分,用于自定义应用行为、覆盖默认设置。除了传统的 properties 文件,Spring Boot 对 YAML(YAML Ain’t Markup Language)格式提供了…

Milvus安装可视化工具,attu,保姆级

安装包链接:GitHub - zilliztech/attu: Web UI for Milvus Vector Databasehttps://github.com/zilliztech/attu?tabreadme-ov-file 下滑 举例:windows:下载安装,然后就可以连接了(安装完打开后如果需要输入用户名密码…

避免“卡脖子”!如何减少内存I/O延迟对程序的影响?

单来说,内存 IO 就像是计算机的 “数据高速公路”,负责在内存和其他设备(如硬盘、CPU 等)之间传输数据。它的速度和效率直接影响着计算机系统的整体性能。 你有没有想过,当你点击电脑上的一个应用程序,它是…

V4L2摄像头采集 + WiFi实时传输实战全流程

📖 推荐阅读:《Yocto项目实战教程:高效定制嵌入式Linux系统》 🎥 更多学习视频请关注 B 站:嵌入式Jerry V4L2摄像头采集 WiFi实时传输实战全流程 1. 实战场景概述 目标: 嵌入式设备(如RK3588/正点原子开发…

Java 之 设计模式

1.单例模式1. ​​饿汉式(Eager Initialization)​​​​核心原理​​:类加载时立即创建实例,通过静态变量直接初始化。​​代码示例​​:public class Singleton {private static final Singleton INSTANCE new Sing…

[激光原理与应用-185]:光学器件 - BBO、LBO、CLBO晶体的全面比较

一、相同点非线性光学晶体属性BBO、LBO、CLBO均为非中心对称晶体,具备非线性光学效应,广泛应用于激光频率转换(如倍频、三倍频、和频、差频)、光学参量振荡(OPO)及电光调制等领域。宽透光范围三者均覆盖紫外…

Android APN加载耗时优化可行性分析

背景 根据Android系统底层机制和行业实践,本文讨论 APN 加载耗时从4.2s降至0.8s的数据合理性和技术可行性,需结合具体优化手段和硬件环境综合分析。 以下是关键判断依据及行业参考: ⚙️ 一、APN加载耗时基准参考 未优化场景的典型耗时 首次开机或重置后:APN需从apns-con…

mysql进阶-sql调优

概述优化索引在MySQL初阶的课程中已经介绍了索引,我们知道InnoDB存储引擎使⽤B树作为索引默认的数据结构来组织数据,为频繁查询的列建⽴索引可以有效的提升查询效率,那么如何利⽤索引编写出⾼效的SQL查询语句?以及如何分析某个查询…

海量数据处理问题详解

1.从a,b两个文件各存放50亿个url(每个url大小为64B),如何在内存为4G中查找a,b中相同的url 计算各文件存放大小:50亿*64B 大约为320G,而内存只有4G,显然存放不下,此时我们…

AI 记忆管理系统:工程实现设计方案

本文档为《从“健忘”到“懂我”:构建新一代AI记忆系统》中所述理念的详细工程实现方案。它将聚焦于技术选型、模块设计、数据流转和核心算法,为开发团队提供清晰的落地指引。 1. 系统架构与技术选型 为实现分层记忆与读写分离的设计理念,我们…

Linux驱动学习day26天(RS485)

一、原理通过芯片将232信号转换成485信号,485表示0和1的方法:Va - Vb 的电压差在2~6V时表示1,Va - Vb 的电压差在-2~-6V时表示0。这样传输不容易受到干扰,并且传输距离长。我们需要做的事情就是发送:使能DE(driver ena…

从零构建TransformerP1-了解设计

欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 有很多很多不足的地方,欢迎评论交流,感谢您的阅读和评论😄。 目录引言1 概念回顾1.1 序列任务1.1.1 将序列变成模型…

JVM 终止机制详解:用户线程与守护线程

用户线程未执行完是否会阻止 JVM 终止?答案是:取决于线程类型。让我详细解释: 核心规则 #mermaid-svg-bg5xpyMAeRWNGGk2 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-bg5xpyMAe…

Linux Vim 常用快捷键

Vim中最常用的快捷键,熟练掌握它们可以大大提高编辑效率。移动光标h- 左移j- 下移k- 上移l- 右移w- 移动到下一个单词开头b- 移动到上一个单词开头e- 移动到单词末尾0- 移动到行首$- 移动到行尾gg- 移动到文件开头G- 移动到文件末尾:n- 跳转到第n行插入模式i- 在光标…

【Bellman负环】Cycle Finding

题目翻译给定一个有向图,你的任务是判断它是否包含负环,并给出这样一个环的示例。输入 第一行输入两个整数 n 和 m:分别表示节点数和边数。节点编号为 1, 2, ..., n。 接下来 m 行描述边,每行有三个整数 a, b, c:表示存…

数据结构(六):树与二叉树

一、树的基本概念树的定义树(Tree)是由 n(n ≥ 0)个节点组成的有限集合,当 n 0 时称为空树。非空树中:有且仅有一个根节点(Root);其余节点可以划分为若干个互不相交的子…

《Linux运维总结:Shell 脚本日志输出工具》

总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:Linux运维实战总结 一、Shell 脚本日志输出工具 1、提供的 logger() 函数是一个非常实用的 Shell 脚本日志输出工具,它支持带时间戳和…

select ... for update阻塞

总结阻塞规则:当前事务持有的锁 (来自 SELECT ... FOR UPDATE)其他事务尝试的操作是否会被阻塞?原因排他锁 (X Lock) 在行 R 上SELECT ... FROM ... (普通查询)否读快照 (MVCC),不需要锁排他锁 (X Lock) 在行 R 上SELECT ... FROM ... FOR UP…

LangChain4j终极指南:Spring Boot构建企业级Agent框架

LangChain4j Spring Boot 构建企业级 Agent 框架深度指南(3000字终极版)一、架构设计:面向未来的企业级智能体系统1.1 分层架构设计1.2 核心组件职责1.3 企业级特性设计二、核心模块深度实现2.1 智能体协作引擎(LangGraph4j高级应…