一直以来都想搭建自己的版本控制系统,虽然现在又Github、Gitee等热门的公共Git系统了,可有时候还是需要一个私有的Git系统来更方便的去管理、控制代码

这里我看了下开源的Git软件,大致有Gitlab、Gogs、Gitea等几款软件,Gitlab功能比较强大,但是个人使用就略显臃肿了,个人我还是倾向于使用比较轻量化的软件的,毕竟服务器的资源有限,能满足自己的需求就行了

Gitea是Gogs的一个分支,两款都是比较轻量化的软件,gogs之前搭建过了,这里选用Gitea再次搭建一个自己托管的Git版本控制中心。

docker安装

Gitea是支持使用docker安装的,所以安装的步骤和过程都很简单明了
1.创建gogs数据储存目录
mkdir -p /data/gogs

2.拉取最新版镜像
docker pull gitea/gitea:latest

3.运行docker容器

docker run -d --name=gitea -p 10022:22 -p 10080:3000 -v /data/gitea:/data gitea/gitea:latest
-d: 后台运行
--name: docker容器名称
-p: 端口映射,将容器端口22 映射到宿主机的 10080 端口
-v: 目录映射,将容器 /data 目录映射到宿主机的 /data/gitea 目录
gitea/gitea:latest: 使用的docker镜像

这样我们就是用docker安装好了一个Gitea服务,现在可以直接在浏览器使用10080端口来访问我们的Gitea服务了
记得防火墙开放 10080 端口
http://x.x.x.x:10080
gitea.png

初始化Gitea

安装完成后,点击右上角的登录,即可进入Gitea的初始化页面
官方文档:https://docs.gitea.io/zh-cn/install-with-docker/

nginx反向代理

使用ip+端口访问显然不是我们想要的方式,可以使用nginx反向代理,将域名转发到指定端口的服务即可
编辑nginx配置文件,添加如下配置,其中端口为你的gitea所提供的端口:

location / {
  proxy_pass http://127.0.0.1:10080/;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header REMOTE-HOST $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

资源占用

以下为gogs和gitea的系统资源占用情况
从左到右依次为应用名称、cpu占用、内存占用、内存百分比
2020-05-04T14:12:49.png

可以看出gogs是最省内存的,运行只占用内存35m左右
而gitea相比gogs内存占用比较多一点,运行占用内存133m左右
两款软件对比gitlab都属于轻量级软件,只需很轻量的配置就可以跑起来

至此我们自己托管的git服务就搭建完毕了 太开心.png
具体的一些高级配置可以参考官方文档~