世界を動かす技術を、日本語で。

GitHubを離れてForgejoに移る理由

概要

  • GitHub から Forgejo への移行理由の詳細説明
  • オランダ政府 も同様にForgejoを採用した背景
  • GitHubの AI重視方針データ利用法的リスク の問題点
  • ForgejoGitLab の比較と選定理由
  • 今後の運用・移行計画の概要

GitHubからForgejoへの移行理由

  • GitHubの 障害 が主因ではなく、 運用主体の所有権データ主権 の確保が主目的

  • オランダ内務省も同様の理由で code.overheid.nl (Forgejo自営インスタンス)を2026年4月27日にソフトローンチ

  • プロジェクトマネージャーBoris Van Hoytema氏の「 法的要件 として自らが所有する場所でソースコードを公開する必要があった」発言

  • Forgejoは 完全なオープンソース であり、 デジタル自治 に必要な自由を提供

  • 自身のコードも同様に code.jorijn.com (Forgejo v15 LTS、NUC上で堅牢に運用)へ移行

    • 一部リポジトリはすでに移行済み、残りも順次移行予定
    • 移行完了後、 GitHubの公開リポジトリはアーカイブ化 し新URLを案内

GitHubの現状と課題

  • 2025年5月〜2026年4月の間に 257件のインシデント、うち 48件が重大障害
    • CTOによる「AIワークフローの増加で 30倍の容量拡張 が必要」との謝罪
  • 2025年8月、 GitHub独自のCEOが不在 となり、Microsoft CoreAI部門に吸収
    • 以降は MicrosoftのAI組織 の一部として運営されている実態
  • 2026年4月24日より、 CopilotユーザーのインタラクションデータがAI学習にデフォルト利用
    • ユーザーごとにオプトアウト必要、 リポジトリ単位での制御不可
    • プライベートリポジトリでも編集時のスニペット・コンテキストは収集対象
    • Copilot Business/Enterpriseのみデータ保護契約で除外

法的リスクとデータ主権

  • GitHub/Microsoft は米国企業であり、 FISA 702条CLOUD Act の適用範囲内
    • データの物理的な保存場所に関係なく、 米国法の管轄下
    • 2024年10月のEUデータレジデンシー発表は「 安心感」であり「 解決策」ではない
    • Microsoft弁護士による「EU内データも米国政府によるアクセスを保証できない」証言

オランダ政府のForgejo採用と背景

  • 「Open, tenzij」政策(2020年施行): 公費開発ソフトは原則オープンソース
  • code.overheid.nl は、政府が 完全にコントロール可能な公開場所 としてForgejoを選択
  • 欧州委員会(code.europa.eu)、ドイツ(openCode)は GitLab を採用
    • オランダはあえてForgejoを選択し、「 完全なオープンソース」「 商用ベンダー依存の回避」を重視
  • Forgejoの 開発ロードマップ が政府方針と一致

ForgejoとGitLabの比較・選定理由

  • GitLab はオープンコアモデルで、 主要機能は有償Enterprise版 に限定
  • Forgejo は2024年8月から GPLv3+ (コピーレフト)へとライセンス変更
    • Giteaからのフォーク理由も「商用企業による支配回避」
  • Forgejoは Codeberg e.V. (ベルリン登記の非営利団体)管理
    • 年次予算も会員投票で決定、透明性とガバナンス重視
  • v15 LTS (2026年4月リリース)は100回目のリリース、2027年7月まで長期サポート
    • Actionsも必要な成熟度に到達(エフェメラルランナー、OIDC、再利用可能ワークフロー等)

今後の運用・移行計画

  • code.jorijn.com でForgejo v15 LTSを運用、KVM分離・週次再構築のActionsランナー導入
  • GitHub上の公開リポジトリは順次 アーカイブ化 し、新Forgejoへのリンクを案内
  • 長期的には 完全な自営Forgejo運用 を目指す方針

まとめ:自営Forgejoへの移行の意義

  • 所有権・データ主権 の確保が最大の動機
  • AI機能強化路線法的リスク への懸念
  • オランダ政府の選択や欧州の動向と論理的整合性
  • Forgejo のライセンス・ガバナンス・機能成熟度による安心感
  • 今後も 自営・独立運用 を継続する計画

Hackerたちの意見

