私有gitlab的搭建和配置教程

news2024/11/25 14:58:51

文章目录

  • 1. 说明
  • 2. 安装操作
    • 2.1 依赖项
    • 2.2 gitlab-ce
    • 2.3 简要配置
    • 2.4 网页操作
    • 2.5 中文配置
    • 2.6 其他操作
  • 3. 配置https
    • 3.1 配置证书
    • 3.2 url配置
    • 3.3 网页访问
    • 3.4 认证错误
  • 4. ssh操作
    • 4.1 生成文件
    • 4.2 web配置
    • 4.3 额外操作

1. 说明

此教程基于Ubuntu22.04进行阐述,只有部分操作系统特有操作外,应该具有普适性,如果在其他操作系统(如 CentOS/Deepin等)进行gitlab的搭建,也具有一定的参考意义。

2. 安装操作

2.1 依赖项

首先安装一些依赖项和邮件:

sudo apt install -y curl openssh-server ca-certificates postfix

这个时候会在终端中弹出提示,需要选择和确认一些东西,选择的时候,直接选择Internet Site,后续都是直接选择OK即可。

2.2 gitlab-ce

然后安装对应的gitlab-ce,千万不要选择什么极狐那些玩意!!!

注意,这里是debain系的安装办法,如果是redhat系,请自行搜索!

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

然后执行命令:

sudo EXTERNAL_URL="http://ip:port" apt install gitlab-ce

注意这里的EXTERNAL_URL将会写入到gitlab的配置文件中的,我这里采用的方式是http://ip:port的方式,也就是主机ip加端口的方式,比如我的主机ip为12.1.12.13,我想给gitlab分配端口8000,那么这里就是 http://12.1.12.13:8000

这样已经完成了安装!

2.3 简要配置

注意刚刚分配了端口,但是linux默认有防火墙机制,需要对端口进行规则处理。并且希望gitlab能够开机自启等。

Ubuntu22.04配置端口的允许(其他系统的自行查找):

sudo ufw allow 8000

开机自启的设置:

systemcl enable gitlab-runsvdir

2.4 网页操作

经过前面的配置,已经可以登录网页了,使用http://ip:port即可登录,页面如下:

gitlab登录页面

2.5 中文配置

设置网页内部中文显示的方法:

  1. 进入偏好设置:

偏好设置

  1. 设置中文:

中文配置

2.6 其他操作

如果要新建项目、更换头像、管理成员等等操作,请自行搜索教程,非常庞杂,这里不进行赘述。

3. 配置https

如果有配置成https的需要,则继续阅读,否则已经完成配置了!!!

3.1 配置证书

依次进行如下命令操作

sudo mkdir -p /etc/gitlab/ssl
sudo chmod 755 /etc/gitlab/ssl
sudo openssl genrsa -des3 -out /etc/gitlab/ssl/gitdev.key 2048
sudo openssl req -new -key /etc/gitlab/ssl/gitdev.key -out /etc/gitlab/ssl/gitdev.csr
# sudo cp -v /etc/gitlab/ssl/gitdev.{key,original}
# sudo openssl rsa -in /etc/gitlab/ssl/gitdev.original -out /etc/gitlab/ssl/gitdev.key
# sudo rm -v /etc/gitlab/ssl/gitdev.original
sudo openssl x509 -req -days 1460 -in /etc/gitlab/ssl/gitdev.csr -signkey /etc/gitlab/ssl/gitdev.key -out /etc/gitlab/ssl/gitdev.crt
sudo rm -v /etc/gitlab/ssl/gitdev.csr
sudo chmod 600 /etc/gitlab/ssl/gitdev.key
sudo chmod 600 /etc/gitlab/ssl/gitdev.crt

注意:

这里的 gitdev 可以更改为你的喜好命名!

3.2 url配置

打开配置文件

sudo vim /etc/gitlab/gitlab.rb

然后修改如下这一行:

external_url 'https://12.1.12.13:8000'

注意:

在前面2.2的时候,写的是 http://12.1.12.13:8000,这里改成https即可

然后让配置生效:

