源码湾

Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

源码湾
10月15日发布
资源信息 解压即用,含完整源码与已跑通的成品包。
今天的游客额度(10 个)已经用完了。登录之后不限量,也不用再等第二天。
版本
v28.1.0
授权
MIT
体积
52.7 MB
语言
Go
今日额度已用完 登录后不限量下载 去登录

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

代码放 GitHub 上总有几个绕不开的问题:私有仓库免费额度有限、访问时快时慢、公司代码不想放别人的服务器上。自建 Git 服务这事我惦记很久了,一直没动手是因为 GitLab 太重——8G 内存起步,我这台小机器扛不住。

Gitea 就轻多了:一个 120MB 的 exe,双击就跑,自带前端、数据库用 SQLite、安装向导点几下就完成。5.8 万 Star 的老牌项目,MIT 协议,个人和小团队用完全免费。

我在 Windows 本地全程实测了一遍:从安装到建仓库、推代码、开工单、换主题、改品牌,截了 23 张图。先给结论:这可能是自建 Git 服务里「省心」和「够用」平衡得最好的一个;但它也有 4 个你要提前知道的短板,写在后面了。

Gitea 能干什么

一句话:把 GitHub 那套「仓库 + 协作」搬到你自己机器上。

按用途对号入座——

  • 私有代码仓库:公司代码、外包项目不想放别人服务器,放自己这儿
  • 小团队协作:仓库、分支、Pull Request、代码评审、工单,GitHub 有的它基本都有
  • 个人备份:GitHub 上的仓库镜像一份到本地,删库了也不慌
  • 内部文档 / 配置仓库:不光是代码,Markdown 文档、配置、脚本都能放
  • 给客户交付源码:开个只读账号,客户自己 clone,不用打包发压缩包

它不像 GitLab 那样带 CI/CD 全家桶——有 Actions(较新版本),但生态和成熟度差一截,指望它当 Jenkins 用的会失望。

核心功能亮点

  • 仓库管理全套:建库、克隆、分支、标签、合并、归档
  • Pull Request + 代码评审:行内评论、批准、请求修改
  • 工单(Issues)+ 里程碑:任务拆解、关联提交、自动关闭
  • Wiki:每个仓库自带一个文档区
  • 组织与团队:组织下建多个仓库,成员按团队授权
  • 多种登录方式:账号密码、OAuth2、LDAP,也能关掉公开注册
  • Webhook + 部署密钥:推代码自动触发别的东西
  • 主题和品牌可改:Logo、标题、配色都能换成自己的
  • 单 exe + SQLite:120MB 一个文件,不用装数据库

这工具什么来头

  • 版本:v28.1.0,GitHub 5.8 万 Star
  • 协议:MIT,商用、二开都没限制
  • 技术栈:Go 写的后端,编译成单个 exe;前端是完整的一整套网页界面
  • 数据库默认用 SQLite(单文件,零配置),也支持 MySQL/PostgreSQL
  • 官方直接提供 Windows / Linux / macOS 二进制,解压就能用

它不是"精简版 Git",该有的都有:仓库管理、Pull Request(叫"合并请求")、Issue 工单、标签里程碑、组织团队、代码搜索、Web 编辑器、Git LFS……日常开发流程里用到的,它一个不缺。

我的测试环境

项目配置
系统Windows 11 本地
版本官方 windows-amd64 二进制(v28.1.0)
端口3101
数据存储SQLite(data\gitea.db)

部署:解压,双击,点几下

1. 解压到任意目录,双击 启动代码托管.bat。

2. 浏览器打开 http://127.0.0.1:3101,第一次打开是安装向导——别被这一页吓到,大部分字段都不用动:

安装向导 首屏 - Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

数据库类型保持 SQLite3,路径保持默认(就在你解压目录的 data 文件夹里),站点名称我这边保持默认的"源码湾代码托管",你自己用可以随便改。

3. 往下滚到「管理员帐号设置」,填上自己的用户名密码邮箱:

安装向导 管理员账号设置 - Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

这里有个很多人踩过的坑:安装向导里最容易忽略的就是这一块,因为它默认是折叠的。如果直接点「立即安装」跳过这里,装完你得到的是一个没有管理员的站点,还得手动去抢注"第一个用户"。老实用这一页填完,一步到位。

4. 点「立即安装」,几秒钟后自动进入首页,你已经以管理员身份登录了:

安装完成 进入首页 - Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

装完了。整个安装过程没碰过一次命令行。

进去走一圈

首页(未登录状态)——四大特性按块排开,整个界面是中文的:

首页 未登录 - Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

注册登录是标配,自用的站点可以关掉注册开关。登录页长这样:

登录页 - Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

注册页:

注册页 - Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

探索页能看到站内所有公开的仓库:

探索 仓库列表 - Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

仓库功能试一遍

我建了个演示仓库,把一个小项目推了上去。仓库主页长这样——文件列表、README 渲染、提交记录、语言统计,该有的都有:

仓库主页 - Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

点进目录浏览代码,左边的文件树可以一路点下去:

