源码湾 源码湾

零依赖自建 Git 服务 Gogs:双平台单文件 93MB,SQLite 免配置数据库,推拉仓库开箱即用

源码湾
1小时前发布
资源信息 Windows / Linux 双平台,SQLite 开箱即用。
版本
v0.14.3
授权
MIT
体积
79.05 MB
语言
Go
数据库
无
夸克网盘 无提取码 下载

今日下载 0 累计下载 0 还剩 10 个

零依赖自建 Git 服务 Gogs:双平台单文件 93MB,SQLite 免配置数据库,推拉仓库开箱即用

不少小团队的合作方式还停留在「压缩包发来发去」:改一份代码要靠文件名带 v2、v3、最终版区分,谁动过哪一行全靠口头说。想上专业的代码托管,主流平台要么按人头收费,要么把私有仓库的数量和协作人数卡在免费额度上;直接把代码传到别人的服务器上,很多公司因为合规要求又根本不允许。其实这个问题的解法很朴素——自己找台内网机器或低配服务器,跑一个轻量的 Git 服务,数据完全握在自己手里。

Gogs 就是冲着这个需求来的:用 Go 语言写的自建 Git 服务,整个服务就一个可执行文件。Windows 侧实测 gogs.exe 93.2MB、Linux 侧 92.3MB,依赖只有系统里装好的 Git 本身。数据库支持 SQLite,我实测建库后的 gogs.db 只有 385KB,也就是说从解压到拥有一个能建仓库、能推代码的完整 Git 服务,全程不需要装 MySQL、不需要 Docker、不需要配置环境。它自带的 Web 界面覆盖了仓库浏览、提交历史、工单、Pull Request、Wiki 和管理后台,日常团队协作需要的都在。

发布前我把它在 Windows 11 和 WSL2 两个平台上各完整跑了一遍:启动、初始化管理员、建仓库、git clone、commit、push、页面访问全部成功,两侧产物结构和版本一致。文章里会给出真实测到的启动耗时、建仓耗时和推送耗时,也会讲清楚它不适合哪几类人,以及我实际踩到的一个推送被拒的坑。

它是什么 / 和别的自建方案差在哪

Gogs 是一个可以在自己机器上运行的 Git 托管服务:网页端管理仓库和用户,底层走标准 Git 协议,clone、push、pull 和操作普通仓库没有任何区别。它的核心卖点有三条:

  • 单文件。一个可执行文件加系统里的 Git 就是全部,实测 Windows 版 93.2MB。备份就是把数据目录打包,迁移就是拷走再启动。
  • 数据库可选 SQLite。个人或小团队直接用 SQLite,零安装零配置;人多之后也随时能切到 MySQL 或 PostgreSQL,配置文件改几行。
  • 资源占用低。我在 2 核 1.6GB 的低配环境里也跑得动。我的实测环境里,建仓库加首次提交用了 1.89 秒,git push 一次 1.44 秒,这对 1 核 1G 的最低配 VPS 来说完全够用。

和同类自建方案比:大型的一体化平台功能全但要跑一堆服务、吃 2G 以上内存,小机器装不动;轻量脚本级的方案只有最简单的 Web 预览,没有工单、PR 和用户体系。Gogs 卡在中间这个位置——功能覆盖团队协作的主干,同时保持单文件的部署成本。如果你后面想要更丰富的插件生态和持续集成,可以先用 Gogs 起步,数据都是标准 Git 裸仓库,迁移成本很低。

我的测试环境

  • Windows 11,gogs.exe 版本 0.14.3(93,170,688 字节),系统 Git。
  • WSL2 Debian,gogs Linux 版本 0.14.3(92,318,473 字节)。
  • 数据库两侧都用 SQLite。
  • 客户端操作用系统自带 git 命令行。

安装:Windows

下载包里的压缩包解压,0.47 秒解完,得到 17 个文件:gogs.exe、LICENSE、两份 README 和 scripts 目录(systemd、Windows 服务等启动脚本都在里面)。

首次启动在解压目录执行:

./gogs.exe web

默认监听 3000 端口,浏览器打开会进入安装引导页。我实测首次启动到首页返回 200 只用了 0.42 秒。

安装页里把数据库类型选 SQLite3,仓库根目录、日志目录建议直接写绝对路径,再注册一个管理员账号,提交后就能用。想跳过引导页的话,直接在 custom/conf/app.ini 里写完整配置并把 INSTALL_LOCK 设为 true 也可以,两种方式我各走了一遍,结果一致。

跳过引导的话,配置文件里这几段是关键:

