代码放 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,第一次打开是安装向导——别被这一页吓到,大部分字段都不用动:

数据库类型保持 SQLite3,路径保持默认(就在你解压目录的 data 文件夹里),站点名称我这边保持默认的"源码湾代码托管",你自己用可以随便改。
3. 往下滚到「管理员帐号设置」,填上自己的用户名密码邮箱:

这里有个很多人踩过的坑:安装向导里最容易忽略的就是这一块,因为它默认是折叠的。如果直接点「立即安装」跳过这里,装完你得到的是一个没有管理员的站点,还得手动去抢注"第一个用户"。老实用这一页填完,一步到位。
4. 点「立即安装」,几秒钟后自动进入首页,你已经以管理员身份登录了:

装完了。整个安装过程没碰过一次命令行。
进去走一圈
首页(未登录状态)——四大特性按块排开,整个界面是中文的:

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

注册页:

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

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

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

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

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

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

Git 的核心玩法它都支持,我本地克隆、改文件、推送这三步都用真实的 git 命令跑通了,不是摆样子。
工单和协作
如果只是一个人用,工单系统可能用不上;团队用起来就很顺手了。工单列表带标签、作者、评论数:

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

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

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

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

普通用户用不到这些,知道它"有"就行。
暗色主题在页脚右下角切换(就是那个「Light」小按钮),暗色做得挺好看:

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

顺手聊聊品牌定制(站长向)
既然要长期用,我把界面上挂了 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——强迫症可以慢慢抠,普通人忽略就行。
实话实说
先夸:
- 部署真的简单。单文件 + 安装向导,没有命令行、没有 Docker 依赖,Windows 上从零到能访问不到 10 分钟。
- 功能完整度超出预期。PR、Issue、组织、代码搜索、Web 编辑,这些"GitHub 才有的东西"它全有,而且都是中文界面。
- 定制机制设计得好。
custom目录不碰源码就能换品牌,升级也不丢配置,这个设计比很多同类项目都体面。
缺点也说清楚:
- 别拿"单文件小工具"的预期去估它的资源占用。Gitea 带的是完整的网页前端和一堆服务,120MB 的二进制不是白来的,跑起来的内存占用比你想象的大一些。1 核 1G 的丐版云服务器能跑,但建议给到 2G 内存起步。
- 默认没有 HTTPS,公网上跑必须自己配。Gitea 本身只管 HTTP,想挂公网得前面加 Nginx 反向代理 + 证书。⚠️ 而且它是给内网/自用设计的,公网部署务必:改掉默认端口、关掉开放注册、开启登录保护。
- SQLite 只适合小规模。几个人用没问题;十几个人天天高强度推代码,建议装的时候直接选 MySQL 或 PostgreSQL,SQLite 的并发写入是短板。
- 界面偏"工具感",精细度比不上 GitHub。功能都在,但一些细节欠打磨(比如个别图标颜色不跟主题、部分提示文案偏生硬)。介意这点的建议先看截图感受一下再说。
常见问题
源码获取
上面教程用到的完整整合包(官方 windows-amd64 二进制 + 品牌定制好的配置 + 完整源码包),我放夸克网盘了,免费取:
上面记的这些坑,你自己走一遍也都会遇到。环境、依赖、配置、目录结构,一个都省不了。包里是我这边全部跑通之后才打的——要跳过这几步,直接拿下面这个。
两个小提醒:
- 建议先「转存到自己网盘」再下载——直接下载的链接容易失效,转存后就是你的了,随时能下;
- 手机上操作:点开链接 → 右下角「保存到网盘」→ 回夸克 App 的「我的网盘」里下载。
安装卡住了?对照上面的常见问题部分,基本都能解决。
装之前先确认两件事:一个没被占用的端口(默认 3000,这个端口太容易被别的开发服务抢)、一个放仓库数据的目录。数据库用内置 SQLite 就够,小团队不用上 MySQL。