みんなGitHubから離れていって、gitの本来の精神を忘れてる気がする。gitは常に分散型であるべきだったのに、周りのツールがGitHubに集中しちゃったのが問題なんだよね。GitHubは使いやすくて、スケールも良くて、ちゃんとメンテナンスされてたからさ。自動同期されるミラーがGitHubに残っててほしいな。何年もプロジェクトを見てきたけど、自己ホスティングしたりニッチなところに行ったりして、GitHubのミラーが消えちゃうと、そういうプロジェクトがいつの間にか消えちゃうんだよね。みんなランダムなgitホスティングの代替を選んでるけど、中には本当に使いやすいものもある。gitは分散型だけど、GitHubはコードをホストできる場所の一つに過ぎない。複数のリモートサーバーにコードをプッシュできるんだよ。

Forgejoは、ツールを分散型にするためにたくさんの作業をしてるよ。オープンプロトコルやスタンダードを使って、自己ホスティングのフォージをつなげてるんだ。

そうだけど、GitHubは単なるgit以上のものだよ。みんなが忘れがちなのは、プラットフォームの最も重要な側面であるソーシャルコンポーネントだよね。オフサイトのリポジトリを作って、リポジトリ間でコラボレーションするのが簡単だったんだから。

問題追跡やCIのことを忘れてるんじゃない?

gitの精神を忘れてるわけじゃないけど、GitHubが「オープンリポジトリ」を使って最初のCopilotを誰にも言わずにトレーニングしたことも覚えてるから、もういいや。個人のコードはもうそこにはコミットしないよ。それに、ソーシャルな側面にも興味ないし。発見性、スター、AIボットによる問題の爆撃なんていらない。今のままで満足してる。あと、「オープンソースはあなたのためじゃない」ってことも忘れないで。

誰もそれを忘れてるわけじゃないと思うけど、ほとんどの人は分散化の部分にそこまでこだわってないよ。彼らが気にしてるのは、使いやすさや無料であること、企業向けに必要なエンタープライズ機能やSSOが揃っているかどうかなんだ。

それに同意する。Gitリポジトリを移すのは簡単だけど、プロジェクト全体を移すのは難しい。問題、リリース、CI、ドキュメント、セキュリティアドバイザリー、検索や発見性が時間とともにGitHubに結びついてしまうから。オープンソースプロジェクトには、自己ホスティングを真実の源として、読み取り専用のGitHubミラーを持つのがいいと思う。そうすれば、みんなが実際に見つけられるし。

GitHubは2つのことを中央集権化してるんだ。認証とリポジトリホスティング。コードをこんな中央の場所にホストする必要が本当にあるのかな?(明らかにないから、みんなGitHubを離れてるんだよね)でも、GitHubが提供してる本当に価値のある部分はソーシャル面なんだ。torvaldsって名前のユーザーからPRが来たら、これは確かにLinusだって信頼できるよね。もっと分散型のシステムではそうはいかない。だから、認証やアイデンティティを提供する役割を持つエンティティがあればいいなと思ってる。ForgejoやGitea、Gitlabのインスタンスはそれを使うことができるし、例えば他の貢献者を迎え入れたい時、その人が自分のForgejoインスタンスを持ってたら、このプロバイダーを通じて招待できる。そうすると、その人がリポジトリをフォークすると、自分のForgejoに入って、簡単にあなたのリポジトリにPRを作成できるんだ。

「Gitは分散型だから」って、ファイルシステムの一種だよね。でも、チームの運営はそうじゃない。それがGitHubのポイントなんだ。調整問題からは逃げられないよ! (メールやパッチ、他の非同期の方法を言うなら、それも同じこと、もっと複雑になるだけ)

しばらくの間、Forgejoを自己ホスティングしてるけど、維持と運用が驚くほど簡単なんだ。ぜひ試してみることをおすすめするよ。

「私が諦めたこと」のセクションで、著者が自分のソーシャルグラフについて言及してるよ。GitSocialを使えば、自分のソーシャルグラフやコラボレーションの履歴を持っていけるし、どんなgitホスト間でもクロスフォージのプルリクエストができるんだ。すべてサードパーティの依存なしでね。

今日は学びました。ありがとう!

ありがとう!GitSocialはすごくクールなソフトウェアだね!

GitHubはソーシャルネットワークだよ。Gitホスティングはちょっとした機能に過ぎない。それが、どの代替案も成功しない理由なんだ。

1年前に自己ホスティングのgiteaに移行して、今は自宅のラボで運用してるけど、公開はしてないよ。httpsもなく、登録も無効にして、リポジトリも公開してない。公開インスタンスを作って、httpsで使おうかなとも考えてるけど、攻撃面を最小限に抑えたいんだ。特にgiteaやforgejoについて、何かおすすめある?

