设置 Git 用户

  1. 创建 Git 用户
adduser git
  1. /etc/sudoers 添加写权限
chmod +w /etc/sudoers
  1. 把 Git 用户加进 sudoers,并设置 sudo 的时候不用输入密码
git     ALL=(ALL)       NOPASSWD:ALL

搭建 Gogs

  1. 进入到 Git 用户的家目录并下载 Gogs 的进制包,最新版本的二进制包可以去官网查看。
cd /home/git && wget https://dl.gogs.io/0.12.3/gogs_0.12.3_linux_amd64.tar.gz
  1. 解压
tar -zxvf gogs_0.12.3_linux_amd64.tar.gz
  1. 进入到刚刚解压好的 gogs 目录,使用 Git 用户临时启动 Gogs 服务
cd gogs && sudo -u git ./gogs web
  1. 创建一个 Gogs 数据库
create database gogs default CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
  1. 创建一个只有本地可以连接的 gogs 用户,密码是 password注意将密码修改你自己的
create user 'gogs'@'127.0.0.1' identified by 'password';
  1. gogs 用户分配 gogs 数据库的所有权限
GRANT ALL PRIVILEGES on gogs.* to 'gogs'@'127.0.0.1';

这时候就可以通过服务器的 IP:3000 访问了 Gogs 的 Web 页面了,我用 Nginx 配了反向代理,所以直接访问 IP 即可。

在 Web 页面上配置好数据库信息仓库根目录运行系统用户等信息,点击立即安装即可。

关于管理员账号设置,可以这个页面中直接设置,也可以安装完成以后再去注册,Gogs 的规则是:第一个注册的用户就是管理员。

如下是我的配置:

image-20210812105425086

把 Gogs 作为服务运行并配置开机自启动

  1. 把 Gogs 官方提供的 gogs.service 模板复制到 /etc/systemd/system 目录下:
cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system
  1. 修改 gogs.service 模板,如果你是按照上面的步骤操作的则没有什么需要修改的。
  2. 重新加载 systemd:
systemctl daemon-reload
  1. 启动 Gogs 服务
systemctl start gogs
  1. 加入开机自启动
systemctl enable gogs