当前位置: 首页 > news >正文

华为云云耀云服务器L实例评测|Git 私服搭建指南

前言

本文为华为云云耀云服务器L实例测评文章,测评内容是 云耀云服务器L实例 Git 私有服务器搭建指南

系统配置:2核2G 3M Ubuntu 20.04

我们平时在使用代码托管服务的时候,可能某些代码托管平台对成员有限制,或是由于内容原因会对仓库进行封禁,这些问题让我们非常苦恼。这个时候搭建 Git 私服不失为一种不错的替代方案

下面将会讲解两种搭建 Git 私服方式:GitLab 私服和 Codeup 平台

GitLab 私服

简介

GitHub 和 GitLab 都是基于 Git 的开发流程代码托管平台。两者的区别是 GitHub 有私有仓库和共有仓库,私有仓库一般收费GitLab 打破这种限制,可以免费搭建私有仓库,并且可以部署在自己的服务器上。GitLab 不仅有 GitHub 的功能,还有更多的优秀特性,比如权限设置。一般企业内部软件产品用 GitLab 是更好的选择,如果是开源产品,一般放在 GitHub 上。

Ubuntu

Ubuntu 20.04

依赖配置

配置依赖

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

系统防火墙中打开 HTTPHTTPS SSH 访问 (可选,不设置则只能从本地网络访问 )

sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

开启 Postfix 以发送电子邮件通知 (可选)

sudo systemctl enable postfix
sudo systemctl start postfix

开始安装

清华镜像官网:gitlab-ce | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

然后获取您的系统对应版本的安装命令

首先信任 GitLab 的 GPG 公钥:

curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
touch /etc/apt/sources.list.d/gitlab-ce.list
echo "deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu focal main" | sudo tee -a /etc/apt/sources.list.d/gitlab-ce.list

最后安装 gitlab-ce

sudo apt-get update
sudo apt-get install gitlab-ce

安装成功

在这里插入图片描述

配置端口及网址

进入文件 /etc/gitlab/gitlab.rb,进行如下配置

# 编辑文件
vim /etc/gitlab/gitlab.rbexternal_url 'http://gitlab.example.com'
# 更改为如下
external_url 'http://<本机ip>:8899'

重新配置

sudo gitlab-ctl reconfigure
# 开启应用
sudo gitlab-ctl start

但是这里重新配置很容易卡住,可以使用如下命令解决

nohup /opt/gitlab/embedded/bin/runsvdir-start &
gitlab-ctl reconfigure

配置成功

image-20230915183125595

登录应用

我们注意到上面我们使用 sudo gitlab-ctl reconfigure 之后控制台出现的的下面的信息

Notes:
Default admin account has been configured with following details:
Username: root
Password: You didn't opt-in to print initial root password to STDOUT.
Password stored to /etc/gitlab/initial_root_password. This file will be cleaned up in first reconfigure run after 24 hours.

上述输出表示在 GitLab 中,默认的管理员账户的用户名是"root",密码被存储在/etc/gitlab/initial_root_password文件中。同时该文件将在首次重新配置运行后的24小时内被清除。

访问之前 external_url 设置的网址,如果是在云服务器上的话,需要开启安全组和对应防火墙

sudo ufw allow <端口>
sudo ufw deny <端口>
# 关闭 ufw
systemctl stop ufw.service

但是访问之后出现 502 We're sorry. GitLab is taking too much time to respond. 问题

502 解决方案

vim /etc/gitlab/gitlab.rb
# 添加下面一行(14.x以下)
unicorn['port'] = 8088
# 14.x 及其以上
puma['port'] = 8088

重启应用

gitlab-ctl reconfigure
gitlab-ctl restart

还有问题就查看端口是否被占用,或是内存是否不足

成功访问

最后终于成功访问 GitLab 页面

image-20230915210129983

查看 root 用户密码,登录之后尽量更改密码

cat /etc/gitlab/initial_root_password

image-20230915210304181

创建项目

image-20230915210720634

添加 SSH

image-20230915210834219

最后使用两种方式克隆项目,进行开发即可

image-20230915211248955

CentOS

CentOS 7.6

依赖配置

sudo yum install -y curl policycoreutils-python openssh-server perl

系统防火墙中打开 HTTPHTTPS SSH 访问 (可选,不设置则只能从本地网络访问 )

sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

安装 Postfix 以发送电子邮件通知 (可选)

sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix

