荷兰政府近日宣布将代码仓库从 GitHub 迁移到 Forgejo,一个自托管的轻量级 Git 平台。这一决定引发了开发者社区对”离开 GitHub”运动的广泛讨论。对于站长和开发者来说,这也是一个值得了解的自托管代码管理方案。
什么是 Forgejo
Forgejo 是一个由社区驱动的轻量级自托管 Git 平台,是 Gitea 的一个分支。它的名字来自世界语,意为”锻造”。与 GitHub 不同,Forgejo 完全开源,你可以将其部署在自己的服务器上,完全掌控代码数据。
Forgejo 的主要特点:
- 轻量级:资源占用极低,甚至可以在树莓派上运行
- 兼容 GitHub:支持 GitHub 风格的 Pull Request、Issues、Actions
- 自托管:数据完全在你自己的服务器上
- 社区驱动:不隶属于任何商业公司
- 易于迁移:支持从 GitHub、GitLab 等平台导入仓库
荷兰政府为什么迁移
荷兰政府选择 Forgejo 的主要原因包括:
- 数据主权:政府代码不应存储在外国公司的服务器上
- 合规要求:欧盟数据保护法规要求对数据存储位置有更多控制
- 避免供应商锁定:不依赖单一商业平台
- 开源理念:政府项目应该使用开源工具管理
这一趋势不仅限于荷兰,多个欧洲国家的政府机构都在评估或已经迁移到自托管的 Git 平台。
Forgejo vs GitHub vs GitLab
| 特性 | Forgejo | GitHub | GitLab |
|---|---|---|---|
| 部署方式 | 自托管 | 云端/SaaS | 自托管/云端 |
| 资源占用 | 极低 | N/A | 较高 |
| CI/CD | Forgejo Actions | GitHub Actions | GitLab CI |
| 费用 | 免费开源 | 免费/付费 | 免费/付费 |
| 数据控制 | 完全控制 | 第三方托管 | 可自托管 |
| 社区规模 | 较小但活跃 | 最大 | 较大 |
如何部署 Forgejo
Docker 部署(推荐)
# 创建数据目录
mkdir -p /var/lib/forgejo
# 使用 Docker 运行
docker run -d \
--name forgejo \
-p 3000:3000 \
-p 2222:22 \
-v /var/lib/forgejo:/data \
codeberg.org/forgejo/forgejo:latest
部署完成后,访问 http://your-server:3000 完成初始配置。
宝塔面板部署
如果你使用宝塔面板,可以通过以下步骤部署:
- 在宝塔面板安装 Docker 管理器
- 在 Docker 管理器中搜索并安装 Forgejo 镜像
- 配置端口映射(3000:3000,2222:22)
- 配置数据卷挂载
- 启动容器并访问 Web 界面完成配置
1Panel 部署
1Panel 也支持 Forgejo 的一键部署,在应用商店中搜索即可。
从 GitHub 迁移
Forgejo 支持从 GitHub 导入仓库,包括代码、Issues、Pull Requests 等。迁移步骤:
- 在 Forgejo 中创建新仓库时选择”从外部仓库迁移”
- 输入 GitHub 仓库地址和个人访问令牌
- 选择要迁移的内容(代码、Issues、PR、标签等)
- 等待迁移完成
适合谁
- 注重数据隐私的团队:不想将代码托管在第三方服务器
- 小型团队:资源有限,不需要 GitLab 那么重的方案
- 政府和企业:有数据主权和合规要求
- 个人站长:想要一个轻量级的私有 Git 仓库
注意事项
- 自托管意味着你需要自己负责服务器维护和备份
- Forgejo 的 Actions 功能与 GitHub Actions 不完全兼容,需要调整 CI/CD 配置
- 社区规模较小,遇到问题可能需要更多自行排查
- 建议配合反向代理(Nginx/Caddy)和 HTTPS 使用
简评
荷兰政府的迁移决定说明,自托管 Git 平台正在成为一种趋势。对于站长来说,Forgejo 是一个轻量级、易部署的选择,特别适合想要掌控自己代码数据的小团队。虽然 GitHub 的社区生态无可替代,但对于私有仓库和内部项目,Forgejo 是一个值得考虑的方案。
© 版权声明
THE END














暂无评论内容