在Linux服务器(CentOS 8)上搭建gogs的git服务。


gogs是一款极易搭建的自助git服务,使用go语言编写,相比于GitLab这种厚重型的git服务,它能够运行在配置很低的Linux主机上(甚至支持树莓派)。对于git服务需求不是很高的个人或者小型团队,它的功能是足够的,十分推荐跑在VPS主机上,下面是具体的搭建过程,仅供参考。

1 安装必要工具

1.1 安装git和wget

1
sudo dnf install git wget

1.2 安装mysql

1
sudo dnf install mysql mysql-server

2 配置mysql

注意:如果无需mysql服务(如使用更加轻量化的sqlite),则此步骤可以直接跳过,直接看第3步即可。

2.1 初始化mysql

更改root用户密码,初始为空:

1
2
# 格式:mysqladmin -u用户名 -p旧密码 password 新密码 
mysqladmin -uroot -p password 123456

2.2 配置mysql中的gogs用户

首先使用上一步更改的密码登录mysql:

1
mysql -u root -p

然后新增gogs mysql帐户并授权

1
2
3
create user 'gogs' identified by '654321';
grant all privileges on gogs.* to 'gogs';
flush privileges;

3 系统新增用于git服务的用户

添加用户mysgit:

1
sudo adduser mygit

更改mgit的密码:

1
sudo passwd mygit

4 下载安装初始化mygit

4.1 下载解压gogs包

访问官网或者项目GitHub的release页面即可获取最新包,注意不要选错了设备类型。

1
2
3
4
5
6
7
# 切换用户
su mygit
cd ~

# 下载并解压包(以64位的Linux主机为例)
wget https://dl.gogs.io/0.12.3/gogs_0.12.3_linux_amd64.tar.gz
tar -zxvf gogs.tar.gz

4.2 配置gogs的mysql

直接执行包里面自带的脚本即可:

1
2
cd /home/mygit/gogs/scripts/       # 切换目录至脚本文件夹
mysql -u root -p < mysql.sql       # 创建gogs数据库

现在,执行如下命令即可访问gogs提供的git服务了:

1
/home/mygit/gogs/gogs web -p 3000  # 默认端口3000,可指定端口

页面地址为${YourIP}:3000注意非本机访问需要在防火墙中放行此端口。首次访问gogs页面会进行简单的配置即可(后期也可以在配置文件更改):

gogs-db

gogs-app

gogs-optional

然后点击立即安装,稍等片刻就可以进入gogs的世界啦!

gogs-home

4.3 gogs自定义配置

在上述安装位置情况下,直接编辑如下配置文件即可:

1
vim /home/mygit/gogs/custom/conf/app.ini

具体参数解析直接参考官方文档即可,此处不赘述。

5 gogs服务化

5.1 添加服务配置文件

为了提高gogs服务的稳定性,建议利用systemd编写服务管理脚本:

1
vim /etc/systemd/system/gogs.service

5.2 编辑服务配置文件

参考配置:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
[Unit]
Description=gogs git service
After=network.target

[Service]
ExecStart=/bin/bash -c " sudo su - mygit -c ' /home/mygit/gogs/gogs web ' "
Type=simple
Restart=always

[Install]
WantedBy=multi-user.target

5.3 服务的使用

1
2
3
4
5
6
sudo systemctl start gogs.service    # 启动服务
sudo systemctl restart gogs.service  # 重启服务
sudo systemctl status gogs.service   # 查看服务状态
sudo systemctl stop gogs.service     # 停止服务
sudo systemctl enable gogs.service   # 允许开机自启动
sudo systemctl disable gogs.service  # 关闭开机自启动

启动服务后,查看服务状态如下:

gogs-service

参考资料

  1. gogs官方文档: https://gogs.io/docs
  2. gogs项目地址: https://github.com/gogs/gogs
  3. gogs配置文件手册: https://github.com/gogs/docs/blob/master/zh-CN/advanced/configuration_cheat_sheet.md
  4. Gogs安装教程: https://blog.csdn.net/yueaini10000/article/details/84986757
  5. systemd编写服务管理脚本: https://www.cnblogs.com/sparkdev/p/8521812.html