CentOS 安装 Gogs

选择一款极易搭建的自助 Git 服务:https://gogs.io/

image.pngimage.png

1、包管理安装

这里选择最简包管理安装方式,但是受网速限制,安装可能需要半个小时左右。

我是直接在root用户下安装的,没有新建git用户。自我感觉没必要。

sudo wget -O /etc/yum.repos.d/gogs.repo https://dl.packager.io/srv/gogs/gogs/main/installer/el/7.repo
sudo yum install gogs

第一条命令,只拿取安装文件下载地址,第二条命令中途会需要两次确认(y),安装部分依赖。即可安装成功。

 

2、安装mysql

然后需要安装mysql 和 nginx。nginx不是必须的,只是用来做IP地址转发的,我不需要。mysql 的安装我已通过其他方式安装成功。

Gogs 要求安装 MySQL、PostgreSQL、SQLite3 其中一个,作为数据存储库。

 

3、开放防火墙的端口

gogs端口默认是3000

firewall-cmd --zone=public --add-port=3000/tcp --permanent

firewall-cmd --reload

 

4、启动gogs

查看gogs服务运行状态 systemctl status gogs.service

查看gogs-web服务运行状态systemctl status gogs-web.service

设置服务开机启动 systemctl enable gogs.service

设置服务开机启动 systemctl enable gogs-web.service

启动gogs: /opt/gogs/gogs web

因为这种安装方式默认安装在了这个位置,与其他安装方式有所不同。

 

5、开机启动

修改/etc/rc.d/rc.local文件,在最后一行添加以下内容:

sleep 1m
#睡1分钟,在执行下面,避免依赖还没启动。
su - root -c 'nohup /opt/gogs/gogs web > /opt/gogs/gogs_web.log 2>&1 &'

Linux系列的系统中,/etc/rc.d/rc.local文件是用来设置开机自启动的命令或脚本的。

但在CentOS7中,/etc/rc.d/rc.local默认没有执行权限,需要执行以下代码赋予该文件执行权限后才能启用开机自启动功能:

chmod +x /etc/rc.d/rc.local

解释:

因为/etc/rc.d/rc.local中的命令不会等待其他服务全部启动后再运行,而是在机器启动过程中并行运行,如果你设置的启动程序依赖其他的服务,可能会导致启动失败。所以Centos7中默认禁用了该文件的执行权限,并推荐使用systemcd进行自启动。

其他sleep命令:

sleep 1 # 睡眠1秒

sleep 1s # 睡眠1秒

sleep 1m # 睡眠1分

sleep 1h # 睡眠1小时

测试可以开机启动成功。

 

6、配置mysql

打开地址 http://192.168.1.22:3000 进入安装页面。

image.png

可以看到需要先配置数据库信息。然后进入mysql数据库,创建一个gogs数据库,并新增一个用户gogs,我暂时不需要,还是给予root的权限。

image.png

 

7、完成初始配置

image.png

image.png

这里域名就是安装gogs的本地IP地址。

image.png

配置一下管理员账号。

 

8、开始使用吧

image.png

最好退出当前管理员,重新注册一个用户。避免和管理员用户混用。

 

9、开放至公网

使用端口转发, 更改gogs设置。另外记得:

1、开启注册验证

2、部分代码加私密

我暂时不需要开启公网使用,以后再说。