sudo gitlab-ctl reconfigure

3.3 网页访问

现在则可以通过https://ip:port访问网页了。

3.4 认证错误

这个时候如果直接使用如下命令拉取仓库:

git clone https://xxx:/xx/xx.git

会发现报错,没有认证文件……

解决办法是在git bash或者Linux的终端输入命令:

git config --global http.sslVerify false

也就是通过git配置来解决,请注意使用global还是local,这个区别就是全局还是只针对当前仓库的区别,请自行选择。

4. ssh操作

前面步骤配置完成之后,就可以通过如下的方式进行代码的拉取推送了:

# http方式
git clone http://xxx:/xx/xx.git

# https方式
git clone https://xxx:/xx/xx.git

但是,使用ssh进行各种拉取推送操作,才是更为安全简洁的,原因可自行搜索。

这里针对Windows下配置,Linux下大差不差。

4.1 生成文件

注意,必须使用git bash进行操作,Linux下则可以直接在终端操作。

ssh-keygen

则在用户目录下生成了一个.ssh目录,里面有一些文件:

目录展示

4.2 web配置

id_rsa.pub的内容按照如下进行操作:

ssh密钥

密钥配置

4.3 额外操作

如果只进行以上步骤,在克隆时会发现无法成功……会提示类似这样的东西:

git@12.1.12.13's password: 

然后不管你输入什么密码都不行……

所以,需要你的额外操作来解决问题。

仍然是打开git bash

vim ~/.ssh/config

然后输入:

# gitlab
Host 12.1.12.13
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa

注意IdentityFile对应的文件和路径一定是你真正生成的文件路径。

然后就可以愉快地进行玩耍了!

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

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

相关文章

# Spring MVC与RESTful API:如何设计高效的Web接口

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

【MySQL】详解聚合查询、多表查询

MySQL 增删查改(进阶) 文章目录 MySQL 增删查改(进阶)01 表的设计表的三大范式 02 查询操作进阶新增聚合查询countsumavgmaxmin 分组查询 GROUP BYHAVING 联合查询/多表查询关键思路引入内连接外连接左外连接:left joi…

WAMP服务器对python进行配置

WAMP服务器中安装python WAMP服务器中安装python 步骤 D:\wamp\bin\apache\Apache2.4.4\conf\httpd.conf // 打开找到Wamp安装目录下,apache的配置文件 将该配置文件备份一份 LoadModule cgi_module modules/mod_cgi.so // 找到配置文件中该行,把行前面…

探索OLED透明屏触摸技术:创新引领智能生活的未来

OLED透明屏触摸技术作为一项创新技术,正在引领智能生活的未来。’ 通过将透明屏和触摸技术相结合,OLED透明屏触摸设备不仅具备了OLED显示屏的优势,还具备了触摸操作的便利性, 在这里,尼伽将介绍OLED透明屏触摸技术的…

Linux教程||Linux 系统启动过程

Linux 系统启动过程 linux启动时我们会看到许多启动信息。 Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段: 内核的引导。运行init。系统初始化。建立终端 。用户登录系统。 内核引导 当计算机打开电源后,首先是B…

Apache Hive之数据查询

文章目录 版权声明数据查询环境准备基本查询准备数据select基础查询分组、聚合JOINRLIKE正则匹配UNION联合Sampling采用Virtual Columns虚拟列 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明,所有版权属于黑马程序员或相关权利…

Linux指令二【进程,权限,文件】

进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行 资源分配和调度的一个独立单位,是应用程序运行的载体。 一、进程基本指令 1.ps:当前的用户进程 ps 只显示隶属于自己的进程状态ps -aux 显示所有进程…

JavaScript基础入门之输出

目录 目录 前言 系列文章列表 JavaScript初学 思维导图 1,如何在Edge浏览器中执行 JavaScript 1.1,首先按F12 1.2,使用控制台窗口调试js代码 1.2.1,如何使用 1.2.2,进行js测试使用 1.3,Edge小脚本 1.3.1,如何创建脚本 1.3.2,运行脚本 2,Ja…

CRC原理介绍及STM32 CRC外设的使用

