搭建git服务gogs中遇到的问题
1.git的服务端有以下选择
git stack
bonobogitserver
gitbit
gitolite
gitlab
gitea
gogs
比较:
git服务器 | 安装环境 | 优点 | 缺点 |
---|---|---|---|
Gitblit | windows | 易安装 | 一些git常用的功能不全 |
gitolite | windows/linux | 可以做到分支级别的权限管理,资源消耗低 | 轻量 但是配置使用文件完成,有学习成本 |
GitLab | linux | 功能强大,可以管理大型项目 | 资源消耗大 |
gogs/gitea | windows/linux | 开源 轻量 易安装 跨平台 资源需求小 | 不适合大团队 功能少 |
2.Gogs介绍
官网地址:https://gogs.io
文档地址:https://gogs.io/docs
Gogs,全称为Go Git Service,是一个基于 Go 语言开发的Git服务。它提供了一个类似于GitHub的界面和功能,允许您在自己的服务器上搭建私有的Git仓库和代码托管平台(类似gitlab)。
以下是Gogs的一些主要特点:
易安装
您除了可以根据操作系统平台通过 二进制运行,还可以通过 Docker 或 Vagrant,以及 包管理 安装。
跨平台
任何 Go 语言 支持的平台都可以运行 Gogs,包括 Windows、Mac、Linux 以及 ARM。挑一个您喜欢的就行!
轻量级
一个廉价的树莓派的配置足以满足 Gogs 的最低系统硬件要求。最大程度上节省您的服务器资源!
开源化
所有的代码都开源在 GitHub 上,赶快加入我们来共同发展这个伟大的项目!还等什么?成为贡献者吧!
总之,Gogs作为git的服务端,够用,简单。
3. gogs搭建
gogs搭建总体上说比较简单:
官方文档
https://github.com/gogs/gogs/blob/main/README_ZH.md
可以通过以下 6 种方式来安装 Gogs:
二进制安装
源码安装
包管理安装
采用 Docker 部署
通过 Vagrant 安装
通过基于 Kubernetes 的 Helm Charts
作者选择centos7.5包管理安装
1.安装mysql
gogs需要依赖数据库,本文采用mysql,所以先安装mysql.
mysql安装掠过,要注意的是,mysql要配置远程访问
使用获取到的密码进入数据库
mysql -uroot -p
修改数据库密码
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘输入修改后的密码’;
创建gogs数据库
刷新权限
flush privileges;
2.安装gogs
2.1、安装Git和Wget
yum install -y git
yum install -y wget
2.2、安装Gogs
进入git用户目录,下载Gogs安装包
cd /home/git
wget https://dl.gogs.io/0.13.0/gogs_0.13.0_linux_amd64.tar.gz
解压:
tar -zxvf gogs_0.13.0_linux_amd64.tar.gz
运行Gogs服务
cd /home/git/gogs
./gogs web >/dev/null 2>&1 &
访问Web页面
在浏览器中输入:http://ip:3000
4.其中遇到问题:
4.1 初始化配置时,提示无法识别 ‘git’ 命令
如果是这个错误,就是没有安装git
使用:yum install -y git 安装git
4.2 Access denied for user ‘root‘@‘localhost‘ (using password: YES)
创建新的mysql用户,在客户端上可以登录,但是在命令行无法登录,在http://ip:3000/install页面也无法提交,提示以上错误。
最后重启服务器之后可以登录了。
4.3 数据库设置不正确:Error 1071 (42000): Specified key was too long; max key length is 767 bytes
这个错误是数据库表字段长度之和不能超过42000.
第一要检查表类型是否是 InnoDB
ENGINE=InnoDB
① innodb存储引擎,多列索引的长度限制如下:
每个列的长度不能大于767 bytes;所有组成索引列的长度和不能大于3072 bytes
② myisam存储引擎,多列索引长度限制如下:
每个列的长度不能大于1000 bytes,所有组成索引列的长度和不能大于1000 bytes
第二要配置 InnoDB
④ 修改innodb_large_prefix,innodb_file_format参数(root用户下)
mysql> set global innodb_large_prefix=1;
mysql> set global innodb_file_format=BARRACUDA;
4.4 配置gogs
应用配置
进入/home/git/gogs/custom/conf/目录
修改app.ini配置文件,根据需求进行配置
修改第22行:
EXTERNAL_URL = http://localhost:3000/
将localhost修改为服务器ip
然后访问
http://42.193.9.223:3000/user/login
注册登录,创建仓库
以上是安装Git、Wget、MySQL和Gogs的步骤,请按照顺序进行操作。