うん、俺もやったことあるよ。nginxとfail2banを動かしてるfly.ioのプロキシを使ってて、それがtailnetに転送されて、Caddyが実際のインスタンスに解決するんだ。ローカル登録を無効にするのが重要だよ。俺はauthentik(tailnet専用)をIdPとして使ってるけど、もちろん自分のアカウントを作った後に登録を無効にすることもできる。個別にレンダリングされたgitコミットビューみたいなものを無効にするrobots.txtも持ってる。そうしないと、スクレイパーが無限ループにハマっちゃうからね。それに、プライベートパッケージがあるからforgejoパッケージリポジトリへのアクセスは厳しく禁止してる。まだ調整中だけど、今のところ大きな問題は起きてないよ。詳細が知りたいならdocs.eblu.meを見てね…インフラコードに直接リンクすることもできるよ。

公開インスタンスを作って、HTTPSで使おうと思ってるんだけど、攻撃面を最小限に抑えたい。特にGiteaやForgejoについて何かおすすめある?過去にやったことあるけど、今は社内LANのForgejoインスタンスだけ運用してて、公開インスタンスは持ってないんだ。でも以前は、内部のをミラーリングした公開の読み取り専用インスタンスを設定して、内部から公開インスタンスへのリバースプロキシ接続を使って、公開インスタンスがGitデータを取得するようにしてた。内部のForgejoで何か変更すると、公開の方も自動で更新されてたから、問題やCIなどは完全にプライベートでLAN内に保ててたよ。

自分がForgejoを使い始めたのは、Giteaが無視してるらしいセキュリティ問題についての政治的な議論が嫌だったからなんだ。Giteaを使い続ける理由は何なの?今、Forgejoの代わりに試してみるべきか悩んでるんだ。

みんなが分散化を叫んでるけど、実際にはほとんどのシステムが最終的には中央集権化しちゃうんだよね。もしかしたら、分散化を求める人たちは新しい中心を求めていて、自分たちが新しい開拓者になりたいだけなのかも。現行のルールの下で勝てる見込みがないと感じると、分散化を口実にして盤をひっくり返そうとするみたい。

記事のタイトルのすぐ下にある最初の行を読んでればよかったのに: >「GitHubから自己ホストのForgejoにコードを移しました」

分散化は人々が本当に必要としているもの、つまりポータビリティには間違った答えだと思う。

一部の人は精神的に病んでいて、分散化を自由主義的な理想だと思ってるんだよね。社会の恩恵を受けながら、道路や消防署の費用は払いたくないって。なんか、そういうものは自然に現れると思ってるみたい。他の人たちは、分散化が町や市、州のような社会的な善と同じ意味を持つ、より快適な中間地点があることを認識してる。大きな中央集権的な構造なしで機能できるものね。それに向かって努力したり、お金を払ったりするのは当然だけど、インフラを維持するための労力が明確にどこに行くか(税金がX、Y、Zに行くっていうのがはっきりしてる)っていうのはメリットだと思う。でも、分散化に関する会話を支配してるのは典型的に一部の特権階級で、そこには倫理的・道徳的に問題のあることをしたいエプスタインの億万長者たちが含まれてる。要するに、お金が唯一の法律ってわけ。

自己ホストのNUCにgitリポジトリを移したんだ。世界と共有するためのHTTPフロントエンドにはまだ手をつけてない、主にAIスクレイパーにコンテンツを提供したくないから。ブロックするための労力もかけたくないしね。オープンソースから利益を得た企業がこんな風に業界を毒してしまったのは残念だよ。

オープンソースから恩恵を受けた企業が、こんな風に業界を汚染してしまったのは残念だね。オープンソースとOSIは業界の仕掛けだよ。スポンサーを見てみて。独占的なハイパースケーラー企業が無料の労働力を得て、私たちが嫌う世界を作ってる:監視のパノプティコン、アプリをインストールできない電話、デバイス認証、広告ブロックのないブラウザの単一文化、などなど。Googleは人々をBSD/MITに夢中にさせたけど、その結果はどうなった?いくつかの古典的な手法を挙げると、「それは今、私たちのものだ」 - (1) ベンダーがElasticsearchやRedisのようなものを作る、(2) ハイパースケーラーがそれを自社のプロプライエタリな製品に取り込んで利益を独占する、(3) 元の著者やその会社は飢え死にする。「抱きしめて、拡張して、消す」 - (1) ベンダーがKTHMLやLinuxのようなオープンソースプロジェクトを取り、自分たちのバージョンを作る、(2) 自社の製品で市場を埋め尽くし、競合を排除する、(3) 競争を妨げる手段を使って、自社のものを目立たせる、(4) 市場シェアを得たら、トラッキングを追加したり、オープンソースに必要な自由を奪ったりする。オープンソースは「人々の自由、企業は支払うべき」という形に置き換えられるべき。ハイパースケーラーに対抗するためのソースが公開されているシェアウェア。リチャード・ストールマンのライセンスですら十分ではない。CC BY-NC-SAの方がいい。「純粋な」オープンソースは企業の福祉だ。間違いだった。巨人たちが私たちを自分たちの縄で絞めることを可能にした。