其他配置基本类似,这里不再赘述

Codeup 平台

平台官网:云效代码管理 Codeup_代码托管_企业级代码管理平台-阿里云 (aliyun.com)

阿里云-云效 Codeup 是一款企业代码托管平台,支持在线编写和在线 web IDE,非常适合大型企业及小型团队编写进行代码托管

创建代码库

首先我们注册成功之后会进入控制台,我们点击添加库创建代码库

image-20230915181428618

配置 SSH

下面我们主要是使用 SSH(RSA) 的方式讲解如何管理代码库

查看密钥

cat ~/.ssh/id_rsa.pub

可以查看到密钥即可跳过第二步

生成密钥

ssh-keygen -t rsa -C "<注释内容>"

复制密钥(winodws)

cat ~/.ssh/id_rsa.pub | clip

设置平台公钥

SSH 公钥配置

配置页面:个人设置 (aliyun.com)

image-20230915190648682

之后我们就可以连接 SSH 操作远程仓库了

image-20230915193452570

多密钥配置

编辑 ~/.ssh/config

# Codeup 示例用户1
HostName codeup.aliyun.comPreferredAuthentications publickeyIdentityFile ~/.ssh/id_ed25519# Codeup 示例用户2,设置别名 codeup-user-2
Host codeup-user-2
HostName codeup.aliyun.comPreferredAuthentications publickeyIdentityFile ~/.ssh/codeup_user_2_ed25519# GitLab 平台
HostName gitlab.comPreferredAuthentications publickeyIdentityFile ~/.ssh/gitlab_ed25519

按照上述配置,使用SSH协议访问时,SSH 客户端会使用文件指定的密钥进行认证,实现访问不同平台或同一平台的不同账号使用本地不同的 SSH 密钥进行认证。

  • 访问 Codeup ,由于 HostName 一致,使用别名进行区分使用不同的密钥。
  • 访问 GitLab,根据 HostName 进行区分使用不同的密钥。
# 访问 Codeup,将使用 ~/.ssh/id_ed25519.pub 密钥
git clone git@codeup.aliyun.com:example/repo.com# 以 codeup-user-2 别名访问 Codeup 时,将使用 ~/.ssh/codeup_user_2_ed25519 密钥 
git clone git@codeup-user-2:example/repo.com# 访问 GitLab 平台,将使用 ~/.ssh/gitlab_ed25519 密钥
git clone git@gitlab.com:example/repo.com

部署密钥(可选)

开启企业白名单

网址:安全设置 · Codeup (aliyun.com)

image-20230915190059109

新建密钥,然后粘贴公钥

注意:此公钥不可与上面的 SSH 公钥相同

image-20230915190146044

参考文章

搭建GitLab私服详细步骤_git私服_晴空๓的博客-CSDN博客

Git学习笔记之搭建私服-腾讯云开发者社区-腾讯云 (tencent.com)

Ubuntu 18.04搭建GitLab私服_gitlab 服务器搭建 ubuntu18_沙漠中的独行者的博客-CSDN博客

linux中安装Gitlab服务器后登录报错502解决办法(图文结合)_青山孤客的博客-CSDN博客

gitlab-ce-10.0.2版本升级到15.4.2 - 掘金 (juejin.cn)

本文由博客一文多发平台 OpenWrite 发布!

相关文章:

华为云云耀云服务器L实例评测|Git 私服搭建指南

前言 本文为华为云云耀云服务器L实例测评文章&#xff0c;测评内容是 云耀云服务器L实例 Git 私有服务器搭建指南 系统配置&#xff1a;2核2G 3M Ubuntu 20.04 我们平时在使用代码托管服务的时候&#xff0c;可能某些代码托管平台对成员有限制&#xff0c;或是由于内容原因会对…...

Linux下的Swap内存

目录 一、Swap简介二、Swap内存查看三、Swap内存释放1、关闭swap2、查看关闭进度2、开启swap 一、Swap简介 swap space 是磁盘上的一块区域&#xff0c;可以是一个分区&#xff0c;也可以是一个文件。所以具体的实现可以是 swap分区 也可以是 swap文件。 当系统物理内存吃紧时…...

Unity中程序集dll

一&#xff1a;前言 一个程序集由一个或多个文件组成&#xff0c;通常为扩展名.exe和.dll的文件称为程序集&#xff0c;.exe是静态的程序集&#xff0c;可以在.net下直接运行加载&#xff0c;因为exe中有一个main函数(入口函数&#xff09;&#xff0c;.dll是动态链接库&#…...

