跳转至

如何部署 gogs 极简git服务器

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

创建时间: 2023.08.16 23:12:07

更新时间: 2023.08.16 23:18:45

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

安装必要工具

安装git和wget

Bash
sudo dnf install git wget

安装mysql

Bash
sudo dnf install mysql mysql-server

配置mysql

提示

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

初始化mysql

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

Bash
# 格式:mysqladmin -u用户名 -p旧密码 password 新密码 
mysqladmin -u root -p password 123456

配置mysql中的gogs用户

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

Bash
mysql -u root -p
然后新增gogs mysql帐户并授权
SQL
1
2
3
create user 'gogs' identified by '654321';
grant all privileges on gogs.* to 'gogs';
flush privileges;

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

添加用户mygit

Bash
sudo adduser mygit
更改mgit的密码
Bash
sudo passwd mygit

下载安装初始化mygit

下载解压gogs包

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

Bash
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

配置gogs的mysql

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

Bash
cd /home/mygit/gogs/scripts/       # 切换目录至脚本文件夹
mysql -u root -p < mysql.sql       # 创建gogs数据库
现在,执行如下命令即可访问gogs提供的git服务了
Bash
/home/mygit/gogs/gogs web -p 3000  # 默认端口3000,可指定端口
页面地址为${YourIP}:3000注意非本机访问需要在防火墙中放行此端口。首次访问gogs页面会进行简单的配置即可(后期也可以在配置文件更改)



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

gogs自定义配置

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

Bash
vim /home/mygit/gogs/custom/conf/app.ini
具体参数解析直接参考官方文档即可,此处不赘述。

gogs服务化

添加服务配置文件

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

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

编辑服务配置文件

Properties
[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

服务使用

Bash
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  # 关闭开机自启动
启动服务后,查看服务状态如下

参考

  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