【GitLab私有仓库】在Linux上用Gitlab搭建自己的私有库并配置cpolar内网穿透

文章目录

  • 前言
  • 1. 下载Gitlab
  • 2. 安装Gitlab
  • 3. 启动Gitlab
  • 4. 安装cpolar
  • 5. 创建隧道配置访问地址
  • 6. 固定GitLab访问地址
    • 6.1 保留二级子域名
    • 6.2 配置二级子域名
  • 7. 测试访问二级子域名

前言

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。

Gitlab是被广泛使用的基于git的开源代码管理平台, 基于Ruby on Rails构建, 主要针对软件开发过程中产生的代码和文档进行管理, Gitlab主要针对group和project两个维度进行代码和文档管理, 其中group是群组, project是工程项目, 一个group可以管理多个project, 可以理解为一个群组中有多项软件开发任务, 而一个project中可能包含多个branch, 意为每个项目中有多个分支, 分支间相互独立, 不同分支可以进行归并。

下面我们通过在Linux centOS8 中搭建GitLab私有仓库并且结合Cpolar内网穿透工具,实现在公网环境下也可以访问私有仓库Gitlab。

1. 下载Gitlab

在系统中创建一个目录,名字叫GitLab,存放下载的安装包

mkdir /usr/local/gitlab

进入创建的目录

cd /usr/local/gitlab

下载Gitlab安装包,等待下载完成

wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/8/gitlab-ce-15.0.2-ce.0.el8.x86_64.rpm/download.rpm

1678717872337

2. 安装Gitlab

下载成功后,开始安装Gitlab,首先安装一个工具包,时间很长,等待安装完成:

yum install  policycoreutils-python-utils

1678720861569

然后安装Gitlab,进去我们上面创建的/usr/local/gitlab目录下执行:

rpm -Uvh gitlab-ce-15.0.2-ce.0.el8.x86_64.rpm

1678721095616

安装完成后,更新配置,稍微需要点时间,耐心等待一下,完成后,我们可以看到用户名和密码

gitlab-ctl reconfigure 

以下信息我们可以看到用户名和密码,用户名为:root,密码需要单独查看

1678721702117

上面那个路径就是密码路径,查看密码:

cat /etc/gitlab/initial_root_password

1678721881291

3. 启动Gitlab

测试启动,没有出错表示成功

gitlab-ctl start

1678722005864

然后修改访问地址,编辑Gitlab配置文件,

vim /etc/gitlab/gitlab.rb

把external_url的值换成http://127.0.0.1:8088,端口号可以自己指定,这里指定8088,然后保存

image-20230314003117292

修改完后重新加载配置文件

gitlab-ctl reconfigure

然后重新启动Gitlab

sudo gitlab-ctl restart

如果有防火墙,添加防火墙端口:8088

firewall-cmd --zone=public --add-port=8088/tcp --permanent

然后打开浏览器,输入Linux 局域网ip+8088,即可访问成功

1678725368861

输入上面的用户名:root 和上面查看的密码即可登录成功啦

1678725526795

4. 安装cpolar

上面我们在本地Linux虚拟机安装了Gitlab,下面我们安装cpolar内网传统工具,通过cpolar的http公网地址,我们可以很容易远程也可以访问GitLab,而无需自己注册域名.下面是安装cpolar步骤

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • token认证

登录cpolar官网后台,点击左侧的验证,查看自己的认证token,之后将token贴在命令行里:

cpolar authtoken xxxxxxx

20230206171248

  • 向系统添加服务,将cpolar配置为开机自启
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

5. 创建隧道配置访问地址

成功启动cpolar服务后,我们在浏览器上访问Linux局域网ip地址+9200端口,登录cpolar web UI管理界面。

登录成功后,点击左侧仪表盘的隧道管理——创建隧道,创建一个http协议的隧道指向上面设置的8088端口:

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复
  • 协议:http
  • 本地地址:8088
  • 域名类型:免费选择随机域名
  • 地区:选择China VIP

点击创建

1678724119867

然后打开在线隧道列表,查看并且复制公网地址

1678724278844

然后打开浏览器,输入公网地址,即可访问成功

1678725654998

6. 固定GitLab访问地址

由于刚刚创建隧道使用的是随机临时地址,该地址会在24小时内发生变化,为了长期远程访问,我们接下来将这个公网地址配置为固定的。

