Forgejo 16.0 介绍与选型
Forgejo 16.0 自托管代码托管平台介绍与选型指南:定位与核心能力、与 Gitea/GitLab 的关系差异、二进制快速开始实测、量化选型对比(社区活跃度/版本节奏实测数据)与适用场景。
Forgejo 16.0 介绍与选型
> 目标:讲清 Forgejo 是什么、能做什么、与 Gitea/GitLab 的关系与差异,并给出可量化的选型依据(社区活跃度、版本节奏、许可与治理),最后用二进制方式完成一次最小可用部署实测。全文数据于 2026-10-17 实查与实测,版本锚定 Forgejo 16.0.6。
一、环境信息
本文数据来源与实测环境:
- 查询日期:2026-10-17(社区数据、版本节奏均为当日实查)
- 实测版本:Forgejo 16.0.6(稳定支线 16.0 的最新补丁版,2026-10-12 发布)
- 实测系统:Ubuntu 22.04(x86_64)
- 实测确认的版本串(API 返回,照抄):
{"version":"16.0.6+gitea-1.22.0"}
- 二进制发布物(官方下载实测):
curl -sI https://codeberg.org/forgejo/forgejo/releases/download/v16.0.6/forgejo-16.0.6-linux-amd64.xz | grep -iE 'HTTP|content-length'
HTTP/2 200
content-length: 37305152
即 linux-amd64 二进制(xz 压缩)约 35.6 MiB,解压后为单个可执行文件。
二、软件概述
2.1 定位
Forgejo(发音 /fɔrˈdʒiː.dʒoʊ/,取意大利语「锻造 forge」之意,口号 Beyond coding. We forge.)是一个自托管代码托管平台:部署后提供与 GitHub 同构的能力——Git 仓库托管、Pull Request 代码评审、Issue 跟踪、内置 CI/CD(Forgejo Actions)、软件包与制品仓库(Packages / Registry)、Wiki、组织与团队权限,以及完整的 REST API。
一句话定位:轻量、全功能、治理独立的开源 Git 托管平台,资源占用是 GitLab CE 的零头,功能覆盖 90% 常用 GitHub 场景。
2.2 来源与治理(为什么会有 Forgejo)
Forgejo 于 2022 年 12 月从 Gitea 分叉而来。分叉的直接原因:Gitea 的主导公司被收购后社区对项目治理失去信任,Codeberg e.V.(德国非营利协会,运营 codeberg.org 托管平台)联合多家公司发起 Forgejo,承诺永久开源、社区治理、不设商业版。
- 主仓库与全部开发都在 Codeberg(https://codeberg.org/forgejo/forgejo),不在 GitHub 发布(GitHub 上
forgejo/forgejo已 404,实测确认) - 许可:GPLv3 或 MIT 双许可(内核大部分代码继承自 Gitea 的 MIT)
- 治理:由民主选举的维护者团队决策,Backed by Codeberg e.V. 非营利组织
2.3 与 Gitea 的关系
Forgejo 是 Gitea 的「保守上游分叉 + 增强」:
- 16.0 内核基于 Gitea 1.22(版本串
16.0.6+gitea-1.22.0实测可证),Gitea 的文档、API、app.ini配置体系大体兼容 - Forgejo 在内核之上做了自己的增强:原生 Forgejo Actions(Gitea 的 Actions 实现同源但 Forgejo 迭代更激进)、联邦化(ActivityPub 实验特性)、Forgejo Runner、v7+ 起默认启用 Actions 等
- 版本号体系独立:Forgejo 用自己的 7.0 → 17.0 大版本线,与 Gitea 版本号不对应
💡 技术拓展:自托管 Git 平台的主要谱系——
平台 起源 定位 Gogs 2014 极简单二进制鼻祖,功能精简 Gitea 2017(从 Gogs 分叉) 功能均衡的轻量平台 Forgejo 2022(从 Gitea 分叉) 社区治理 + Actions/联邦增强 GitLab CE 2011 企业级全家桶,重量级 本文主角 Forgejo 属于「Gitea 系」轻量一脉。
三、核心架构
Forgejo 是 Go 语言单二进制架构,无外部强依赖:
- 单进程:HTTP Web 服务 + 内置 SSH 服务 + 后台任务队列 + Issue/代码索引器全部在一个二进制里,默认监听 3000(HTTP)与 22(SSH)
- 数据库:SQLite3 / MySQL / PostgreSQL 三选一(
[database]段DB_TYPE),存储用户、Issue/PR、权限、Actions 记录等元数据 - 文件存储:Git 裸仓库按
owner/repo.git目录树落盘([repository] ROOT),附件/头像/LFS/Actions 制品为本地目录或可切 S3 兼容对象存储(migrate-storage命令在线迁移) - 工作路径约定:
WORK_PATH(数据与配置根)→conf/app.ini(主配置)→git/repositories(裸库);本文按二进制部署约定为/var/lib/forgejo,其他部署形态的路径差异见《Forgejo 16.0 Docker Compose 部署指南》 - 扩展接口:Webhook、REST API(
/api/v1,实测可直接用 token 调用)、OAuth2 Provider、LDAP/SMTP/OIDC 认证源
实测佐证「单二进制自带全部组件」:部署后仅一个进程监听两个端口,且 /api/v1/version、/api/healthz 均由该进程返回(healthz 实测同时探测缓存与数据库):
curl -s http://localhost:3100/api/healthz | python3 -m json.tool | head -12
{
"status": "pass",
"description": "DevOps 代码平台",
"checks": {
"cache:ping": [
{
"status": "pass",
"time": "2026-10-17T12:04:48Z"
}
],
"database:ping": [
{
"status": "pass",
"time": "2026-10-17T12:04:48Z"
}
]
}
}
四、功能特性
按 16.0 实测可用的功能域归纳(每项均在实测环境验证过可用性):
| 功能域 | 能力 | 实测佐证 |
|---|---|---|
| 仓库托管 | HTTP/SSH 双协议 clone、分支/标签保护、裸库目录树 | git push 成功,c945d6d..28de242 main -> main |
| Issue/PR | Issue、PR 评审、评论、标签、里程碑、看板 | API 建 Issue 返回 issue number: 1 |
| CI/CD | Forgejo Actions(GitHub Actions 兼容语法,workflow 放 .forgejo/workflows/) | 实测 workflow 推送后 job 一次跑通,日志含 🏁 Job succeeded |
| Runner | forgejo-runner 独立进程,双执行模式(按标签指定环境或宿主直跑) | forgejo-runner register 返回 Runner registered successfully. |
| 包仓库 | OCI 制品仓库(Registry)、Generic/PyPI/npm 等多格式 Packages | 面板内置,随安装可用 |
| Git LFS | 大文件存储,LFS_START_SERVER 默认开启 | app.ini 生成即含 LFS_START_SERVER = true |
| API | REST /api/v1 全覆盖 + Swagger | 全文命令回显均来自该 API |
| 认证 | 本地口令 + OAuth2/LDAP/SMTP/OIDC、2FA | 向导可装即用,pbkdf2_hi 哈希默认 |
| 管理 | forgejo admin CLI、doctor 体检、dump 备份 | forgejo --help 实测列出 dump/doctor/admin/migrate 子命令 |
不内置的(避免误期待):代码扫描(需接 SonarQube 等外部)、Pages(实验特性,需额外配置)、企业级审批流/审计报表(GitLab 领域)。
五、快速开始(最小可用示例)
本章用官方二进制在 Ubuntu 22.04 上完成「下载 → 运行 → 初始化 → 建仓推送」的最小闭环,5 分钟可用。
5.1 下载并解压
wget -O forgejo.xz https://codeberg.org/forgejo/forgejo/releases/download/v16.0.6/forgejo-16.0.6-linux-amd64.xz
chmod +x forgejo && xz -d forgejo.xz 2>/dev/null; ls -lh forgejo*
实测下载文件大小与官方 content-length: 37305152(35.6 MiB)一致。
5.2 运行
./forgejo web
实测启动日志(节选,照抄):
2026/10/17 19:46:53 cmd/web.go:250:runWeb() [I] Starting Forgejo on PID: 16
2026/10/17 19:46:53 ...dels/db/engine.go:266:InitEngineWithMigration() [I] [SQL] SELECT tablename FROM pg_tables WHERE schemaname = $1
2026/10/17 19:46:53 Server listening on 0.0.0.0 port 22.
⚠️ 前置要求:需要可写的
WORK_PATH与数据库(首次可零配置用 SQLite3 快速体验,路径给--work-path目录内即可)。生产建议用 systemd 托管,单元文件模板见《Forgejo 16.0 运维手册》。
5.3 初始化与验证
浏览器打开 http://<服务器IP>:3000/ 进入安装向导(数据库类型选 SQLite3 即可零依赖跑通),完成后:
curl -s http://localhost:3000/api/v1/version
{"version":"16.0.6+gitea-1.22.0"}
5.4 建仓 + push 闭环
git clone http://root:q1w2e3r4@localhost:3000/root/hello-forgejo.git
cd hello-forgejo && echo "# demo" > README.md
git add . && git commit -m "首次提交" && git push origin main
实测 push 回显(照抄):
[main 28de242] push 链路验证 19:44:44
Author: root <root@example.com>
1 file changed, 1 insertion(+)
create mode 100644 push-1792237484.txt
To http://localhost:3100/root/hello-forgejo.git
c945d6d..28de242 main -> main
至此最小可用平台跑通。完整的生产级部署(PostgreSQL + 双端口 + 数据持久化)见《Forgejo 16.0 Docker Compose 部署指南》,配置项逐个调优见《Forgejo 16.0 配置参数详解》,备份升级见《Forgejo 16.0 运维手册》。
六、适用场景与限制
6.1 适合
- 团队私有代码托管:从 5 人到上千人,资源占用 2C4G 起步即可流畅运行(万级仓库规模社区有大量生产案例)
- GitHub 替代/私有托管:Actions 语法兼容 GitHub,workflow 从 GitHub 迁移成本低(把
.github/workflows/改名为.forgejo/workflows/,私有 Action 改完整地址) - CI/CD 一体化交付:不想再维护 Jenkins/GitLab Runner 两套系统,直接用内置 Actions + forgejo-runner
- 开源社区运营:Codeberg.org 本身(数万开源项目)即 Forgejo 最大规模生产实证
- 非营利/主权数据场景:非营利治理 + 100% 开源许可,无商业版功能阉割焦虑
6.2 不适合/注意
- 需要企业级 SAST/DAST 内置扫描、合规审计报表、ELN 级权限矩阵——GitLab 更合适
- 需要内置 Wiki 富文本所见即所得、内置 CI 模板市场的敏捷团队——GitLab 更完整
- 单机 SQLite 俭省部署仅适合个人与微型团队;启用 Actions 的团队应配 PostgreSQL(本文实测采用)
- Forgejo 版本节奏快(季度大版本),升级需按《Forgejo 16.0 运维手册》流程走,不适合「装完三年不动」的场景
七、同类选型对比
7.1 量化维度对比表
以下数据除标注外均为 2026-10-17 实查:
| 维度 | Forgejo 16.0 | Gitea 1.22/1.24 | GitLab CE | Gogs |
|---|---|---|---|---|
| 许可 | GPLv3/MIT | MIT | MIT(CE 专有组件闭源) | MIT |
| 治理 | 社区(Codeberg e.V.) | 公司主导(被收购后独立运营) | 公司主导 | 个人主导 |
| 主仓库位置 | codeberg.org(GitHub 无官方仓库,实测 404) | github.com/go-gitea/gitea | gitlab.com | github.com |
| 社区热度(实测) | Codeberg 5660 stars / 996 forks / 1564 open issues / 155 open PR | GitHub 58539 stars / 7272 forks | GitLab 官方仓库(自托管,star 无横向意义) | GitHub ~45k stars |
| 内置 CI/CD | ✅ Actions(默认启用,实测跑通) | ✅ Actions(默认关闭,需开 [actions] ENABLED) | ✅ 完整(含内置 Runner 生态) | ❌ 无 |
| 内置包/制品仓库 | ✅ OCI/Pypi/npm/Generic | ✅ 同源 | ✅ 完整 | ❌ |
| 资源占用(1-10 人) | ~200-400MB 内存 | ~200-400MB 内存 | 官方建议 4GB+ 内存起步 | ~100MB |
| 版本节奏(实测) | 季度大版本 + 双周补丁 | 半年大版本 | 月度发布 | 低频 |
| 商业版 | 无 | Cloud 竞价版 | Premium/Ultimate | 无 |
💡 关键差异解读:Forgejo 与 Gitea 内核同源,日常功能几乎无差,选 Forgejo 的决定性理由是治理独立 + Actions 默认启用 + 联邦化路线;选 Gitea 的理由是更大众化的生态与第三方工具兼容性。GitLab 适合需要重流程/重合规的中大型组织,代价是 10 倍级资源与运维复杂度。Gogs 仅适合极简自用。
Forgejo 的 Codeberg star 数(5660)低于 Gitea 的 GitHub star 数(58539),这是因为 Forgejo 弃用 GitHub、其用户生态集中于 Codeberg 平台内(Codeberg 托管了数万活跃开源项目),不能直接以 star 差值推断活跃度差距;open issues 1564 + open PR 155(2026-10-17 实查)反映开发活动持续高频。
7.2 版本节奏(实测数据)
从官方 Releases API 实查的大版本发布日期,节奏为每季度一个大版本:
| 版本 | 发布日期 | 实查命令输出 |
|---|---|---|
| 13.0.0 | 2025-10-16 | v13.0.0 2025-10-16 |
| 14.0.0 | 2026-01-15 | v14.0.0 2026-01-15 |
| 15.0.0 | 2026-04-16 | v15.0.0 2026-04-16 |
| 16.0.0 | 2026-07-16 | v16.0.0 2026-07-16 |
| 17.0.0 | 2026-10-15 | v17.0.0 2026-10-15 |
| 16.0.6(16 支线补丁) | 2026-10-12 | v16.0.6 2026-10-12 |
| 15.0.10 / 16.0.6 同日补丁 | 2026-10-12 | 两个稳定支线同时收补丁 |
选型结论:生产跟最新稳定支线的最新补丁(本文锚定 16.0.6);新大版本(如 17.0.0)发布后建议等待 1-2 个补丁再跟进;升级操作与回滚见《Forgejo 16.0 运维手册》。
7.3 「如果…则…」选型建议
- 如果你在 Gitea 上且在意治理与长期无商业约束 → 迁移 Forgejo(数据库结构兼容,
app.ini与 API 基本一致) - 如果你需要最快搭起来、社区资料最多、第三方集成(如监控、Bot)默认适配 Gitea → Gitea 也完全可用
- 如果组织超过几百人、需要内置 SAST/合规流水线/精细审批 → GitLab CE
- 如果你就要 Forgejo 的 Actions + 联邦 + 非营利背书 → Forgejo 16.0(本文实测链路可直接复现)
八、参考链接
- Forgejo 官网与文档:https://forgejo.org/docs/latest/
- 主仓库(Codeberg):https://codeberg.org/forgejo/forgejo
- Release 页:https://codeberg.org/forgejo/forgejo/releases
- Codeberg(Forgejo 最大生产实例):https://codeberg.org
- Forgejo vs Gitea 官方说明:https://forgejo.org/2022-12-15-forking/
- 本系列相关:《Forgejo 16.0 Docker Compose 部署指南》《Forgejo 16.0 配置参数详解》《Forgejo 16.0 运维手册》
- 相关文档:《OneDev 介绍与选型指南》《n8n 2.43.7 介绍与选型指南》