本文使用最新版本的宝塔面板、docker环境、Nginx用于反代、Debian 12
前言
为什么要自建git托管,众所周知在国内网络的环境的情况下,github已经不能正常的使用,有时候会出现断联的情况。国内的很多都有条条框框的限制,基于这个需求,为什么不自建属于自己的git托管。
首先我尝试了:gitea、gitlab、gogs 这三款软件,综合性能分析,日常使用 Gitea 能满足我的需求,内存占用也低,也轻量化。
Gitea简介
Gitea的首要目标是创建一个极易安装,运行非常快速,安装和使用体验良好的自建 Git 服务。我们采用Go作为后端语言,这使我们只要生成一个可执行程序即可。并且他还支持跨平台,支持 Linux, macOS 和 Windows 以及各种架构,除了x86,amd64,还包括 ARM 和 PowerPC。
官网文档地址:gitea DOCS
Gitea安装
首先在官网上找到 Docker Compose 的安装方式。
gitea rootless
和gitea
版本区别,前者是通过gitea内部的ssh进行管理,后者通过openSSH进行管理。
然后在宝塔上添加docker 项目模板。如果是自行构建的也可以把新建的docker-compose.yml
文件放在你想存放的目录下。
这里选择自行构建,先创建一个运行目录和docker-compose
mkdir -p gitea/{data,config}
cd gitea
vim docker-compose.yml
然后将以下内容粘贴到 docker-compose.yml
文件里面
version: "2"
services:
server:
image: gitea/gitea:1.20.5-rootless
restart: always
volumes:
- ./data:/var/lib/gitea
- ./config:/etc/gitea
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2222:2222"
赋予指定docker卷的用户/组,默认情况下,Docker中的Gitea将使用uid:1000 gid:1000。
sudo chown 1000:1000 config/ data/
然后进入刚刚创建的gitea的目录,检查目录下有没有docker-compose.yml
文件。确认存在就启动。
docker-compose up -d
: 拉起docker-compose所包含服务,并以守护进程方式运行docker-compose restart
: 重启docker-compose所有服务docker-compose down
: 关闭docker-compose所有服务docker-compose logs -f
: 查看运行日志
以上是不使用数据库,只使用SQlite3来运行,如果数据量不大情况下SQlite3完全可以胜任,如果是多人协作,那就选择数据库会更加好。
更多安装详情去官网文档就可以找到。
Gitea使用
git客户端以ssh的方式访问
创建客户端的密钥和公钥,然后在gitea的个人设置-SSH/GPG密钥下,添加公钥。
cd
mkdir -p .ssh
#生成密钥对
ssh-keygen -t rsa
#查看公钥
cat ~/.ssh/id_rsa.pub
测试仓库到客户端链接
这里我自定义了ssh的端口所以要带上端口进行测试
ssh -T git@106.199.x.x -p 222
---------------------------------
Hi there, jun! You've successfully authenticated with the key named git@xx.com, but Gitea does not provide shell access.
If this is unexpected, please log in with password and setup Gitea under another user.
这样看起来就验证成功了,我们来拉取一个git库试试。仓库的http/ssh的地址可以在仓库页面右上角找到。
git clone ssh://git@106.199.x.x:222/Jun/test.git
反代网站
站点填写你的内网域名和端口,绑定域名进行访问,根据需求是否开启SSL。
踩踩
作者的见解独到,每次读你的文章都能收获新的知识点。
感谢分享!
Gitea比Gitlab轻量多,不过我是需要runner这功能~
gita一样也有这个功能,插件也和github部分通用。可以了解一下