6.1 保留二级子域名

需升级至基础套餐或以上才支持配置二级子域名

登录cpolar官网后台,点击左侧仪表盘的预留,找到保留二级子域名,为http隧道保留一个二级子域名。

  • 地区:选择服务器地区
  • 名称:填写您想要保留的二级子域名(可自定义)
  • 描述:即备注,可自定义填写

1678725876220

本例保留一个名称为gitlabTest的二级子域名。子域名保留成功后,我们将子域名复制下来,接下来需要将其配置到隧道中去。

1678725912846

6.2 配置二级子域名

登录cpolar web ui管理界面。点击左侧仪表盘的隧道管理——隧道列表,找到需要配置二级子域名的隧道,点击右侧的编辑

1678725955880

修改隧道信息,将二级子域名配置到隧道中:

  • 域名类型:改为选择二级子域名
  • Sub Domain:填写我们刚刚所保留的二级子域名(本例为gitlabTest

修改完成后,点击更新

1678725995744

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到隧道的公网地址,已经更新为二级子域名了,将公网地址复制下来。

1678726056852

7. 测试访问二级子域名

打开浏览器,我们来测试一下访问配置成功的二级子域名,测试成功,可以正常访问。现在,我们全网唯一的私有二级子域名,就创建好了。 而且这个地址也不会再随机变化,他是固定不变的,只要保持隧道在线,我们在外就可以通过这个公网地址,随时随地远程访问,无需公网IP,也不用设置路由器。

1678726105739

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

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

相关文章

视频汇聚/视频云存储/视频监控管理平台EasyCVR部署后无法正常启用是什么问题?该如何解决?

安防监控/视频监控/视频汇聚平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,视频云存储/安防监控汇聚平台EasyCVR支持多种播放协议,包括:HLS、HTTP-FLV、WebSoc…

MavenCentral库发布记录

最近发布了 Android 路由库 URouter,支持 AGP8、ActivityResult启动等特性。 把提交到 Maven Central 过程记录一下。 一、注册 Sonatype 账号,新建项目 注册 https://​​issues.sonatype.org 登录后,新建项目: 相关选项&…

Stable Diffusion 多视图实践

此教程是基于秋叶的webui启动器 1.Stable Diffsuion 使用多视图需要准备一个多角度open pose 图 我给大家提供一个可使用的。 2.需要添加图片到到controlnet当中,不要选择预处理器,选择模型为openpose的模型,然后需要点选同步图片尺寸。 3.然后填写关键字可以参照一下这个…

设计模式概念学习

创建类型 单例模式 饿汉 构建时就创建 懒汉 单线程-访问到的时候才创建多线程-低效率 做法:加锁->若未创建则创建->获取资源->解锁 缺点:效率低,每次访问之前都要加锁,资源创建之后不能被同时被多个线程访问多线程-…

通过安装cpolar内网穿透在Kali上实现SSH远程连接的步骤指南

文章目录 1. 启动kali ssh 服务2. kali 安装cpolar 内网穿透3. 配置kali ssh公网地址4. 远程连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 简单几步通过cpolar 内网穿透软件实现ssh 远程连接kali! 1. 启动kali ssh 服务 默认新安装的kali系统会关闭ssh 连接服务,我们通…

智慧导览|智能导游系统|AR景区导览系统|景区电子导览

随着文旅市场的加快复苏,以及元宇宙、VR、AR、虚拟数字人等新兴技术的快速发展,文旅行业也正在加快数字化转型的步伐,向智慧景区建设迈进。为满足不同年龄段游客的游览需要,提升旅游服务体验,越来越多的旅游景区、博物…

系统架构设计师考试——论文模板参考(900字)

论文大纲 摘要 正文第一段第二段第三段第四段第五段第六段第七段 摘要 本文以我参与的某公司xx项目为例,论述了xx(论文题目要求)。该项目的目标是xx(产品能力),实现xx(主要功能)&am…

UDP和TCP协议报文格式详解

在初识网络原理(初识网络原理_蜡笔小心眼子!的博客-CSDN博客)这篇博客中,我们简单的了解了一下TCP/IP五层网络模型,这篇博客将详细的学习一下五层网络模型中传输层的两个著名协议:UDP和TCP 目录 一, 传输层的作用 二, UDP 1,UDP协议的特点 2,UDP报文格式 三, TC…

什么是websockret连接

什么是WebSocket WebSocket,是一种网络传输协议,位于 OSI 模型的应用层。可在单个 TCP 连接上进行全双工通信,能更好的节省服务器资源和带宽并达到实时通迅 客户端和服务器只需要完成一次握手,两者之间就可以创建持久性的连接&am…

An Efficient Memory-Augmented Transformer for Knowledge-Intensive NLP Tasks

本文是LLM系列文章,针对《An Efficient Memory-Augmented Transformer for Knowledge 一种用于知识密集型NLP任务的高效内存增强转换器 摘要1 引言2 相关工作3 高效内存增强Transformer4 EMAT的训练流程5 实验6 分析7 结论局限性 摘要 获取外部知识对于许多自然语言…

OpenCV(二十):图像卷积

1.图像卷积原理 图像卷积是一种在图像上应用卷积核的操作。卷积核是一个小的窗口矩阵,它通过在图像上滑动并与图像的像素进行逐元素相乘,然后求和来计算新图像中每个像素的值。通过滑动卷积核并在图像上进行逐像素运算,可以实现一系列图像处理…

(笔记七)利用opencv进行形态学操作

(1)程序清单 形态学操作是一种图像处理技术,它基于数学形态学理论,用于改变图像的形状和结构。它主要通过结构元素的腐蚀和膨胀操作来实现。 #!/usr/bin/env python # -*- coding:utf-8 -*- """ author: LIFEI t…

Vue生成多文件pdf准考证

这是渲染的数据 这是生成的pdf文件,直接可以打印 需要安装和npm依赖和引入封装的pdf.js文件 npm install --save html2canvas // 页面转图片 npm install jspdf --save // 图片转pdfpdf.js文件 import html2canvas from "html2canvas"; import jsPDF …

SpringMVC框架@RequestMapping用法,处理器方法参数接收,处理器方法返回值详解

1. RequestMapping 定义请求规则 1.1 指定模块名称 通过RequestMapping 注解可以定义处理器对于请求的映射规则。该注解可以注解在方 法上,也可以注解在类上,但意义是不同的。value 属性值常以“/”开始。RequestMapping 的 value 属性用于定义所匹配请…

Python 爬虫—scrapy

scrapy用于从网站中提取所需数据的开源协作框架。以一种快速、简单但可扩展的方式。 该爬虫框架适合于那种静态页面, js 加载的话,如果你无法模拟它的 API 请求,可能就需要使用 selenium 这种使用无头浏览器的方式来完成你的需求了 入门 imp…

【实战-05】 flinksql look up join

摘要 look up join 能做什么? 不饶关子直接说答案, look up join 就是 广播。 重要是事情说三遍,广播。flinksql中的look up join 就类似于flinks flink Datastream api中的广播的概念,但是又不完全相同,对于初次访问…

C语言中关于printf()输出的时候的一个出栈入栈问题

先看一段代码,可以自己尝试一下,反正我当时尝试的时候好多搞不懂, 不过现在搞懂了,里面牵扯到了一个入栈和出栈的问题, 官方解释是这个: 因为C语言函数参数入栈顺序是从右到左的,所以计算顺序是…

20230904工作心得:集合应该如何优雅判空?

1 集合判空 List<String> newlist null;//空指针if( !newlist.isEmpty()){newlist.forEach(System.out::println);}//空指针if(newlist.size()>0 && newlist!null){newlist.forEach(System.out::println);}//可行if(newlist!null && newlist.size()&…

C语言 语法积累

参考博文&#xff1a; c语言中int默认是有符号还是无符号,C语言迷题&#xff1a;有符号数与无符号数的问题_旋斡勃人的博客-CSDN博客前些天偶然看到了一个收集C语言迷题的网站&#xff0c;很是感兴趣。本人对C/C语言本身很是感兴趣&#xff0c;曾经做过几年相应的开发&#xf…

van-cascader 异步加载

vant官网 异步加载选项 在使用级联选择时当一次性拿到数据量太大时不仅接口慢而且前端渲染页面也会变慢&#xff0c;用户体验很不好&#xff0c;建议使用异步加载选项&#xff0c; 拿到的接口让后端返回一个是否还有下一级的判断&#xff0c;不然van-cascader判断没有childre…