• Soft-Serve小巧强大-轻量级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

    公钥、私钥生成

    使用 git bash 窗口

    ssh-keygen  -t  rsa
    
    • 1

    自定义存放目录 F:\temp\id_rsa_leifh
    在这里插入图片描述
    得到如下文件公钥(后缀.pub),私钥
    在这里插入图片描述

    安装镜像

    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
    
    • 1
    • 2
    • 3
    • 4

    参数解释:

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

    --volume D://pddyjc_data/soft_server_data:/soft-serve
    
    • 1

    挂载本地文件目录到/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
    IdentityFile : 本机的私钥目录
    配好了,之后访问 soft-serve 就不用输入密钥了,(因为密钥一大串,谁看都得晕)
    在这里插入图片描述

    实操

    更多详情参阅官文

    创建用户及绑定公钥

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

    ssh -p 23231 localhost user create beatrice
    
    • 1

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

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

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

    创建仓库名为 icecream

    ssh -p 23231 localhost repo create icecream
    
    • 1

    添加合作者 beatrice

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

    之后就是 git 基本操作

    clone

    git clone ssh://localhost:23231/icecream
    
    • 1

    添加 remote

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

    。。。。。。。。

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

    总结

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

  • 相关阅读:
    关于 HTML 的一切:初学者指南
    QT:工业软件开发的首选“
    03.OpenWrt-系统固件烧录
    vr虚拟现实游戏世界介绍|数字文化展览|VR元宇宙文旅
    【自然语言处理(NLP)】基于注意力机制的英文新闻标题生成
    linux基础IO
    mysqlclient在django启动时报错: Did you install mysqlclient?
    微信小程序的双向数据绑定和vue的哪里不一样?下拉刷新的方式代码示例
    Unity DOTS学习 前置知识(一)
    VR虚拟现实:VR技术如何进行原型制作
  • 原文地址:https://blog.csdn.net/ShayneLee8/article/details/132998476