Gogs
Gogs 是一款极易搭建的自助Git服务,使用Go语言开发,只要Go语言支持的平台它都支持,包括Linux、Mac OS X、Windows以及ARM平台。Gogs对系统硬件要求极低,你甚至可以在树莓派上搭建它。
项目地址:https://github.com/gogs/gogs
docker 安装部署gogs
拉取最新版 gogs 镜像
docker pull gogs/gogs
创建数据目录
mkdir -p /data/gogs
docker 启动 gogs 镜像
docker run -d --rm \
--network host \
-v /data/gogs:/data \
--name=gogs \
gogs/gogs
解释下:-d
后台运行--rm
停止容器后删除容器文件--network host
完全共享主机网络,就不再需要映射端口了--name=gogs
指定容器名称-v /data/gogs:/data
映射数据目录到宿主机 /data/gogs 目录,为了重启容器后数据不丢失
配置 nginx 反向代理转发
gogs 默认监听 3000 端口
http 配置块中增加如下配置
# gogs. 开头的三级域名访问, 转发到 gogs git 服务
server {
listen 80;
server_name gogs.masikkk.com gogs.madaimeng.com gogs.devgou.com;
location / {
proxy_pass http://localhost:3000;
}
}
然后在 阿里云 域名解析增加 gogs.masikkk.com 的解析配置
首次安装配置
如下图,选择 sqlite3 数据库,域名改为自己的域名,应用 url 也改为自己的,其他无需任何改动,点击立即安装。

gogs安装配置
注册账号并登陆
6、然后注册一个账号,并登陆。
首次登陆后界面如下

gogs初次界面
创建仓库
创建一个仓库,创建好之后会显示 http 地址和 ssh 地址,如下图

http地址

ssh地址
推送本地项目到gogs
创建远程仓库别名
git remote add origin http://gogs.masikkk.com/masikkk/user.git
如果当前项目已有其他 git 远程仓库,删除或新建一个远程
推送到远程
git push --set-upstream origin master
413 Request Entity Too Large
第一次推送时报 413 Request Entity Too Large
错误
$ git push --set-upstream origin master
Counting objects: 20106, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (6914/6914), done.
error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large
fatal: The remote end hung up unexpectedly
Writing objects: 100% (20106/20106), 2.99 MiB | 488.00 KiB/s, done.
Total 20106 (delta 8376), reused 19371 (delta 7740)
fatal: The remote end hung up unexpectedly
Everything up-to-date
原因是 http body 大小超过了 nginx 的 client_max_body_size
设置,修改 nginx 配置
client_max_body_size 0;
禁用 body size 检查即可。
http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size
页面信息
location:
protocol
: host
: hostname
: origin
: pathname
: href
: document:
referrer
: navigator:
platform
: userAgent
: