CentOS 7 安装 Gogs

关于 Gogs

Gogs 是由 无闻 Unknwon 开发的一款简易 Git 远程服务,Gogs 相对 GitLab 来说有着系统资源占用极小(官网表示一个树莓派就可以运行),简单上手,快速部署,支持多语言(标配简体中文)等等。对于小型企业、初创团队来说,个人觉得 Gogs 完全可以可以胜任。

安装 Gogs

二进制安装

二进制安装官方网站中有详细的安装方法,具体请移步官网了解。
https://gogs.io/docs/installation/install_from_binary

源码安装

官方的源码安装方法(简体中文)有几个地方没有正确说明,具体请切换到英文版查看。
https://gogs.io/docs/installation/install_from_source

安装 Go 语言

我们可以通过 Golang 的源码进行安装,也可以通过 Yum 进行安装,因为在国内某些不明原因,有条件的话建议使用源码安装。

yum install -y epel
yum install -y go

通过上面两条命令就已经完成了 Go 语言的安装,可以通过输入 go version 查看安装的版本,Gogs 的源码安装要求 Go 语言版本大于等于 1.6,而 epel 仓库的 Go 语言版本一般都高于这个版本,所以我们可以继续编译 Gogs。

下载 Gogs 源码

下载 Gogs 源码之前,建议先给 Gogs 创建一个专用的账户,可以随大流使用 git 这个账户名,不过现在 ssh 暴力破解中除了 root 账户,还有人加入了 git 这个账户,所以建议开启 ssh 的公钥登录,并且关闭密码登录。
通过 ssh 以 root 账户登录终端,然后输入 adduser git 创建一个名为 git 的账户,创建完成后输入 su git 切换到 git 这个账户,你也可以在 root 编译好 gogs 二进制文件。
如果你是直接通过终端的方式进行创建账户,可能需要在命令前面输入 sudo 以避免权限不足。

adduser git
su git

接下来按照官网的教程,或者直接 git clone https://github.com/gogs/gogs.git 获取源码

cd ~
go get -u github.com/gogs/gogs
cd ~/go/src/github.com/gogs/gogs/

使用 go 获取源码的话是看不到下载进度,网速较慢的话可以改用 git 获取源码,也可以通过下载工具在 GitHub 上面预先下载源码再进行编译。

编译 Gogs

源码下载后,只需要切换到源码目录,输入 go build 进行编译,编译完成后,会在项目目录中生成 gogs 二进制文件,这个时候可以直接输入 ./gogs web 进行测试。

2018/06/24 14:13:20 [ WARN] Custom config '/home/git/go/src/github.com/gogs/gogs/custom/conf/app.ini' not found, ignore this if you're running first time
2018/06/24 14:13:20 [TRACE] Custom path: /home/git/go/src/github.com/gogs/gogs/custom
2018/06/24 14:13:20 [TRACE] Log path: /home/git/go/src/github.com/gogs/gogs/log
2018/06/24 14:13:20 [TRACE] Log Mode: Console (Trace)
2018/06/24 14:13:20 [ INFO] Gogs 0.11.56.0613
2018/06/24 14:13:20 [ INFO] Cache Service Enabled
2018/06/24 14:13:20 [ INFO] Session Service Enabled
2018/06/24 14:13:20 [ INFO] Run Mode: Development
2018/06/24 14:13:20 [ INFO] Listen: http://0.0.0.0:3000

在防火墙中添加 3000 端口,然后使用浏览器打开可以看到安装提示则表示 gogs 编译正常。

安装 Gogs

使用浏览器打开 http://Your Gogs server IP:3000/,按照提示选择数据库类型以及一些配置信息,然后点击「安装」,没有异常的话会直接跳转到 Gogs 主界面,这样我们就安装好了。

配置 Gogs 服务

在源码文件夹下面的 scripts/systemd 有一个 gogs.service 服务配置文件,先对他进行修改然后在 cp 到 /etc/systemd/system/ 目录。
需要修改的内容 gogs.service 有具体描述,也可以直接查阅官网的常见问题。
https://gogs.io/docs/intro/faqs
复制或移动后,还需要授权运行权限,否者 systemctl 会报错。

vim /home/git/go/src/github.com/gogs/gogs/scripts/systemd/gogs.service
cp /home/git/go/src/github.com/gogs/gogs/scripts/systemd/gogs.service /etc/systemd/system/gogs.service
chmod +x /etc/systemd/system/gogs.service
systemctl start gogs

结束

到这里,Gogs 就配置完成,配置难度远低于 GitLab,并且运行所需的内存占用也远小于 GitLab。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.