Gogs
Go语言开发的Git服务器
https://gogs.io/
依赖软件
本次安装使用CentOS7
yum库
访问阿里镜像站https://opsx.alibaba.com/mirror,找到centos,点击右边“帮助”
下载之前,可以移除原有repo文件
找到对应CentOS对应版本的repo文件下载
wget没安装需安装,curl默认自带
进入虚拟机
使用ens37的IP在Xshell上操作
[root@CentOS7 ~] # yum repolist
-
[root@CentOS7 ~] # yum clean all
-
[root@CentOS7 ~] # yum repolist
-
[root@centos7 ~]# yum install git mariadb-server
安装gogs文件
- 安装完毕后,安装gogs文件,可直接在官网下载,选择相应的版本https://git-scm.com/downloads
- 将文件传到Linux上
需将app.ini配置文件和gogs文件都添加进来
- 这种服务不推荐使用root运行,需创建新用户(后面有操作)
启动mariadb
设置开机启动 enable
[root@centos7 ~]# systemctl enable mariadb.service
启动mariadb,3306
[root@centos7 ~]# systemctl start mariadb
本地3306可以,*表示绑定本地任意地址
- 查看mysql是否可以使用
[root@centos7 ~]# mysql
查看所有的数据库
show databases;
注意后面有;
分号
mysql是系统库,需要有权限才可以看,test自带的测试库
exit 退出
配置mysql数据库
配置mysql,必须先启动mysql服务才可以使用
安全安装
必须启动mysql 3306才可以使用
[root@centos7 ~]# mysql_secure_installation
-
Set root password? [Y/n]
是否需要设置密码,Y
-
Remove anonymous users? [Y/n]
是否需要移除匿名,Y
-
Disallow root login remotely? [Y/n]
是否拒绝远程登录,n
n 表示以后允许root远程登录
-
Remove test database and access to it? [Y/n]
是否需要移除test库,Y
-
Reload privilege tables now? [Y/n]
是否需要刷新权限,Y
再次使用mysql
发现已经不能用了,因为刚才对root用户设置了密码,而且不允许直接这样访问
数据库密码登录
- 安全安装后,需使用此命令才可以访问mysql
[root@centos7 ~]# mysql -u root -p
- -u指user,-p指password
- 注意:命令里的root指的是数据库的root权限
MariaDB [(none)]> show databases;
查看所有数据库,tese库已移除
安装Gogs服务
Gogs服务以git用户运行
1. 添加git用户
[root@CentOS7 ~]# useradd git
2. 默认家目录
[root@CentOS7 ~]# cd /home/git/
3.copy文件到git用户
[root@CentOS7 ~]# cp app.ini gogs_0.11.86_linux_amd64.tar.gz /home/git
- 将刚才上传的
app.ini
和gogs
文件copy到git用户里
4.切换到git用户解压Gogs
后下载
- 如果之前没有提前下载gogs文件,可使用以下操作
1. 下载gogs安装程序
下载gogs安装程序gogs0.11.86_amd64.tar.gz,上传到Centos解压,生产goga目录,里面就有gogs所有文件
2. 安装到git用户下
[root@centos7 git]# wget https://dl.gogs.io/0.11.86/gogs_0.11.86_linux_amd64.tar.gz
3. 切换为git用户进行解压
[git@centos7 ~]$ tar xf gogs_0.11.86_linux_amd64.tar.gz
初始化数据库
<
输出重定向,创建gogs数据库
[git@centos7 gogs]$ mysql -u root -p < scripts/mysql.sql
注意:这里的password是git的root用户密码
7. 进入到gogs数据库
[git@centos7 gogs]$ mysql -u root -p
MariaDB [(none)]> show databases;
MariaDB [(none)]> use gogs;
8. 查看gogs数据库的表
MariaDB [gogs]> show tables;
9. 设定小权限用户
为gogs库创建mysql用户gogs,并授权
- 在数据库使用时,不要使用数据库的roo同用户
- 授权所有用户,对
gogs.*
下所有的表
MariaDB [gogs]> grant all on gogs.* to 'gogs'@'%' identified by 'gogs';
&
mysql的通配符,表示任意字符'gogs'@'%'
表示任意ip地址可访问'gogs'
授权给此用户identigied by 'gogs'
表示密码设置为gogs
执行完后需执行flush privileges;
,否则不会生效
- 设置完后可进入gogs查看数据库,里面已经没有mysql
配置
参考官方文档https://gogs.io/docs/advanced/configuration_cheat_sheet.html
概述
服务器(server)
ROOT_URL = %(PROTOCOL)s://%(DOAMAIN)s:%(HTTP_PORT)s/
仓库 (repository)
数据库 (database)
安全 (security)
配置文件
- 在gogs目录下创建custom/conf文件夹并将app.ini配置文件copy进去
- 一定要是当前用户,不能是root用户
- 注:如果刚才没有添加此文件,需手动将写好的文件直接拖入
- 格式如下:
APP_NAME = toyyr
RUN_USER = git
RUN_MODE = dev
[server]
HTTP_ADDR = 0.0.0.0
HTTP_PORT = 3000
[database]
DB_TYPE = mysql
HOST = 127.0.0.1:3306
NAME = gogs
USER = gogs
PASSWD = gogs
[security]
INSTALL_LOCK = false
SECRET_KEY = toyyr.(python).GIT:gogs
启动gogs
- 使用gogs命令启动服务
[git@CentOS7 gogs]$ ./gogs web
在gogs目录下建一个log目录,否则某些gogs版本可能启动不了
- 这种启动不方便,可切换到root用户
设置开机启动
cp /home/git/gogs/scripts/systemd/gogs.service /lib/systemd/system/
systemctl enable gogs # 开机启动
systemctl start gogs # 当前启动
配置文件里明确了git用户
- 服务启动
首次登陆
使用$ ip a
查看ens37,id
在虚拟机内打开网页,输入http://ip:3000/install
如:http://192.168.18.100:3000/install
- 进入后开始首次运行安装
- 域名要一致
- 勾选Disable Gravatar Service
禁用Gravatar服务
首次登陆需先注册
第一个注册的将为管理员,可以进行管理,一般管理员不要创建仓库
使用
创建第二个账户,同上,为普通用户,创建后登陆
- 创建仓库
从命令行创建一个新的仓库
touch READNE.md
git init
git add README.md
git commit -m "first commit"
git remote add origin http://192.168.18.100:3000/my/test.git
git push -u origin master