识典百科取代快懂百科,如何在识典百科创建词条?

我们一个营销项目里面有四个百科词条的创建&#xff0c;在执行过程中遇见了快懂百科升级&#xff0c;创建词条请前往识典百科&#xff0c;看这个意思字节跳动是要把快懂百科升级整合到识典百科了。 快懂百科升级整合进入识典百科 近年来&#xff0c;字节跳动动作不断&#xff0…...

入门python

[NOIP2006 普及组] 明明的随机数 题目描述 明明想在学校中请一些同学一起做一项问卷调查&#xff0c;为了实验的客观性&#xff0c;他先用计算机生成了 N N N 个 1 1 1 到 1000 1000 1000 之间的随机整数 ( N ≤ 100 ) (N\leq100) (N≤100)&#xff0c;对于其中重复的数字…...

基于vue的黑马前端项目小兔鲜

目录 项目学习 初始化项目 建立项目 引入elementplus elementPlus主题设置 配置axios 路由 引入静态资源 自动导入scss变量 Layout页 组件结构快速搭建 字体图标渲染 一级导航渲染 吸顶导航交互实现 Pinia优化重复请求 Home页 分类实现 banner轮播图 …...

细节决定成败!jdbc的List<?> qryList4Sql(String sql)报错-标志符过长

问题产生背景&#xff1a; 在写sql时&#xff0c;想着简单直接就偷懒了&#xff0c;没有看清细节 操作步骤跟发现问题&#xff1a; 1. sql语句的执行选用的是jdbc提供的List<?> qryList4Sql(String sql) 方法 2&#xff0c;这是我的sql语句(简化处理) String sql "…...

ChatGLM Pytorch从0编写Transformer算法

预备工作 # !pip install http://download.pytorch.org/whl/cu80/torch-0.3.0.post4-cp36-cp36m-linux_x86_64.whl numpy matplotlib spacy torchtext seaborn import numpy as np import torch import torch.nn as nn import torch.nn.functional as F import math, copy, tim…...

9.18算法

机器人重物1126 注意编号是方块的&#xff0c;而不是格点的 及如果为n*m的矩阵&#xff0c;需要开(n1)*(m1)的矩阵 //如果没有转向&#xff0c;就是走迷宫&#xff0c;结合记忆化&#xff0c;如果这个点之前走过就不走了 //又转向的话&#xff0c;就用一个变量记录当前转向&…...

【Spring Bean的生命周期】

文章目录 Spring Bean的生命周期实例化构造器实例化工厂方法实例化 属性赋值XML方式注解方式 初始化postProcessBeforeInitialization()和postProcessAfterInitialization()InitializingBean接口的afterPropertiesSet()方法通过Bean注解定义的初始化方法使用PostConstruct注解标…...

信息化发展49

软件设计 1 、软件设计是需求分析的延伸与拓展。需求分析阶段解决“做什么” 的问题&#xff0c;而软件设计阶段解决“怎么做” 的问题。同时&#xff0c; 它也是系统实施的基础&#xff0c; 为系统实施工作做好铺垫。合理的软件设计方案既可以保证系统的质量&#xff0c; 也可…...

linux常用命令(4):mkdir命令(创建目录)

文章目录 一、命令简介二、命令格式三、常用示例 一、命令简介 mkdir&#xff08;make directories&#xff09;创建目录。 若指定目录不存在则创建目录。若指定目录已存在&#xff0c;则会提示已存在而不继续创建。 touch与mkdir的区别? 很多人可能会把这个搞混淆&#xff…...

企业架构LNMP学习笔记58

开始学习Tomcat&#xff1a; 学习目标和内容&#xff1a; 1&#xff09;能够描述Tomcat的使用场景&#xff1b; 2&#xff09;能够简单描述Tomcat的工作原理&#xff1b; 3&#xff09;能够实现部署安装Tomcat&#xff1b; 4&#xff09;能够实现和配置Tomcat的Server服务…...

[JAVAee]SpringBoot配置文件

配置文件的介绍 配置文件当中记录了许多重要的配置信息,例如: 数据库的连接信息(用户的账户与密码)项目的启动端口第三方系统的调用密匙用于记录问题产生的日志 在spring框架中一些特定的框架会自动调用配置文件中的配置信息来运用. 配置文件中的属性也起到了类似全局变量的…...

