私有gitlab的搭建和配置教程

文章目录

  • 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.13PreferredAuthentications publickeyIdentityFile ~/.ssh/id_rsa

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

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

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

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

相关文章

【iOS】属性关键字

文章目录 前言一、深拷贝与浅拷贝1、OC的拷贝方式有哪些2. OC对象实现的copy和mutableCopy分别为浅拷贝还是深拷贝?3. 自定义对象实现的copy和mutableCopy分别为浅拷贝还是深拷贝?4. 判断当前的深拷贝的类型?(区别是单层深拷贝还是完全深拷贝…

基于SSM的农产品推广应用网站

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

Mac电脑其他文件占用超过一大半的内存如何清理?

mac的存储空间时不时会提示内存已满,查看内存占用比例最大的居然是「其他文件」,「其他文件」是Mac无法识别的格式文件或应用插件扩展等等...如果你想要给Mac做一次彻底的磁盘空间清理,首当其冲可先对「其他文件」下手,那么我们该…

华为云中对象存储服务软件开发工具包(OBS SDK) C语言介绍

华为云的OBS介绍:摘自华为云官网:https://support.huaweicloud.com/obs/index.html 华为云的对象存储服务(Object Storage Service,OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。 …

RocketMQ_高级特性_事务消息

Apache RocketMQ在4.3.0版中已经支持分布式事务消息,这里RocketMQ采用了2PC的思想来实现了提交事务消息,同时增加一个补偿逻辑来处理二阶段超时或者失败的消息,如下图所示。 事务消息发送步骤如下: 生产者将半事务消息发送至消息队…

基于jeecg-boot的flowable流程自定义业务退回撤回或驳回到发起人后的再次流程提交

更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/nbcio-boot 前端代码:https://gitee.com/nbacheng/nbcio-vue.git 在线演示(包括H5) : http://122.227.135.243:9888 主要…

SpringMVC实现增删改查(CRUD)--从头到尾全面详细讲解

一&#xff0c;实现CRUD前准备工作 1.1 pom.xml依赖的配置 创建Model项目并导入相关pom.xml依赖 <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><m…

Agisoft Metashape相机标定笔记

Lens Calibration(镜头标定) 使用Metashape进行自动相机标定是可能的。Metashape使用LCD显示屏作为标定目标&#xff08;可选&#xff1a;使用打印的棋盘格图案&#xff0c;但需保证它是平坦的且单元格是正方形&#xff09;。 相机标定步骤支持全相机标定矩阵的估计&#xff…

以可视化方式解释 Go 并发 - 通道

在并发编程中&#xff0c;许多编程语言采用共享内存/状态模型。然而&#xff0c;Go 通过实现 通信顺序进程 (CSP) 区别于众多语言。在 CSP 中&#xff0c;一个程序由并行的进程组成&#xff0c;这些进程不共享状态&#xff0c;而是使用通道进行通信和同步它们的操作。因此&…

Linux编辑器 VI VIM

vim 命令模式 插入模式 ex模式 \ 命令模式 /查找关键字后&#xff0c;按n键在找到的结果之前来换的切换、 EX模式

Ubuntu编译运行socket.io

本篇文章记录一下自己在ubuntu上编译运行socket.io的过程&#xff0c;客户端选用的是socket.io的c的库&#xff0c;编译起来倒不难&#xff0c;但是说到运行的话&#xff0c;对我来说确实是花了点功夫。毕竟程序要能运行起来才能更方便地去熟悉代码&#xff0c;因此今天我就记录…

常见排序算法

排序简介常见排序算法插入排序直接插入排序希尔排序 选择排序选择排序堆排序 交换排序冒泡排序快速排序hoare版挖坑法前后指针法非递归实现快排优化 归并排序非递归实现归并排序海量数据排序问题 基数排序&#xff08;不用比较就能够排序&#xff09;桶排序计数排序&#xff08…

Zoom正式发布类ChatGPT产品—AI Companion

9月6日&#xff0c;全球视频会议领导者Zoom在官网宣布&#xff0c;正式发布生成式AI助手——AI Companion。 AI Companion提供了与ChatGPT类似的功能&#xff0c;包括根据文本对话起草各种内容&#xff0c;自动生成会议摘要&#xff0c;自动回答会议相关问题等&#xff0c;以帮…

Windows下安装配置Nginx

nginx安装 官网下载地址 https://nginx.org/en/download.html 推荐使用稳定版本 截止时间2023年9月5日稳定版本为 1.24.0 百度网盘 链接&#xff1a;https://pan.baidu.com/s/1cXm-jN2fMzKdVMRhbG72Fg 提取码&#xff1a;9hcq 下载完成以后,得到nginx压缩包; 双击启动nginx.…

3D目标检测数据集 KITTI(标签格式解析、点云转图像、点云转BEV)

本文介绍在3D目标检测中&#xff0c;理解和使用KITTI 数据集&#xff0c;包括KITTI 的基本情况、下载数据集、标签格式解析、点云转图像、点云转BEV。 目录 1、KITTI数据集中3D框可视化的效果 2、先看个视频&#xff0c;了解KITTI 的基本情况 3、来到KITTI官网&#xff0c;下…

电脑提示“系统找不到指定的文件”怎么办?

“系统找不到指定的文件”对于Windows用户来说是一个很常见的错误&#xff0c;尤其是Win10用户&#xff0c;经常会遇到Win10提示找不到指定文件。在此错误后面有时还会出现错误代码&#xff1a;0x80070002&#xff0c;但是&#xff0c;故障类型或代码在不同的操作系统规范上是不…

文本生成模型如何解码

文章目录 解码方法Greedy SearchBeam SearchsamplingTemperature Samplingtop-k samplingTop-p (nucleus) samplingContrastive search 总结相关资源 语言模型如何对于一个给定输入生成相应的输出呢&#xff1f;答案是使用解码策略(decoding strategy)。这里对现有的解码策略做…

用python实现基本数据结构【02/4】

*说明 如果需要用到这些知识却没有掌握&#xff0c;则会让人感到沮丧&#xff0c;也可能导致面试被拒。无论是花几天时间“突击”&#xff0c;还是利用零碎的时间持续学习&#xff0c;在数据结构上下点功夫都是值得的。那么Python 中有哪些数据结构呢&#xff1f;列表、字典、集…

【白话机器学习系列】白话梯度下降

白话梯度下降 梯度下降是机器学习中最常见的优化算法之一。理解它的基本实现是理解所有基于它构建的高级优化算法的基础。 文章目录 优化算法一维梯度下降均方误差梯度下降什么是均方误差单权重双权重三权重三个以上权重 矩阵求导结论 优化算法 在机器学习中&#xff0c;优化是…

ChatGPT实战与私有化大模型落地

文章目录 大模型现状baseline底座选择数据构造迁移方法评价思考 领域大模型训练技巧Tokenizer分布式深度学习数据并行管道并行向量并行分布式框架——Megatron-LM分布式深度学习框架——Colossal-AI分布式深度学习框架——DeepSpeedP-tuning 微调 资源消耗模型推理加速模型推理…