1. CRC简介 循环冗余校验(英语:Cyclic redundancy check,简称CRC),由 W. Wesley Peterson 于 1961 年首次提出的一种纠错码理论。 CRC是一种数据纠错方法,主要应用于数据通信或者数据存储的场合&#xff…

计算机专业毕业设计项目推荐02-个人医疗系统(Java+原生Js+Mysql)

个人医疗系统(Java原生JsMysql) **介绍****系统总体开发情况-功能模块****各部分模块实现** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设计流程以…

Javase | String字符串-1

目录: 1.字符串 (String)2.new String对象 和 不new String对象时内存分析:2.1 不new String对象时内存分析2.2 new String对象时内存分析 3.以下程序一共创建了几个对象?4.String类中常用“构造方法”String( )String(byte [ ] b)String( by…

字符串逆序(不使用库函数并用递归实现)

文章目录 前言一、题目要求二、解题步骤1.大概框架2.如何反向排列?3.模拟实现strlen4.实现反向排列5.递归实现反向排列 总结 前言 嗨,亲爱的读者们!我是艾老虎尤,。今天,我们将带着好奇心,探索一个题目&am…

显示器鼠标滚动时或者拖拽文字变为绿色

新电脑,新显示器,看文章时滚动鼠标滑轮,文字颜色就变为绿色。 拖住文本文档或者浏览器等有文字的窗口,文字也会变为绿色。 静止时一点儿问题没有。 以下视频展示滚动和拖拽的操作,视频看不出变色,只参考…

TuyaOS开发学习笔记(2)——NB-IoT开发SDK架构、运行流程

一、SDK架构 1.1 架构框图 基于 TuyaOS 系统,可以裁剪得到的适用于 NB-IoT 协议产品接入的 SDK。SDK 将设备配网、上下行数据通信、产测授权、固件 OTA 升级等接口进行封装,并提供相关函数。 1.2 目录结构 1.2.1 TuyaOS目录说明 adapter:T…

transformer 总结(超详细-初版)

相关知识链接 attention1attention2 引言 本文主要详解 transformer 的算法结构以及理论解释,代码实现以及具体实现时候的细节放在下一篇来详述。 下面就通过上图中 transformer 的结构来依次解析 输入部分(Encode 侧) input 输出主要包含 两个部分&#xff1a…

[acwing周赛复盘] 第 120 场周赛20230909

[acwing周赛复盘] 第 120 场周赛20230909 总结5146. 最大GCD1. 题目描述2. 思路分析3. 代码实现 5147. 数量1. 题目描述2. 思路分析3. 代码实现 5148. 字符串匹配1. 题目描述2. 思路分析3. 代码实现 六、参考链接 总结 T1好难啊。T1 数学T2 dfs/数位dpT3 计数贪心 5146. 最大…

第51节:cesium 范围查询(含源码+视频)

结果示例: 完整源码: <template><div class="viewer"><el-button-group class="top_item"><el-button type=

render和jsx

render和jsx 1..vue文件最后会变成一个对象。 一个vue文件要么是render写法&#xff0c;要么是模板写法。 为什么React在大型项目中比较适合&#xff1f; 在大型项目中比较适合&#xff1f; 因为React使用jsx&#xff0c;比较灵活。

ISYSTEM调试实践11-Profiler Timeline和软件运行时间分析

一 前言 本文主要内容是讨论嵌入式软件的时间分析&#xff0c;供大家探讨&#xff0c;如果有疑问欢迎探讨。 对于汽车软件&#xff0c;往往对执行的时序和代码运行的时间有着严格要求。对于在主循环内执行的任务函数&#xff0c;不论是手写还是Autosar生成,能否节拍执行到&…

flink时间处理语义

背景 在flink中有两种不同的时间处理语义&#xff0c;一种是基于算子处理时间的时间&#xff0c;也就是以flink的算子所在的机器的本地时间为准&#xff0c;一种是事件发生的实际时间&#xff0c;它只与事件发生时的时间有关&#xff0c;而与flink算子的所在的本地机器的本地时…