复制远程连接到Linux使用VIM打开的内容到Windows

我们经常是使用SSH工具远程连接到Linux服务器上进行工作&#xff0c;有时候需要将Linux下使用VIM打开的文件内容复制到Windows上来&#xff0c;默认情况下&#xff0c;可能会复制不了&#xff0c;因为VIM默认情况下是使用的set mousea的设置&#xff0c;它会让鼠标选中的时候进…...

左神算法之中级提升班(9)

目录 【案例1】 【题目描述】 【思路解析】 【代码实现】 【案例2】 【题目描述】 【思路解析 平凡解技巧 从业务中分析终止条件 重点】 【代码实现】 【案例3】 【题目描述】 【思路解析】 【案例4】 【题目描述】 【思路解析】 【代码实现】 【动态规划代码】…...

SmartNews 基于 Flink 的 Iceberg 实时数据湖实践

摘要&#xff1a;本文整理自 SmartNews 数据平台架构师 Apache Iceberg Contributor 戢清雨&#xff0c;在 Flink Forward Asia 2022 实时湖仓专场的分享。本篇内容主要分为五个部分&#xff1a; SmartNews 数据湖介绍基于 Icebergv1 格式的数据湖实践基于 Flink 实时更新的数据…...

websocket请求通过IteratorAggregate实现流式输出

对接国内讯飞星火模型&#xff0c;官方文档接口采用的是websocket跟国外chatgpt有些差异。 虽然官网给出一个简单demo通过while(true)&#xff0c;websocket的receive()可以实现逐条接受并输出给前端&#xff0c;但是通用和灵活度不高。不能兼容现有项目框架的流式输出。故模仿…...

《C和指针》笔记28:可变参数和stdarg宏

可变参数列表可以通过宏来实现&#xff0c;这些宏定义于stdarg.h头文件&#xff0c;它是标准库的一部分。这个头文件声明了一个类型va_list和三个宏——va_start、va_arg和va_end 。我们可以声明一个类型为va_list的变量&#xff0c;与这几个宏配合使用&#xff0c;访问参数的值…...

Matlab论文插图绘制模板第114期—带图形标记的图

之前的文章中&#xff0c;分享了Matlab带线标记的图&#xff1a; 带阴影标记的图&#xff1a; 带箭头标记的图&#xff1a; 进一步&#xff0c;分享一下带图形标记的图&#xff0c;先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数据代码』已上传资源群中&…...

Python:用于有效对象管理的单例模式

1. 写在前面 在本文中&#xff0c;我们将介绍一种常用的软件设计模式 —— 单例模式。 通过示例&#xff0c;演示单例创建&#xff0c;并确保该实例在整个应用程序生命周期中保持一致。同时探讨它在 Python 中的目的、益处和实际应用。 关键点&#xff1a; 1、单例模式只有…...

【TCP】滑动窗口、流量控制 以及拥塞控制

滑动窗口、流量控制 以及拥塞控制 1. 滑动窗口&#xff08;效率机制&#xff09;2. 流量控制&#xff08;安全机制&#xff09;3. 拥塞控制&#xff08;安全机制&#xff09; 1. 滑动窗口&#xff08;效率机制&#xff09; TCP 使用 确认应答 策略&#xff0c;对每一个发送的数…...

Xilinx FPGA管脚约束语法规则(UCF和XDC文件)

文章目录 1. ISE环境&#xff08;UCF文件&#xff09;2. Vivado环境&#xff08;XDC文件&#xff09; 本文介绍ISE和Vivado管脚约束的语句使用&#xff0c;仅仅是管脚和电平状态指定&#xff0c;不包括时钟约束等其他语法。 ISE使用UCF文件格式&#xff0c;Vivado使用XDC文件&…...

服务网格和CI/CD集成:讨论服务网格在持续集成和持续交付中的应用。

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…...

代码随想录训练营第56天|583.两个字符串的删除操作,72.编辑距离

代码随想录训练营第56天|583.两个字符串的删除操作&#xff0c;72.编辑距离 583.两个字符串的删除操作文章思路代码 72.编辑距离文章思路代码 总结 583.两个字符串的删除操作 文章 代码随想录|0583.两个字符串的删除操作 思路 如果不按照编辑距离考虑的话&#xff0c;只需要…...

【JDK 8-Lambda】3.1 Java高级核心玩转 JDK8 Lambda 表达式

