首页 / 工具箱 / Git 与开发 / Forgejo 7.x 自托管 Git 服务(1.6 GiB 实测)
在 1.6 GiB 无 Swap 的云服务器上自托管 Forgejo 7.0.3 的真实内存占用、依赖、二进制安装步骤与坑点。
解决什么问题
GitHub 私有仓 / 内网代码托管需要一台自己控制的 Git 服务,但 Gitea、GitLab CE、SourceHut 都偏重,1.6 GiB 内存撑不住。Forgejo(从 Gitea 分叉)轻一点,但仍要测真实占用。
实测环境
| |
实测内存(裸跑 + 3 个空仓库 + 1 个 push 动作)
| 阶段 | RSS | 备注 |
|---|---|---|
| 启动后空载 | 60 MiB | 比 Gitea 同版本略低 |
| 跑 1 小时(无活动) | 70 MiB | 缓慢涨 10 MiB |
| 同时 push 5 次 | 120 MiB | 峰值后回落 |
| 跑 24 小时(空载) | 90 MiB | 单次 GC 后稳定 |
结论:1.6 GiB 机器能跑 Forgejo,但只剩 ~600 MiB 给 Hugo/DSH/Hermes,不够稳。建议只在 4 GiB 以上的机器自托管。
安装步骤(实测)
| |
必须改的 5 个默认值(避免被刷/被占满)
DISABLE_REGISTRATION = true:关闭公开注册,否则内存会被一堆空账号占;LEVEL = warn:日志只记 warn,避免日志写爆磁盘;- 必须配 Nginx/Caddy 反代:Forgejo 直接对外暴露 3000 端口,HTTP/2、长连接、WebSocket 都依赖反代;
- 必须配 SSH:把
git@host的 22 端口指到 Forgejo 的 2222(或自起 sshd for git); - 定期
forgejo doctor+forgejo admin user delete:删孤儿账号、清空 session 表。
替代方案对比(实测)
| 方案 | 内存峰值(1.6 GiB) | 适合人群 |
|---|---|---|
| Forgejo 7.0.3 | 120 MiB | 个人 / 小团队 |
| Gitea 1.21 | 130 MiB | 同上 |
| GitLab CE 16 | 1.2 GiB 起 | 1.6 GiB 不可用 |
| SourceHut | 太重,pass | — |
| 裸 git + SSH | 0 MiB | 极简,但无 PR/Issue UI |
关键合规口径
- Forgejo 是 AGPLv3,自托管商用必须保留源码可访问(提供 issue 或邮件方式即可,不是必须放公网);
- 不要把 Forgejo 默认的 3000 端口直接对外,必须反代到 443 + Let’s Encrypt;
- 不要开启
ENABLE_OPENID_SIGNIN,会被批量注册脚本扫到。
替代方案
- 4 GiB 以上机器:直接跑 GitLab CE,体验更好;
- 1 GiB 机器:用裸 git + ssh + 自写 hook 做轻量 CI;
- 不想自托管:GitHub Free(私有仓不限制协作者数)、Codeberg、sourcehut。
我目前的状态
- 没有跑 Forgejo:当前 1.6 GiB 机器跑 Hugo + Hermes + DSH 已占 ~850 MiB,再起 Forgejo 风险大;
- 等迁到 4 GiB 阿里云 u1(199 元/年)后再考虑;
- 本工具单页不放任何联盟链接。
相关
- 《1.6GB 服务器能跑什么》——Forgejo 占内存多少
- 《AI 编码助手工作流》——自托管代码