Soft-Serve小巧强大-轻量级Git服务

文章目录

  • 前言
  • 一、Soft-Serve
    • 官方解释:
    • 我的要求
  • 二、使用步骤
    • 我的环境
    • 公钥、私钥生成
    • 安装镜像
      • 参数解释:
    • 配置
      • config.yaml
      • config
  • 实操
    • 创建用户及绑定公钥
    • 创建代码仓库及添加合作者
    • 之后就是 git 基本操作了
  • 总结


前言

用过 Gitlab, 也挺好用。
遇到几个问题:

  1. Gitlab 很消耗服务器性能,个人电脑很吃不消, 一般安装在专门服务器。
  2. 想在自己的工作电脑搭一个 git 服务, 以便局域网内几个人提交、合并代码足矣。

在这里插入图片描述

一、Soft-Serve

项目: https://github.com/charmbracelet/soft-serve

官方解释:

  • 一个美味的、可自托管的命令行 Git 服务器。🍦
  • 通过 SSH 轻松导航 TUI
  • 通过 SSH、HTTP 或 Git 协议克隆存储库
  • Git LFS 支持 HTTP 和 SSH 后端
  • 使用 SSH 管理存储库
  • 使用 SSH 按需创建存储库或git push
  • 使用可通过 SSH 访问的 UI 浏览存储库、文件和提交
  • 通过 SSH 打印文件,带或不带语法突出显示和行号
  • 轻松访问控制
  • 使用公钥进行 SSH 身份验证
  • 允许/禁止匿名访问
  • 使用 SSH 公钥添加协作者
  • 回购可以是公共的或私人的
  • 用户访问令牌

我的要求

能完成基本的git 操作

二、使用步骤

官方提供了 linux, macOS , windows ,docker

我的环境

windows
docker desktop

公钥、私钥生成

在此不累述

安装镜像

docker run --name=soft-serve -e SOFT_SERVE_INITIAL_ADMIN_KEYS=/soft-serve/ssh/id_rsa46.pub --volume D://pddyjc_data/soft_server_data:/soft-serve --publish 23231:23231 --publish 23232:23232 --publish 23233:23233 --publish 9418:9418 --restart unless-stopped charmcli/soft-serve:latest

参数解释:

SOFT_SERVE_INITIAL_ADMIN_KEYS :
配置管理员的公钥, 添加在这个的公钥,视为拥有所有权限的用户。 我肯定把我自己的公钥加进去了^ – ^

–volume D://pddyjc_data/soft_server_data:/soft-serve :
挂载本地文件目录到/soft-serve, soft-serve目录是应用默认数据目录,用本地目录挂载应该是为了方便在本地管理文件。

配置

config.yaml

位置: 在部署 soft-serve 的电脑

以上步骤如果成功的话会在 D://pddyjc_data/soft_server_data 生成一个配置文件 : config.yaml

有两项地方可以配置(不配置是否影响我的基本使用我不了解,没验证), 这个配置具体在哪步起作用我不是很清楚,(反正我先填了再说)

其它参数没改
在这里插入图片描述

config

位置: 在需要访问 soft-serve 的电脑
配置 ssh 的私钥
目录 C:\Users\Administrator.ssh 里面的 config
Host : 就是部署 soft-serve 的电脑IP
配好了,之后访问 soft-serve 就不用输入密钥了,(因为密钥一大串,谁看都得晕)
在这里插入图片描述

实操

更多详情参阅官文

创建用户及绑定公钥

创建用户 beatrice
localhost : 改成 soft-serve 的IP, 下同。

ssh -p 23231 localhost user create beatrice

给 beatrice 绑定公钥 AAAAB3Nz… (注! 这个公钥和上面配置在 config 的私钥是成双成对的)

ssh -p 23231 localhost user add-pubkey beatrice ssh-rsa AAAAB3Nz...

创建代码仓库及添加合作者

创建仓库名为 icecream

ssh -p 23231 localhost repo create icecream

添加合作者 beatrice

ssh -p 23231 localhost repo icecream add soft-serve beatrice

之后就是 git 基本操作了

clone

git clone ssh://localhost:23231/icecream

添加 remote

git remote add origin ssh://localhost:23231/icecream

等等。。。。。。。。

和以前的区别 就是 http 换成了 ssh

总结

安装比较简单, 初次运行docker 一直失败, 调了好久。好像是加上 SOFT_SERVE_INITIAL_ADMIN_KEYS 就好了。
没有界面操作, 命令经常忘记,我是把教程下载下来, 每次要建库、用户再打开查阅。

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

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

相关文章

十一、MySql的事务(上)

文章目录 一、引入(一)CURD不加控制,会有什么问题?(二)CURD满足什么属性,能解决上述问题? 二、什么是事务?三、事务的特性(一)原子性:…

数据库计算机三级等级考试--数据库技术相关知识点和笔记

数据库计算机三级等级考试–数据库技术 计算机三级等级考试笔记,是博主通过计算机三级数据库技术考试的相关笔记,此篇博客,不仅适合需要考计算机三级考试的各位考生,也适合在职场处理关于数据库的部分操作,个人认为算是一篇使用性…

视频监控管理平台/视频汇聚/视频云存储EasyCVR安全检查的相关问题及解决方法3.0

智能视频监控系统/视频云存储/集中存储/视频汇聚平台EasyCVR具备视频融合汇聚能力,作为安防视频监控综合管理平台,它支持多协议接入、多格式视频流分发,视频监控综合管理平台EasyCVR支持海量视频汇聚管理,可应用在多样化的场景上&…

python 学习笔记(6)—— Flask 、MySql