一、 什么是函数式编程 &#xff1f; 二、 什么是lambda表达式&#xff1f; 1. 先看两个示例 A.【创建线程】 B.【数组排序-降序】 2. lambda表达式特性 A. 使用场景(前提): B. 语法 (params) -> expression C. 参数列表 D. 方法体 F. 好处 一、 什么是函数式编…...

【C#】XML的基础知识以及读取XML文件

最近在学读取文件 目录 介绍特点结构XML的语法规则XML 命名规则 C#操作XML新建读取第一种第二种第三种 读取属性 介绍 XML (可扩展标记语言&#xff0c;eXtensible Markup Language) 是一种标记语言&#xff0c;它被设计用来传输和存储数据。 特点 可扩展性&#xff1a;由于…...

Immutable.js简介

引子 看一段大家熟悉的代码 const state {str: wwming,obj: {y: 1},arr: [1, 2, 3] } const newState stateconsole.log(newState state) // truenewState和state是相等的 原因&#xff1a; 由于js的对象和数组都是引用类型。所以newState的state实际上是指向于同一块内存…...

C语言进阶教程(位操作和进制数的表示)

文章目录 前言一、左移和右移二、清除对应的位为0和设置对应的位为11.设置对应的位为12.清除对应的位为0 三、进制数的表示四、& ^ | ~总结 前言 本篇文章给大家讲解一下C语言中的位操作&#xff0c;在嵌入式中位操作是经常需要使用的&#xff0c;那么下面就让我们来学习一…...

Loguru:功能强大、简单易用的Python日志库

文章目录 Loguru:Python的日志库安装 Loguru基本用法配置 Loguruadd() 语句remove() 语句设置日志文件保留日志的等级设置控制台日志显示等级Loguru:Python的日志库 Loguru 是一个功能强大、简单易用的日志库,可以让 Python 的日志记录变得更加轻松。它提供了丰富的功能和配…...

常州网站建设公司方案/网站推广方式

使用 .NET4 中的Task优化线程池【.NET4 多核并行】 阅读本篇前&#xff0c;读者需对.NET4 System.Threading.Tasks 以及 Task Schedulers 有一定的了解。如果不是很了解&#xff0c;请查阅以下相关信息&#xff1a; Task: http://msdn.microsoft.com/en-us/library/system.thre…...

iis怎么让添加的网站没有端口/chatgpt网站

前言 Nuget是ASP .NET Gallery的一员&#xff0c;是免费、开源的包管理工具&#xff0c;专注于在.Net / .Net Core应用开发过程中第三方组件库的管理&#xff0c;相对于传统单纯的dll引用要方便、科学得多。其中nuget.org是最著名的Nuget公开库&#xff0c;但是企业内部开发的&…...

网络公司制作网站/百度搜索指数排名

CPU CPU 是计算机的大脑&#xff0c;它主要和内存进行交互&#xff0c;从内存中提取指令并执行它。 一个CPU 的执行周期是从内存中提取第一条指令、解码并决定它的类型和操作数&#xff0c;执行&#xff0c;然后再提取、解码执行后续的指令。重复该循环直到程序运行完毕。 每…...

房屋装修网/北京seo推广

正如预期的一样&#xff0c;网络犯罪分子会利用Apple最新发表的iPhone 5s消息&#xff0c;几乎在苹果的新产品发表会同时&#xff0c;这个网络钓鱼&#xff08;Phishing&#xff09;信件开始流传。此次&#xff0c;趋势科技病毒防治中心 Trend Labs更深入发现&#xff0c;黑客利…...

soho外贸网站建设/最近在线直播免费观看

第一步&#xff1a;下载MongoDB软件包 下载地址&#xff1a;http://www.mongodb.org/downloads&#xff0c;下载Windows 32-bit的软件包即可 第二步&#xff1a;解压下载好的软件包&#xff0c;到D盘&#xff0c;最好不要建在C盘&#xff0c;以防重装系统带来的麻烦&#xff0c…...

vs2010网站制作教程/排行榜哪个网站最好

这里写目录标题1. 相关符号2. 基本知识 【同时行动博弈&#xff0c;或标准博弈】2.1 定义2.2 策略博弈表示2.3 最优反应策略2.3.1 最优反应策略定义3. 策略型博弈案例3.1 案例一3.2 案例二3.3 案例三3.4 案例四3.5 案例五3.6 案例六3.7 案例七3.8 案例八3.9 案例九参考1. 相关符…...