Git快速入门(07)比GitLab更好的选择-Gogs

时间:2024-03-19 12:08:19

Gitlab是企业git仓库最常用的私服,Gitlab是一个强大的git服务,基本功能和对手GitHub一样。 这是一个成熟的项目和并且在不断更新。安装过程也并不复杂,但是如果我们的目标是使用一个git代码托管服务,那么Gitlab相对来说也是有一些不足的:

1 Gitlab版本升级相对复杂一些,尤其是从较早的版本升级到最新版

2 很重!很重!有好几百兆大,启动时你可以看到到很多东西是在后台执行的。 例如 Sidekiq、Unicorn、Nginx、Ruby (包括 gems) 和 Gitlab本身。

3 如果选择自定义安装,就不简单了,有很多不确定因素,如果出了什么差错,要自己一个个排查

4 我们要的是版本控制服务,但是gitlab的功能不止如此,有很多其它功能,比如CI/CD等,而有了Jenkins,我们是很少会使用gitlab的做持续集成的造成了除了代码托管,其它功能几乎都没用

5 对中文的支持不是那么友好,当然高版本有所改进,但是也一般

6 gitlab本身运行最少需要4G以上的内存

等等

我们需要一个更加轻量级的,功能更加纯粹的,对中文支持非常好的,操作也更加简单的代码托管服务,Gogs是一个非常好的选择!

 

 

 

 

 

 

Gogs介绍

gogs官网地址:https://gogs.io  。Gogs 是一款极易搭建的自助 Git 服务。Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。Gogs这个项目的四位主要开发者都是中国人,该项目曾经蝉联 GitHub Go 语言 Trending 第一。

来看一下gogs与gitlab的对比,gitlab的大小是几百兆,gogs的二进制安装文件只有十几兆,而且gogs上面只有git托管功能,没有其它功能,很轻量级,至于汉化方面,来看下gitlab的10版本设置为简体中文后的页面效果:

Git快速入门(07)比GitLab更好的选择-Gogs

再来看下gogs的效果:

Git快速入门(07)比GitLab更好的选择-Gogs

很明显gogs在汉化方面更友好(中国人开发的嘛。。。)。

我们在gitlab的网站也能看到两个的对比:

https://about.gitlab.com/devops-tools/gogs-vs-gitlab.html

明显gitlab的功能强大,而gogs的特点是轻量级!

 

 

 

 

 

Gogs安装

我们使用二进制文件在Linux中安装,首先去官网下载二进制文件: https://gogs.io/docs/installation/install_from_binary  ,

Git快速入门(07)比GitLab更好的选择-Gogs

把安装包传到服务器上面,解压,解压后的文件夹就叫gogs,然后进入文件夹。执行命令 

./gogs web

然后,就没有然后了。非常简单!为了让其在后台运行,我们可以使用nohup:

nohup ./gogs web &

来看一下启动日志:

Git快速入门(07)比GitLab更好的选择-Gogs

可以看到gogs默认的运行端口为3000,我们来通过浏览器访问一下:

Git快速入门(07)比GitLab更好的选择-Gogs

可以看到进入了一个使用前的配置页面,不过都是中文,就很简单了,数据库我们使用轻量级的sqllite:

Git快速入门(07)比GitLab更好的选择-Gogs

应用基本设置,根据实际情况即可(注意系统用户要权限大些,这里暂时使用root,建议创建专门的gogs用户):

Git快速入门(07)比GitLab更好的选择-Gogs

端口,域名和日志路径的配置:

Git快速入门(07)比GitLab更好的选择-Gogs

配置一下邮箱服务,注意smtp地址要加端口号,邮箱来自要按照格式来写:

Git快速入门(07)比GitLab更好的选择-Gogs

创建管理员信息(如果不创建,第一个用户默认就是管理员):

Git快速入门(07)比GitLab更好的选择-Gogs

配置完成后点击安装,这样就可以了,由于我们设置了域名,所以要自己配置host,端口号写了80,不是默认的3000,因此要重启gogs,这样端口就能改过来,完成之后我们来访问一下:

Git快速入门(07)比GitLab更好的选择-Gogs

现在安装完了!我们来登录,使用配置的管理员账号:

Git快速入门(07)比GitLab更好的选择-Gogs

对于英文不好的人来说,页面实在太友好了,而且该有的功能一样不少:

Git快速入门(07)比GitLab更好的选择-Gogs

我们来注册一个账号,试试邮箱功能:

Git快速入门(07)比GitLab更好的选择-Gogs

邮箱的配置也十分顺利:

Git快速入门(07)比GitLab更好的选择-Gogs

 

 

 

 

 

数据备份

gogs的备份命令是:

./gogs backup

Git快速入门(07)比GitLab更好的选择-Gogs

我们在执行命令的目录就可以看到备份的数据:

Git快速入门(07)比GitLab更好的选择-Gogs

加上参数 --target 表示指定备份在哪个目录,

Git快速入门(07)比GitLab更好的选择-Gogs

 

 

 

 

 

 

 

数据恢复

数据恢复也很简单,首先恢复之前删除启动文件夹根目录下面的custom.bak文件(如果没有就不用管):

Git快速入门(07)比GitLab更好的选择-Gogs

然后指定备份文件恢复:

./gogs restore --from=/data/gogs/backup/gogs-backup-20190712225417.zip

Git快速入门(07)比GitLab更好的选择-Gogs

 

 

 

 

 

 

修改首页

我们进入首页,是一个gogs的宣传页面:

Git快速入门(07)比GitLab更好的选择-Gogs

这个首页是可以个性化修改的,首页内容属于仓库源码,首页修改不包括自定义头部和尾部内容。

首页源码位置 templates/home.tmpl

保留该文件的头部和尾部引用 注意保留:头:{{template “base/head” .}},尾:{{template “base/footer” .}}

编辑自定义首页中间部分 templates/home.tmpl

重启 Gogs

 

 

 

 

版本升级

首先将旧的安装文件夹重命名:

mv gogs gogs_old

然后下载新的gogs并解压,然后把旧的文件夹下面的custom、data 和 log 目录复制到新解压的目录中

$ cp -R gogs_old/custom gogs

$ cp -R gogs_old/data gogs

$ cp -R gogs_old/log gogs

然后启动,版本升级就完成了!

更多的使用技巧,可以参考官方文档:https://gogs.io/docs  ,纯中文,一看就懂!