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版本设置为简体中文后的页面效果:
再来看下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 ,
把安装包传到服务器上面,解压,解压后的文件夹就叫gogs,然后进入文件夹。执行命令
./gogs web
然后,就没有然后了。非常简单!为了让其在后台运行,我们可以使用nohup:
nohup ./gogs web &
来看一下启动日志:
可以看到gogs默认的运行端口为3000,我们来通过浏览器访问一下:
可以看到进入了一个使用前的配置页面,不过都是中文,就很简单了,数据库我们使用轻量级的sqllite:
应用基本设置,根据实际情况即可(注意系统用户要权限大些,这里暂时使用root,建议创建专门的gogs用户):
端口,域名和日志路径的配置:
配置一下邮箱服务,注意smtp地址要加端口号,邮箱来自要按照格式来写:
创建管理员信息(如果不创建,第一个用户默认就是管理员):
配置完成后点击安装,这样就可以了,由于我们设置了域名,所以要自己配置host,端口号写了80,不是默认的3000,因此要重启gogs,这样端口就能改过来,完成之后我们来访问一下:
现在安装完了!我们来登录,使用配置的管理员账号:
对于英文不好的人来说,页面实在太友好了,而且该有的功能一样不少:
我们来注册一个账号,试试邮箱功能:
邮箱的配置也十分顺利:
数据备份
gogs的备份命令是:
./gogs backup
我们在执行命令的目录就可以看到备份的数据:
加上参数 --target 表示指定备份在哪个目录,
数据恢复
数据恢复也很简单,首先恢复之前删除启动文件夹根目录下面的custom.bak文件(如果没有就不用管):
然后指定备份文件恢复:
./gogs restore --from=/data/gogs/backup/gogs-backup-20190712225417.zip
修改首页
我们进入首页,是一个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 ,纯中文,一看就懂!