此教程将教你如何在Android端搭建Gogs服务端(使用MySQL数据库)
原文已修改,此教程并不针对无基础的新手
0x00 前言
什么是Gogs
Gogs 是一款极易搭建的自助 Git 服务。
开发目的
Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
0x01 准备工作
① Termux
Termux是一款非常强大的终端模拟软件,拥有真实的Linux指令,并且有apt软件包管理程序,可以说没有桌面linux系统,它就是最好的替代品(当然我们这次在手机上,当然没有桌面linux系统)!
传送门:
Termux(CoolApk, v0.65)
Termux(Google Play, v0.73)
② Gogs二进制程序
核心部件,包括可执行二进制文件gogs,用于开启本地git服务。
传送门:
linux_armv5.zip(Github, v0.11.86),或者
1 | wget https://github.com/gogs/gogs/releases/download/v0.11.86/linux_armv5.zip |
③ Frp二进制程序 (可选)
可选部件,当你想公布你的git服务到互联网但由于NAT层导致无法端口映射时用到。
传送门
ARM32:frp_0.27.0_linux_arm.tar.gz(OfficialWebsite, v0.27.0),或者:
1 | wget http://diannaobos.iok.la:81/frp/frp-v0.27.0/frp_0.27.0_linux_arm.tar.gz |
ARM64:frp_0.27.0_linux_arm64.tar.gz(OfficialWebsite, v0.27.0),或者:
1 | wget http://diannaobos.iok.la:81/frp/frp-v0.27.0/frp_0.27.0_linux_arm64.tar.gz |
0x02 详细过程
Ⅰ. Termux环境配置
在Termux中:
1 | pkg install -y unstable-repo |
Ⅱ. 解压缩下载的文件
注意:如果你已在termux外部下载gogs(和frp)的压缩包的话,请使用
mv
指令将其移动到/data/data/com.termux/files/home/
(这个路径可以简写成英文波浪号”~”)
如果想从termux内部下载,请使用”准备工作”中的wget
指令下载gogs(和frp)
在Termux中:
解压Gogs:
1 | #解压缩 |
解压Frp:
1 | #解压缩 |
Ⅲ. MySQL Database(数据库)配置
注意:可能稍微有些难度,本人也是菜鸡
已经会mysql的大神请灵活变通
① 查看当前用户名:
在Termux中:
1 | neofetch |
得知我们当前用户名为u0_a284
② 启动本地MySQL服务
在Termux中:
1 | mysqld |
③ 添加当前账户并给予数据库操作权限 && 创建Gogs数据库
首次初始化MySQL服务器时会创建名字为root的账户
在Termux中:
1 | mysql -u root -p |
输入密码为:root
注:输入时不显示,输入完按回车就行
在MySQL控制台中添加我们从neofetch
指令中查询到的用户并授予数据库最高操作权限
1 | CREATE USER '用户'@'localhost' IDENTIFIED BY '密码'; # 创建用户 |
注:① 这样创建的用户只能从本地访问这个数据库(因为设定的localhost)
② 注意是否有单引号
③ 数据库名称要记住,之后要用
每次操作出现Query OK, x rows affected (x.xxxx sec)
就代表该操作成功!
Ⅳ. 安装Gogs
① 创建一个文件夹用来存放gogs里的用户创建的repo
在Termux中:
1 | cd ~ |
② 启动Gogs Web Server端
在Termux中:
1 | ./gogs/gogs web |
③ 安装Gogs!
浏览器进入http://localhost:3000
请仔细按照图中标识的项目设置
配置完成后点击安装
稍等片刻安装,完成后出现登录界面
至此,Gogs服务端(本地)已安装完成
Ⅴ. 使用Frp将gogs公布到互联网上
由于我本人没有Frp服务器,所以用的Frp官网上免费的frp服务器,token请从中文官网加群获取
如果你有自己的服务商,你可以使用你自己的讲真这不是广告,谁让我没钱2333
① 配置frpc.ini
使用nano
(或者其他)编辑文件frpc.ini
如何编辑,请看图。
② custom_domains
和subdomain
配置问题
二级域名有两种配置方式:
- 自定义一个以服务商域名为基础的域名,该域名会解析到服务商的主服务器。
- 直接定义二级域名。
可以通过访问frps dashboard查看其他人的配置来确定服务商指定的方式(默认xxx.xxx.xxx:7500查看),或直接由服务商告知
默认用户名和密码都是admin
例如:
该服务商采用的第一种方法定义二级域名
1 | #subdomain = |
该服务商采用的第二种方法定义二级域名
1 | subdomain = gogs |
③ 启动Frp客户端
在Termux中:
1 | ./frpc -c frpc.ini |
直接访问定义的二级域名即可http://gogs.frpzj.kskxs.com:8081/
注意端口,在上上图能看到,提供第一种方式的服务商提供的端口为
8081
,第二种方式的服务商提供的端口为7000
0x03 终止服务:
终止frp客户端快捷键:
CTRL + C
终止gogs web端快捷键:CTRL + C
终止mysql 数据库指令:killall -SIGTERM mysqld
或者直接硬核清理Termux进程
0x04 常见问题:
dial tcp: lookup xxx.xxx.xxx on [::1]:53: read udp [::1]:xxxxx->[::1]:53: read: connection refused
解决:dns解析问题,在frpc.ini的common项中添加:
1 | dns_server = 1.1.1.1 |
欢迎在评论区补充其他问题:)
教程终于肝地差不多了呢
这是我第一次正式写博客,有点激动!!
如果你觉得对你有用的话,也可以考虑捐赠一波(你在想peach)
参考资料: