使用kratos+gorm搭建的Git代码托管平台
kratos 参考文档:https://go-kratos.dev/
gorm 参考文档:https://gorm.io/zh_CN/docs/
- 安装 cli 工具
go install github.com/go-kratos/kratos/cmd/kratos/v2@latest
- 初始项目
kratos new kratos-gorm-git
- 运行
kratos run
# 用户模块
# 创建 user.proto
kratos proto add api/git/user.proto
# 创建 PB
kratos proto client api/git/user.proto
# 生成 Service
kratos proto server api/git/user.proto t internal/service
# 仓库模块
# 创建 repo.proto
kratos proto add api/git/repo.proto
# 创建 PB
kratos proto client api/git/repo.proto
# 生成 Service
kratos proto server api/git/repo.proto t internal/service
# config init pb
kratos proto client internal/conf/conf.proto
go get github.com/asim/git-http-backend
- 仓库管理
- 仓库列表
- 新增仓库
- 修改仓库
- 删除仓库
- 仓库授权
- 用户管理
- 登录
- GIT服务
- 新建仓库
- git-http-backend
- 鉴权
- 初始化空的存储仓库
git init --bare /root/git-test/hello.git
2.生成ssh密钥
ssh-keygen -t rsa -C "[email protected]"
- 将客户端生成的公钥复制到服务器端
# 公钥文件地址
cat ~/.ssh/id_rsa.pub
# 服务端的配置文件路径
vi ~/.ssh/authorized_keys
- 操作远程仓库
# clone
git clone [email protected]:/root/git-test/hello.git
# 添加远程仓库
git remote add origin [email protected]:/root/git-test/hello.git
# 推送本地代码到远程仓库
git push -u origin master
- 使用git守护进程
git daemon --export-all --verbose --base-path=. --export-all --port=9091 --enable=receive-pack
- 使用http-backend
- demo地址: git clone http://127.0.0.1:8000/git/up-zero/up-git.git