代码文件浏览 - Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

单个文件有语法高亮,右上角「原始文件 / 永久链接 / Blame / 文件历史」都在:

文件内容 语法高亮 - Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

提交历史按时间倒序,作者头像、提交信息、SHA 短码一目了然:

提交历史 - Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

点开单次提交,代码 diff 用经典的红绿高亮:

单次提交 diff - Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

Git 的核心玩法它都支持,我本地克隆、改文件、推送这三步都用真实的 git 命令跑通了,不是摆样子。

工单和协作

如果只是一个人用,工单系统可能用不上;团队用起来就很顺手了。工单列表带标签、作者、评论数:

工单列表 - Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

工单详情里有完整的评论区、标签、指派、里程碑、订阅通知:

工单详情 - Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

标签可以自己定义,我把 bug / enhancement / documentation / question 都建了一遍,颜色随便配:

标签管理 - Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

另外还有组织功能(相当于团队空间)和独立的用户主页:

组织页 - Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

管理后台

站点管理后台是真的全——服务器状态、用户管理、仓库管理、监控、系统配置全在里面:

站点管理后台 - Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

普通用户用不到这些,知道它"有"就行。

暗色主题在页脚右下角切换(就是那个「Light」小按钮),暗色做得挺好看:

暗色主题 仓库页 - Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

手机端自适应没问题,触屏操作流畅:

移动端 仓库主页 - Gitea 自建 Git 服务:120MB 单文件,GitLab 太重就用它

顺手聊聊品牌定制(站长向)

既然要长期用,我把界面上挂了 Gitea 名字的地方都换成了自己的。Gitea 的定制机制值得夸一句:不用改源码、不用重新编译——在程序目录建一个 custom 文件夹,按同样的路径放同名文件就是覆盖:

  • custom/conf/app.ini 里改 APP_NAME(站点名称)
  • custom/public/assets/img/logo.svg 换 logo、favicon.svg 换浏览器图标
  • custom/templates/custom/extra_links_footer.tmpl 加页脚链接
  • custom/templates/custom/header.tmpl 里塞一段 CSS,把主题色从默认的绿改成自己的品牌色

改完刷新就生效,升级版本时 custom 目录和 data 目录都不用动。这套机制我在整合包里已经配好了,你拿去改成自己的名字就是分分钟的事。

一个实测才知道的小坑:主题色覆盖对大部分按钮和链接生效,但页面上有个别图标用的是写死的颜色,不跟主题变量走。想 100% 统一色系,得逐个覆盖 SVG 的 fill——强迫症可以慢慢抠,普通人忽略就行。

实话实说

先夸:

  1. 部署真的简单。单文件 + 安装向导,没有命令行、没有 Docker 依赖,Windows 上从零到能访问不到 10 分钟。
  2. 功能完整度超出预期。PR、Issue、组织、代码搜索、Web 编辑,这些"GitHub 才有的东西"它全有,而且都是中文界面。
  3. 定制机制设计得好。custom 目录不碰源码就能换品牌,升级也不丢配置,这个设计比很多同类项目都体面。

缺点也说清楚:

  1. 别拿"单文件小工具"的预期去估它的资源占用。Gitea 带的是完整的网页前端和一堆服务,120MB 的二进制不是白来的,跑起来的内存占用比你想象的大一些。1 核 1G 的丐版云服务器能跑,但建议给到 2G 内存起步。
  2. 默认没有 HTTPS,公网上跑必须自己配。Gitea 本身只管 HTTP,想挂公网得前面加 Nginx 反向代理 + 证书。⚠️ 而且它是给内网/自用设计的,公网部署务必:改掉默认端口、关掉开放注册、开启登录保护。
  3. SQLite 只适合小规模。几个人用没问题;十几个人天天高强度推代码,建议装的时候直接选 MySQL 或 PostgreSQL,SQLite 的并发写入是短板。
  4. 界面偏"工具感",精细度比不上 GitHub。功能都在,但一些细节欠打磨(比如个别图标颜色不跟主题、部分提示文案偏生硬)。介意这点的建议先看截图感受一下再说。

常见问题

源码获取

上面教程用到的完整整合包(官方 windows-amd64 二进制 + 品牌定制好的配置 + 完整源码包),我放夸克网盘了,免费取:

上面记的这些坑,你自己走一遍也都会遇到。环境、依赖、配置、目录结构,一个都省不了。包里是我这边全部跑通之后才打的——要跳过这几步,直接拿下面这个。

两个小提醒:

  1. 建议先「转存到自己网盘」再下载——直接下载的链接容易失效,转存后就是你的了,随时能下;
  2. 手机上操作:点开链接 → 右下角「保存到网盘」→ 回夸克 App 的「我的网盘」里下载。

安装卡住了?对照上面的常见问题部分,基本都能解决。

装之前先确认两件事:一个没被占用的端口(默认 3000,这个端口太容易被别的开发服务抢)、一个放仓库数据的目录。数据库用内置 SQLite 就够,小团队不用上 MySQL。

实测说明

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

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