分类
碎碎念

CentOS 7 安装 Gogs

关于 Gogs

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

安装 Go 语言

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

yum install -y epel
yum install -y go

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

安装 Gogs

安装好了 Go 语言后,我们就可以开始安装 Gogs。
Gogs 分二进制和源码安装(官网还包含其它安装方式),这里推荐大家从官网下载源码进行编译安装。

二进制安装

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

源码安装

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

下载 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。

发表回复

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

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据