
セルフホスト型 Git サーバー OSS 比較 - Gitea / Forgejo / GitLab CE / Gogs / OneDev / Soft Serve
以前の記事「Git LFS 完全ガイド」で、Apache + git-http-backend による自前 Git サーバーでは Git LFS が動作しないことを検証しました。git-http-backend は Git Smart HTTP プロトコル専用の CGI プログラムであり、LFS の Batch API(/info/lfs/objects/batch)を処理できないためです。
そこで本記事では、Git LFS にネイティブ対応したセルフホスト型の Git サーバー OSS を調査し、それぞれの特徴や向いているケースをまとめます。
なぜセルフホスト型 Git サーバーが必要になったのか
git-http-backend の限界
前回の記事で詳しく解説しましたが、git-http-backend で LFS を使おうとすると以下のエラーが発生します。
batch response: Repository or object not found:
https://git.example.com/repo.git/info/lfs/objects/batchbatch request: command not found: git-lfs-authenticate: exit status 127Git LFS は Git 本体とは独立した REST API を持っており、git-http-backend にはその API を処理する機能がありません。
解決策は 2 つ
- LFS サーバーを別途立てる(rudolfs、Giftless 等)→ Apache のリバースプロキシで
/info/lfs/だけ振り分け - Git サーバーごと LFS 対応の OSS に置き換える → 本記事のテーマ
前者は既存の git-http-backend 構成を維持できますが、LFS サーバーの運用が別途必要です。後者は Git ホスティング自体を刷新することで、LFS だけでなく Web UI、Issue 管理、CI/CD なども手に入ります。
調査対象の OSS 一覧
今回調査したのは以下の 6 つです。
| OSS | 言語 | 最新バージョン | ライセンス | Git LFS |
|---|---|---|---|---|
| Gitea | Go | v1.25.4(2026年1月) | MIT | ✅ 組み込み |
| Forgejo | Go | v14.0.2(2026年1月) | MIT | ✅ 組み込み |
| GitLab CE | Ruby (Rails) | 最新安定版 | MIT (CE) | ✅ デフォルト有効 |
| Gogs | Go | v0.14-dev | MIT | ⚠️ v0.12〜(不安定報告あり) |
| OneDev | Java | v11.8.7(2025年4月) | MIT | ✅ 組み込み(S3対応はEnterprise) |
| Soft Serve | Go | v0.8.x | MIT | ✅ v0.6.0〜 |
Gitea
概要
Gitea は Go 言語で書かれた軽量なセルフホスト型 Git サービスです。Gogs からフォークして始まったプロジェクトで、現在はセルフホスト型 Git サーバーの中で最も人気があります。シングルバイナリで動作し、低スペックなサーバーでも快適に使えるのが最大の特徴です。
Git LFS 対応
app.ini で数行設定するだけで LFS が有効になります。
[server]
LFS_START_SERVER = true
[lfs]
PATH = /home/gitea/data/lfsストレージの選択肢:
- ローカルディスク(デフォルト)
- S3 互換オブジェクトストレージ(AWS S3、MinIO、DigitalOcean Spaces 等)
SSH 経由のみで LFS を動かす Pure SSH モードも用意されています(LFS_ALLOW_PURE_SSH = true)。HTTP エンドポイントを公開せずに LFS を運用できるため、セキュリティ的にも好ましい構成が可能です。
スペック要件
| 項目 | 目安 |
|---|---|
| メモリ | アイドル時 約100MB |
| ディスク | バイナリ本体 約100MB + データ |
| 前提ソフトウェア | Git v2.1.2 以上 |
| データベース | SQLite / MySQL / PostgreSQL |
主な機能
- リポジトリ管理(フォーク、ミラー、テンプレート)
- Issue / Pull Request
- Gitea Actions(GitHub Actions 互換の CI/CD)
- パッケージレジストリ(npm、Docker、PyPI 等)
- Web エディタ、Wiki
- OAuth2 / LDAP 認証
- Webhook、REST API
向いているケース
- VPS やラズパイなど低スペック環境で運用したい
- GitHub に近い使い勝手を自前で持ちたい
- CI/CD(Gitea Actions)も一つのサービスで完結させたい
- LFS を S3 に保存してストレージを分離したい
Forgejo
概要
Forgejo は Gitea からフォークしたコミュニティ主導のプロジェクトです。2022年に Gitea が商業化の方針を打ち出したことに対し、ソフトウェアの自由とコミュニティガバナンスを重視するメンバーが分岐して立ち上げました。Codeberg(ドイツの非営利 Git ホスティング)が Forgejo で運用されています。
Git LFS 対応
Gitea と同じく組み込みで LFS に対応しています。設定方法もほぼ同一です。
Forgejo 独自の機能として Soft-Quota(ソフトクォータ)があり、Git LFS の使用量を個別に制限できます。大量のバイナリをアップロードされてストレージを圧迫されるリスクを管理者が制御できます。
[server]
LFS_START_SERVER = true
[lfs]
PATH = /home/forgejo/data/lfsスペック要件
Gitea とほぼ同じです。
| 項目 | 目安 |
|---|---|
| メモリ | アイドル時 約100MB |
| ディスク | バイナリ本体 約100MB + データ |
| 前提ソフトウェア | Git v2.1.2 以上、git-lfs |
| データベース | SQLite / MySQL / PostgreSQL |
Gitea との違い
| 観点 | Gitea | Forgejo |
|---|---|---|
| ガバナンス | Gitea Ltd.(企業主導) | コミュニティ主導(非営利) |
| Enterprise版 | あり(有料) | なし(全機能無料) |
| エディタ | Monaco Editor | CodeMirror(v14.0〜、軽量) |
| 独自機能 | Gitea Actions | Forgejo Actions、Soft-Quota |
| リリース頻度 | 月次パッチ | 四半期メジャー + パッチ |
向いているケース
- コミュニティ主導・全機能無料の方針に共感する
- Gitea と同等の軽量さ・機能を求めつつ、商用ライセンスを避けたい
- LFS の使用量をクォータで制御したい
- Codeberg と同じ基盤で運用したい
GitLab CE (Community Edition)
概要
GitLab CE は最も機能が豊富なセルフホスト型 Git プラットフォームです。Git リポジトリ管理だけでなく、CI/CD パイプライン、Container Registry、Package Registry、Wiki、Issue Tracker、セキュリティスキャンなど、DevOps に必要な機能がすべて組み込まれています。
Git LFS 対応
デフォルトで有効です。特別な設定は不要で、インストール直後から LFS が使えます。
ストレージの選択肢:
- ローカルストレージ(デフォルト:
/var/opt/gitlab/gitlab-rails/shared/lfs-objects) - リモートオブジェクトストレージ(S3 互換)
管理画面から LFS の有効/無効を切り替えられ、プロジェクト単位での制御も可能です。
スペック要件
他の OSS と比べて大幅にリソースを消費します。
| 項目 | 目安 |
|---|---|
| メモリ | 最低 8GB、推奨 16GB(1,000ユーザー規模) |
| ディスク | インストールだけで約 2.5GB、推奨 40GB〜 |
| 前提ソフトウェア | PostgreSQL、Redis、Sidekiq 等 |
| CPU | 4コア推奨 |
主な機能
- CI/CD パイプライン(GitLab Runner)
- Container Registry / Package Registry
- セキュリティスキャン(SAST、DAST、依存関係スキャン)
- Kubernetes 統合
- Auto DevOps
- Merge Request(コードレビュー)
- Wiki、Snippet、Issue Board
向いているケース
- チーム・組織で本格的な DevOps プラットフォームが必要
- CI/CD を Git サーバーと統合したい
- Container Registry やセキュリティスキャンも一元管理したい
- サーバーリソースに余裕がある(メモリ 8GB 以上)
- GitHub/GitLab.com と同等の体験をオンプレで実現したい
Gogs
概要
Gogs は「痛みのないセルフホスト型 Git サービス」を掲げる、Go 言語で書かれた超軽量な Git サーバーです。Gitea の元になったプロジェクトで、Raspberry Pi でも動作するほど軽量です。ただし、メンテナが少なく開発ペースは緩やかです。
Git LFS 対応
v0.12 から LFS に対応しています。ただし、開発版(v0.14-dev)で LFS の push が失敗するバグ報告(2025年8月)があり、安定性に懸念が残ります。
[server]
LFS_JWT_SECRET = <secret>
[lfs]
OBJECTS_PATH = /home/git/gogs-lfsスペック要件
調査した中で最も軽量です。
| 項目 | 目安 |
|---|---|
| メモリ | アイドル時 約60〜80MB |
| ディスク | バイナリ本体 約60MB |
| 前提ソフトウェア | Git v1.8.3 以上 |
| データベース | SQLite / MySQL / PostgreSQL |
注意点
- Issue や Pull Request の機能は基本的なもののみ
- CI/CD は非搭載(外部連携が必要)
- コントリビュータが少なく、セキュリティパッチの適用が遅れる可能性
- LFS の安定性に不安が残る
向いているケース
- とにかく軽量に Git リポジトリを Web UI 付きで公開したい
- Raspberry Pi や低スペック VPS で最小限のリソースで動かしたい
- LFS は使わない、または限定的な利用に留める
- Issue 管理や CI/CD は別のツールで運用している
OneDev
概要
OneDev は Java で書かれたセルフホスト型 Git サーバーで、CI/CD、Issue 管理(Kanban)、パッケージ管理を統合しています。CI/CD パイプラインを YAML で定義でき、Docker コンテナ内でビルドを実行する仕組みが特徴です。
Git LFS 対応
組み込みで LFS に対応しています。ただし、S3 へのLFS ストレージ保存は Enterprise 版(有料)の機能です。
| 機能 | Community | Enterprise |
|---|---|---|
| LFS 基本機能 | ✅ | ✅ |
| LFS ローカルストレージ | ✅ | ✅ |
| LFS → S3 保存 | ❌ | ✅ |
| ストレージ設定の管理画面 | ❌ | ✅ |
スペック要件
| 項目 | 目安 |
|---|---|
| メモリ | 最低 2GB |
| ディスク | インストール約 500MB + データ |
| 前提ソフトウェア | Java 11 以上 / Docker(CI/CD 利用時) |
| データベース | 組み込み H2 / MySQL / PostgreSQL |
主な機能
- CI/CD パイプライン(Docker ベース)
- Kanban ボード
- コードレビュー
- パッケージレジストリ
- シンボルナビゲーション(コード内のクラス・関数をブラウザで辿れる)
- クラスタリング対応(Enterprise)
向いているケース
- CI/CD を内蔵した Git サーバーが欲しいが、GitLab ほどのリソースは割けない
- Docker ベースの CI/CD パイプラインを使いたい
- Kanban でタスク管理も一元化したい
- Java 環境に抵抗がない
Soft Serve
概要
Soft Serve は Charm が開発した、SSH ベースのセルフホスト型 Git サーバーです。**TUI(ターミナル UI)**でリポジトリを閲覧できるユニークなアプローチが特徴で、Web UI を持ちません。SSH 接続するだけでリポジトリの一覧やコミットログを確認できます。
ssh git.example.comGit LFS 対応
v0.6.0(2023年8月)から LFS に対応しています。
- SSH / HTTP 両方のプロトコルで LFS が動作
- LFS ロックにも対応(ファイルのロック/アンロック)
- SSH 経由の LFS がデフォルト有効(HTTP は設定で切り替え可能)
スペック要件
| 項目 | 目安 |
|---|---|
| メモリ | アイドル時 約50MB |
| ディスク | バイナリ約 30MB |
| 前提ソフトウェア | なし(シングルバイナリ) |
| データベース | SQLite / PostgreSQL |
注意点
- Web UI なし(ブラウザからの操作は不可)
- Issue 管理、Pull Request、CI/CD は非搭載
- ユーザー管理は SSH 公開鍵ベース
- リポジトリは SSH / HTTP 経由で clone・push するのみ
向いているケース
- CLI / ターミナル中心のワークフローで、Web UI は不要
- 極めて軽量な Git サーバーが欲しい
- SSH のみで完結する環境(HTTP エンドポイントを公開したくない)
- Charm エコシステム(Charm Cloud 等)との統合を見据えている
比較まとめ
リソース要件
| OSS | メモリ(アイドル) | 最低メモリ | 言語 |
|---|---|---|---|
| Soft Serve | ~50MB | 512MB | Go |
| Gogs | ~70MB | 512MB | Go |
| Gitea | ~100MB | 1GB | Go |
| Forgejo | ~100MB | 1GB | Go |
| OneDev | ~300MB | 2GB | Java |
| GitLab CE | ~3GB | 8GB | Ruby |
機能比較
| 機能 | Gitea | Forgejo | GitLab CE | Gogs | OneDev | Soft Serve |
|---|---|---|---|---|---|---|
| Web UI | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Git LFS | ✅ | ✅ | ✅ | ⚠️ | ✅ | ✅ |
| LFS → S3 | ✅ | ✅ | ✅ | ❌ | 有料版 | ❌ |
| CI/CD | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
| Issue管理 | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Pull/Merge Request | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Container Registry | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
| SSH Only LFS | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ |
用途別おすすめ
| やりたいこと | おすすめ |
|---|---|
| 個人の VPS で手軽に Git + LFS を運用 | Gitea / Forgejo |
| ラズパイ等の超低スペック環境 | Gogs(LFS 不要なら)/ Soft Serve |
| チームで DevOps を一元管理 | GitLab CE |
| 軽量 + CI/CD 内蔵 | Gitea / OneDev |
| ターミナルだけで完結させたい | Soft Serve |
| コミュニティ主導・完全無料を重視 | Forgejo |
| 既存の git-http-backend を LFS 対応にしたい | LFS サーバー単体(rudolfs 等)を別途構築 |
結論: 個人〜小規模なら Gitea / Forgejo がベストバランス
今回の調査は、git-http-backend で Git LFS が動かなかったことがきっかけでした。
調査の結果、Gitea または Forgejo が最もバランスの良い選択肢だと感じます。理由は以下のとおりです。
- 軽量: アイドル時 約100MB のメモリで動作し、1GB RAM の VPS でも十分
- LFS 対応が安定: 設定数行で有効化でき、S3 ストレージもサポート
- CI/CD 内蔵: Gitea Actions / Forgejo Actions で GitHub Actions 互換のワークフローが使える
- 導入が簡単: シングルバイナリまたは Docker で即座にデプロイ可能
- Web UI が充実: GitHub ライクな操作感でリポジトリ管理、Issue、Pull Request が使える
git-http-backend + Apache の構成から移行する場合、Apache のリバースプロキシで Gitea / Forgejo のポートに転送するだけで既存の URL 構成を維持できます。
<VirtualHost *:443>
ServerName git.example.com
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/
</VirtualHost>一方、チームや組織で本格的な DevOps 基盤が必要なら GitLab CE が最も機能が充実しています。ただしメモリ 8GB 以上が必要なため、VPS のスペックと相談になります。
git-http-backend で Git LFS が使えないという壁にぶつかった方は、この機会に Git ホスティング自体をモダンな OSS に移行することを検討してみてはいかがでしょうか。