自分はPiで自ホスティングのForgejoを運用してるけど(でも多分長くは続かない)、GitHubのミラーとして機能してるんだ。直面している主な問題は以下の通り:- リポジトリは数週間はうまくミラーリングされるけど、その後止まっちゃう。全然役に立たないよ。期限切れないPATトークンを持ってるのに、なぜかそれが他のところでは動くのに、ここではそうじゃないって言われる。- ログに何もない時もあれば、データベースが何らかの理由でロックされてる時もある。データベースを使ってるのはForgejoだけなんだ。- 今のところ、これがForgejoの問題なのか、PiのSD IOが原因でデータベースがロックされてるのか、Forgejoがミラーとして機能するのが下手なのか、判断できてない。

なんで誰かが自分の作品をオープンソースとして提供するのに、AIがそれを読んで後で他のプログラマーを助けるのはダメだって線を引くの?意味がわからない。私は自分のコードをAIに読んでもらいたいと思ってるよ。

自己ホスティングしたくない場合はどうする?少ない機能で安い価格のGitホスティングを提供してるところはどこ?MSに買収される前の古い$7アカウントみたいなやつ。ホスティングと読み取り専用のウェブインターフェース、あとコラボレーターがいるときのアクセス制御があれば十分なんだけど。今の提供は「CIの分数」とか「AIアシスタント」とか、余計なものがついてきて企業向けの価格になってる。

SourceHutは、君が言ってることにすごく近いと思うよ:https://sr.ht/

残念ながら、今の管理されたオファリングはあまり良くないね。なんで誰も新しいスタートアップを始めないのか不思議だよ。

GitLabが一番いい選択肢だと思うか、Giteaかな。個人的にはCodebergはあまり好きじゃない。ライセンスがめちゃくちゃだと思う。

これはSSH経由のただのベアリポジトリとgitwebインターフェースに過ぎないよ。こんなのを売るなんて、ちょっと trivial すぎると思う。GHが無料で、自分でホスティングできるのに、5ドルから10ドルのベアボーンセットアップに需要なんてないんじゃないかな。

GitHubの代わりに使える選択肢はいくつかあるよ。例えば、Gitlab、Codeberg、Sourcehutとかね。

コードをホスティングするのも今は難しいよね?ホスティング会社は、無限に食いつく組織との戦いに挑むことになる。

SourceHutはいいよ。自分でホスティングしたくないって言っても、Gitリポジトリを自分でホスティングするのは一番簡単なことの一つだよ。

Tangledっていうのも聞いたことがあるよ。これは分散型で、BlueskyのようなATプロトコル上に構築されてるけど、GitHubが実装を引き延ばしてる本当に便利な機能も持ってるんだ。PRスタッキングみたいなやつで、これを追加するために企業が立ち上がってるくらい。誰か試したことある?

使いたいけど、主にjj互換性と素敵なCI実装のためなんだ。でも、プライベートリポジトリが必要だから、残念ながらまだ私には合わないな。

Windows用のバイナリも提供してほしいな。元のプロジェクトであるgiteaはそうしてるから。時には多くの顧客、ああ、企業がいるところに行く必要があるんだ。エンジニアリングアプリの開発者としては、Windowsが一番使いやすい。日常的に使う環境にもう一つアプリを導入するのは簡単だったはずなのに。今のところ、私はGitHubだけを使ってるよ。

giteaってforgejoのフォークじゃなかったっけ?

Fossilを考えてみて。リポジトリの状態—コードの履歴、ウィキ、チケット、フォーラム—を一つのファイルにパッケージして、それがクローンされるんだ。ホスティングプロバイダーを変える必要があるとき、Fossilならデータをゼロで失うことがないよ。[1] https://fossil-scm.org/

数年前にFossilを考えたことがあって、すごくクールだと思った(全てが統合されてるのは素晴らしいよね)。でも、哲学的な観点からFossilは好きじゃない。履歴をクリーンアップする方法がないし、全てをそのまま保存するからね。もしそれが欲しいならいいけど、私のGitワークフローの一部としては、いじってから戻ってきてコミットを整理してプッシュするのが好きなんだ。