[database]
DB_TYPE = sqlite3
PATH = D:/gogs/data/gogs.db

[security]
INSTALL_LOCK = true

[repository]
SCRIPT_TYPE = sh
ROOT = D:/gogs/git-repo

安装:Linux

Linux 侧拿到 tar.gz 后三步:

tar -xzf gogs_linux_amd64.tar.gz
cd gogs
./gogs web

WSL2 实测启动到首页 200 耗时 1159 毫秒。生产环境建议用包里 scripts 目录自带的 systemd 服务文件托管,开机自启;注册管理员用自带的命令行:

./gogs admin create-user --name admin --password 你的密码 --admin --email admin@example.com

建仓库到推代码:4 步上手

  1. 登录后右上角新建仓库,填名字即可,我实测带 initial commit 的建仓耗时 1.89 秒。
  2. 本地 clone:git clone 指向服务地址的仓库 URL,实测 1.73 秒完成。
  3. 改文件后 commit,然后 git push,实测推送 1.44 秒,日志显示 HEAD -> master 成功。
  4. 网页上刷新仓库页,提交历史、代码浏览、README 渲染全部就位。

私仓权限是它做得细的地方:未登录访问私有仓库直接返回 404,不是 403——对搜索引擎和陌生探测来说,这个仓库等于不存在。

实测数据

  • 解压耗时(Windows):0.47 秒,17 个文件
  • 可执行文件体积:Windows 93.2MB / Linux 92.3MB
  • 首次启动到首页 200:Windows 0.42 秒 / WSL2 1.16 秒
  • 建仓库(含 initial commit):1.89 秒
  • git clone:1.73 秒;git push:1.44 秒
  • SQLite 建库后体积:385,024 字节(两侧完全一致)
  • 页面访问:首页 / 探索 / 仓库页 / 提交历史 / 工单 / 设置全部 200
  • 截图过程 0 个 4xx/5xx 响应、0 个 JS 报错

界面长什么样

Gogs 发现页仓库列表

仓库主页与 README 渲染

提交历史

代码浏览与文件树

管理后台配置

手机端仓库页

界面是经典的深色顶栏 + 白底内容区布局,信息密度高但不花哨,操作路径都符合 Git 托管工具的通用习惯。手机端排版正常,仓库页在 390 宽的屏幕上代码块没有横向溢出。

一个真实的坑:push 全部被拒绝

第一次配完仓库我 push 时被拒,报错指向钩子脚本。排查后发现是 Windows 配置里 SCRIPT_TYPE 的锅:它必须写 sh(走 Git 自带的 bash 执行钩子),我照着直觉写了 windows,结果 Gogs 生成的钩子第一行变成一个不存在的解释器路径,所有推送直接失败。把这一项改回 sh、重新保存设置后推送立刻正常。这个坑的根源是钩子脚本要靠 Git 自带的 bash 来跑,而不是 Windows 的 cmd。如果你在 Windows 上遇到 push 秒拒,先检查这一项。

顺带一个次一级的坑:INSTALL_LOCK 这种开关必须和完整配置一起写,只写一个开关会导致启动时数据库类型识别失败。配置文件要一次写全。

上线 / 部署建议

  • 小团队内网:一台常开机器跑 gogs web,数据目录定期打包备份即可。
  • 公网 VPS:用 systemd 托管 + Nginx 反代 3000 端口,建议把注册功能关掉或开管理员审批,避免被陌生人占用资源。
  • 备份很简单:停服务后打包 data 目录、git-repo 目录和 custom 目录三处,恢复就是解压回原路径再启动。

这几类人适合,这几类不适合

适合:想在自己服务器上放私有仓库的小团队;公司内网需要合规自托管的环境;给低配 VPS / 树莓派找轻量 Git 服务的个人开发者;教学或实验室里需要学生各自提交代码的场景。

不适合:需要内置 CI/CD 流水线的团队(它不含持续集成,要自己外挂);重度依赖插件生态和第三方应用的团队;多人协作超过几百人、需要精细权限矩阵的组织,这类建议直接上更重的平台。

常见问题

源码获取

本次整理的 Windows 与 Linux 双平台包已上传到网盘:

下载后建议先转存到自己的网盘账号,防止分享链接后续失效。

实测说明

本文截图全部来自本站实测环境(源码湾 yuanmawan.com),实测版本 Gogs v0.14.3,许可证 MIT。

© 版权声明
THE END
喜欢就支持一下吧
点赞 0 分享 收藏
评论 抢沙发
OωO
取消