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

news2024/11/27 3:48:32

文章目录

  • 前言
  • 一、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.coloradmin.cn/o/1023471.html

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

相关文章

固定资产管理系统的作用有哪些

固定资产管理系统的功效原因很多。  它帮助企业更好地管理其固定资金,包括设备的采购、维护、更新和损坏。根据系统管理计划,企业可以更有效地节约成本,提高效率,降低风险。  资产管理系统可以实现企业资产共享与合作应用。在…

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

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

北邮22级信通院数电:Verilog-FPGA(2)modelsim北邮信通专属下载、破解教程

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 1.下载 2.解压打开 3.modelsim初安装 4.…

控制器连接Profinet转Modbus RTU网关与精密数显温控仪通讯

Profinet是一种用于工业自动化领域的通信协议,而Modbus RTU则是一种常见的串行通信协议。由于生产现场中的控制器与精密数显温控仪通常采用不同的通信协议,因此需要借助Profinet转Modbus RTU网关(XD-MDPN100)完成通信的桥接与转换…

Markdown(MD)——Typora Markdown安装教程(2023九月亲测可用!!!)

目录 一、简介 1.Markdown简介 2.Markdown特点 3.Typora简介 二、安装教程 1.下载安装包 2.解压到文件夹 3.安装 4.破解 ​编辑5.激活 三、Markdown常用语法 1.常用语法 2.用于编辑LaTex公式 四、其他编辑器 一、简介 1.Markdown简介 Markdown 是一种轻量级标记语…

Java多线程篇(3)——线程池

文章目录 线程池ThreadPoolExecutor源码分析1、如何提交任务2、如何执行任务3、如何停止过期的非核心线程4、如何使用拒绝策略 ScheduledThreadPoolExecutor源码分析 线程池 快速过一遍基础知识 7大参数 corePoolSize : 核心线程数 maximumPoolSize: 最…

Docsify介绍—md文件直接生成网页的工具

Markdown是一种轻量级标记语言,它使用易读易写的纯文本格式,用于编写文档,如README,wiki,博客文章等。Markdown语言最初由约翰格鲁伯(John Gruber)和亚伦斯沃茨(Aaron Swartz&#x…

ssm637教材管理系统+vue

项目介绍 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化、信息化建设迈进。以前学校对于教材信息的管理和控制,采用人工登记的方式保存相关数据,这种以人力为主的管理模式已然落后。本…

YOLO系列

一、YOLOv1 Bbox使用开根号的原因: 小目标与大目标偏移相同尺度时,小目标检测效果差,那么公式中使用根号就会让小目标损失值更大了 V1网络的一些问题: 小目标检测效果差,当目标出现新配置也不行,目标定位…

红黑树插入的实现

红黑树: 1.概念: 红黑树的性质: 红黑树的插入操作: 其前面的插入和二叉搜索树的一模一样,只是后面需要判断是否满足红黑树的性质: 具体分为三种情况: 1.uncle节点存在且为红色的&#xff1a…

芯科蓝牙BG27开发笔记9-资料整理

SSV5中的例程 在ssv5中有少量开箱即用的例程,第一篇笔记就是从这里开始的: 然而,仅仅这些代码吗?其他例程代码在何处? Software Developer Docs - Silicon Labs 所有内容都可以在官网文档找到。 之前是从ssv5直接开…

Bard人工智能9月19日重大更新

1、巴德现在可以回复来自谷歌地图、航班、酒店和YouTube的实时信息,因此您可以在一个地方完成更多工作。 2、Bard 可能会与其他服务共享您的部分对话和其他相关信息,例如您的位置。这些服务可能会使用该信息进行改进,即使您以后删除了您的 Ba…

python基础语法(四)

感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒个人主页 🥸🥸🥸C语言 🐿️🐿️🐿️C语言例题 🐣🐓🏀python 这…

day50:QTday3,对话框补充、事件处理机制

一、完成文本编辑器的保存工作 widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QFontDialog> //字体对话框 #include<QFont> //字体类 #include<QMessageBox> //消息对话框 #…

springboot配置注入增强(三)自定义数据源/自定义解析方法

我们回忆下上一篇文章的内容&#xff0c;属性注入的关键节点是PropertySourcesPlaceholderConfigurer的BeanFactory后置处理器org.springframework.context.support.PropertySourcesPlaceholderConfigurer#postProcessBeanFactory&#xff0c;只有在执行这个方法前设置到Enviro…

竞赛 基于深度学习的中文情感分类 - 卷积神经网络 情感分类 情感分析 情感识别 评论情感分类

文章目录 1 前言2 情感文本分类2.1 参考论文2.2 输入层2.3 第一层卷积层&#xff1a;2.4 池化层&#xff1a;2.5 全连接softmax层&#xff1a;2.6 训练方案 3 实现3.1 sentence部分3.2 filters部分3.3 featuremaps部分3.4 1max部分3.5 concat1max部分3.6 关键代码 4 实现效果4.…

平均精度(AP)

什么是平均精度(AP) 平均精度 (AP)并不是精度 (P)的平均值。 平均精度 (AP) 是按类别计算的。 mAP&#xff08;mean average precision&#xff09;是一个平均值&#xff0c;常用作目标检测中的检测精度指标mAP 指标通过对于一个平均目标来检测任务中多个目标所对应不同 AP&a…

9.19号作业

2> 完成文本编辑器的保存工作 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QFontDialog> #include <QFont> #include <QMessageBox> #include <QDebug> #include <QColorDialog> #include <QColor&g…

Centos安装显卡

1、安装基础环境 yum -y install epel-release yum -y install gcc kernel-devel kernel-headers 2.对应内核版本 yum info kernel-devel kernel-headers Cat /proc/version 3、yum安装版本不对应。则去官网手动下载 离线安装对应的rpm&#xff1a; https://pkgs.org/dow…

电脑桌面的复选框如何取消

电脑桌面图标的复选框如何取消 1. 概述2. 去掉图标的复选框方法结束语 1. 概述 当你拿到新的电脑开机后&#xff0c;发现桌面上软件应用的图标左上角有个小框&#xff0c;每次点击图标都会显示&#xff0c;并且点击图标时&#xff0c;小框还会打上√&#xff1b; 这个小框的…