目录 Flask 1、起步 2、渲染项目的首页 3、处理无参数的 GET 请求 4、处理有 query 参数的 GET 请求 6、处理 params 参数的 get 请求 6、处理 application/json 类型请求体的 POST 请求 7、根据参数渲染模板页面 8、上传文件 数据库操作(mysql&#xff0…

「聊设计模式」之中介者模式(Mediator)

🏆本文收录于《聊设计模式》专栏,专门攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎持续关注&&收藏&&订阅! 前言 在软件开发过程中,我们通常会遇到一个问题&…

(二)随机变量的数字特征:探索概率分布的关键指标

文章目录 🍋1. 随机变量的数学期望🍋1.1 离散型随机变量的数学期望🍋1.2 连续型随机变量的数学期望 🍋2. 随机变量函数的数学期望🍋2.1 一维随机变量函数的数学期望🍋2.2 二维随机变量函数的数学期望 &…

Hive 数据仓库介绍

目录 ​编辑 一、Hive 概述 1.1 Hive产生的原因 1.2 Hive是什么? 1.3 Hive 特点 1.4 Hive生态链关系 二、Hive架构 2.1 架构图 2.2 架构组件说明 2.2.1 Interface 2.2.1.1 CLI 2.2.1.2 JDBC/ODBC 2.2.1.3 WebUI 2.2.2 MetaData 2.2.3 MetaStore 2.2…

巨人互动|Facebook海外户Facebook客户反馈分数

Facebook客户反馈分数是一项用于衡量用户对Facebook产品和服务满意度的指标。该指标被广泛应用于各种调研和评估活动,帮助Facebook了解用户对其平台和功能的意见和建议,并从中识别出改进的机会。 巨人互动|Facebook海外户&Facebook新闻提要的算法&am…

Python 文件写入操作

视频版教程 Python3零基础7天入门实战视频教程 w模式是写入,通过write方法写入内容。 # 打开文件 模式w写入,文件不存在,则自动创建 f open("D:/测试3.txt", "w", encoding"UTF-8")# write写入操作 内容写入…

浅谈C++|运算符重载

重载原因 C 中的运算符重载是一种特性,允许程序员定义自定义类类型的运算符操作。通过运算符重载,可以对类对象执行类似于内置类型的操作,例如加法、减法、乘法等。 运算符重载通过定义特定的成员函数或非成员函数来实现。成员函数的运算符重…

PyG-GAT-Cora(在Cora数据集上应用GAT做节点分类)

文章目录 model.pymain.py参数设置运行图 model.py import torch.nn as nn from torch_geometric.nn import GATConv import torch.nn.functional as F class gat_cls(nn.Module):def __init__(self,in_dim,hid_dim,out_dim,dropout_size0.5):super(gat_cls,self).__init__()s…

java学习--day6(数组)

文章目录 day5作业今天的内容1.数组1.1开发中为啥要有数组1.2在Java中如何定义数组1.3对第二种声明方式进行赋值1.4对数组进行取值1.5二维数组【了解】1.6数组可以当成一个方法的参数【重点】1.7数组可以当成一个方法的返回值1.8数组在内存中如何分配的【了解】 2.数组方法循环…

PFEA111–20 PFEA111–20 人工智能如何颠覆石油和天然气行业

PFEA111–20 PFEA111–20 人工智能如何颠覆石油和天然气行业 人工智能(AI)和机器学习(ML)等新技术的到来正在改变几十年来行业的运营方式。这些技术正在带来革命性的变革,影响着整个行业。石油和天然气行业在其运营过程中面临着许多挑战,如未连接的环境…

在SpringBoot项目中整合SpringSession,基于Redis实现对Session的管理和事件监听

1、SpringSession简介 SpringSession是基于Spring框架的Session管理解决方案。它基于标准的Servlet容器API,提供了Session的分布式管理解决方案,支持把Session存储在多种场景下,比如内存、MongoDB、Redis等,并且能够快速集成到Spr…

Java21 LTS版本

一、前言 除了众所周知的 JEP 之外,Java 21 还有更多内容。首先请确认 java 版本: $ java -version openjdk version "21" 2023-09-19 OpenJDK Runtime Environment (build 2135-2513) OpenJDK 64-Bit Server VM (build 2135-2513, mixed mo…

activiti7的数据表和字段的解释

activiti7的数据表和字段的解释 activiti7版本有25张表,而activiti6有28张表,activiti5有27张表,绝大部分的表和字段的含义都是一样的,所以本次整理的activiti7数据表和字段的解释,也同样适用于activiti6和5。 1、总览…

pcl--第五节 点云表面法线估算

估算点云表面法线 * 表面法线是几何表面的重要属性,在许多领域(例如计算机图形应用程序)中大量使用,以应用正确的光源以产生阴影和其他视觉效果。 给定一个几何表面,通常很难将表面某个点的法线方向推断为垂直于该点…

CockroachDB集群部署

CockroachDB集群部署 1、CockroachDB简介 CockroachDB(有时简称为CRDB)是一个免费的、开源的分布式 SQL 数据库,它建立在一个事务性和强一致性的键 值存储之上。它由 PebbleDB(一个受 RocksDB/leveldb 启发的 K/B 存储库)支持,并使用 Raft 分布式共识…

TypeScript入门

目录 一:语言特性 二:TypeScript安装 NPM 安装 TypeScript 三:TypeScript基础语法 第一个 TypeScript 程序 四:TypeScript 保留关键字 空白和换行 TypeScript 区分大小写 TypeScript 注释 TypeScript 支持两种类型的注释 …

初识C语言——详细入门一(系统性学习day4)

目录 前言 一、C语言简单介绍、特点、基本构成 简单介绍: 特点: 基本构成: 二、认识C语言程序 标准格式: 简单C程序: 三、基本构成分类详细介绍 (1)关键字 (2&#xf…