文章目录
- 前言
- 一、Soft-Serve
- 官方解释:
- 我的要求
- 二、使用步骤
- 我的环境
- 公钥、私钥生成
- 安装镜像
- 参数解释:
- 配置
- config.yaml
- config
- 实操
- 创建用户及绑定公钥
- 创建代码仓库及添加合作者
- 之后就是 git 基本操作了
- 总结
前言
用过 Gitlab, 也挺好用。
遇到几个问题:
- Gitlab 很消耗服务器性能,个人电脑很吃不消, 一般安装在专门服务器。
- 想在自己的工作电脑搭一个 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 就好了。
没有界面操作, 命令经常忘记,我是把教程下载下来, 每次要建库、用户再打开查阅。