此文介绍使用gogs搭建git代码服务器
- 下载二进制安装包
wget https://github.com/gogs/gogs/releases/download/v0.12.3/gogs_0.12.3_linux_amd64.zip
- 解压
unzip gogs_0.12.3_linux_amd64.zip & mv gogs/ /servers/
- 安装git
yum install git
服务端和客户端均需版本 >= 1.8.3 - 配置mysql数据库
CREATE USER 'gogs'@'%' IDENTIFIED BY '1qaz2wsx';
FLUSH PRIVILEGES
说明
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
- username:你将创建的用户名
- host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
- password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
- 新建数据库 gogs
CREATE DATABASE gogs CHARACTER SET utf8 COLLATE utf8_general_ci;
- 给gogs用户添加数据库gogs权限
GRANT ALL ON gogs.* TO 'gogs'@'%'
说明
GRANT privileges ON databasename.tablename TO 'username'@'host'
- privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL
- databasename:数据库名
- tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*
- 为gogs设置系统用户
添加系统用户git[root@localhost servers]#useradd git
为git设置密码[root@localhost servers]# passwd git
为git用户添加gogs目录权限[root@localhost servers]# chown -R git gogs/
切换到git用户,并启动gogs web服务注意一定要用git账户启动
[root@localhost servers]# su git
[root@localhost servers]# cd /servers/gogs/
启动gogs服务
[git@localhost gogs]$ ./gogs web
2020/10/12 13:48:30 [ WARN] Custom config "/servers/gogs/custom/conf/app.ini" not found. Ignore this warning if you're running for the first time
2020/10/12 13:48:30 [TRACE] Log mode: Console (Trace)
2020/10/12 13:48:30 [ INFO] Gogs 0.12.3
2020/10/12 13:48:30 [TRACE] Work directory: /servers/gogs
2020/10/12 13:48:30 [TRACE] Custom path: /servers/gogs/custom
2020/10/12 13:48:30 [TRACE] Custom config: /servers/gogs/custom/conf/app.ini
2020/10/12 13:48:30 [TRACE] Log path: /servers/gogs/log
2020/10/12 13:48:30 [TRACE] Build time: 2020-10-07 03:03:48 UTC
2020/10/12 13:48:30 [TRACE] Build commit: f0e3cd90f8d7695960eeef2e4e54b2e717302f6c
2020/10/12 13:48:30 [ INFO] Run mode: Development
2020/10/12 13:48:31 [ INFO] Listen on http://0.0.0.0:3000
- 浏览器访问 http://ip:3000/install
插播个问题,我这里centos开启的防火墙,查看防火墙状态
[git@localhost gogs]$ systemctl status firewalld
查看所有打开的端口:[git@localhost gogs]$ firewall-cmd --zone=public --list-ports
添加3000端口firewall-cmd --zone=public --add-port=3000/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
重新载入firewall-cmd --reload
然后就可以访问了,打开如下图所示
配置好以上信息之后,点击立即安装,gogs就搭建完成了
守护进程
安装完成gogs 现在有个问题,就是你如果关闭当前 shell,Gogs 服务也对应关闭了;修改配置 /servers/gogs/script/init/centos/gogs
[git@localhost gogs]$ vim scripts/init/centos/gogs
# Default values
NAME=gogs
GOGS_HOME=/servers/gogs
GOGS_PATH=${GOGS_HOME}/$NAME
GOGS_USER=git
SERVICENAME="Gogs"
LOCKFILE=/var/lock/subsys/gogs
LOGPATH=${GOGS_HOME}/log
LOGFILE=${LOGPATH}/gogs.log
RETVAL=0
我们需要确保以下两项配置是正确的:
- GOGS_HOME 指向你 Gogs 的目录,我这里是/servers/gogs
- GOGS_USER 指向你运行 Gogs 所用的用户,这个用户一定要存在且有相关权限,我这里是git
然后将该文件拷贝到系统目录,并为其增加相关权限
sudo cp /servers/gogs/scripts/init/centos/gogs /etc/init.d/
sudo chmod +x /etc/init.d/gogs
最后只需要运行以下命令就行了:
sudo service gogs start
sudo service gogs stop
sudo service gogs restart
然后就可以用git了
http://10.1.1.109:3000/