1 ポイント 投稿者 GN⁺ 2026-03-27 | 1件のコメント | WhatsAppで共有
  • 一部のプロジェクトを GitHubからCodebergへ移しながら、最小限の労力で移行を始める方法を整理
  • Codeberg の リポジトリ import 機能 により、Issue・PR・リリースまで含めた完全な移行が可能で、UI とワークフローは GitHub と似ている
  • 静的ページホスティングcodeberg.page で代替でき、grebedoc.devstatichost.eu のような代替手段も存在
  • 最大の難所は CI 環境の構築 で、GitHub の macOS ランナーと無料実行枠を手放す必要があるが、Forgejo ActionsWoodpecker CI で代替可能
  • 移行後は GitHub リポジトリを 読み取り専用アーカイブとして維持したりミラーリング したりして、オープンソースエコシステムとのつながりを完全には断たない方法が示されている

GitHubからCodebergへの移行プロセス

  • 一部のリポジトリを GitHubからCodebergへ移行 し始めた経験をもとに、実際のマイグレーション作業の難易度と使い勝手を説明
    • Codeberg はまだ十分に整っていないと思って先延ばしにしていたが、プロジェクトによっては移行が意外なほど簡単なこともある
    • 目標は完璧な設定ではなく、最も簡単に移行を始める方法 を見つけることにある
  • リポジトリと Issue の移行

    • Codeberg は GitHub リポジトリの import 機能を提供しており、Issue・PR・リリースとそのアーティファクトも一緒に移行できる
      • この過程で Issue 番号、ラベル、作成者情報 がそのまま維持される
      • Codeberg の UI は GitHub とほぼ同じで、他の Issue トラッカーから GitHub に移すときに必要な複雑な手順よりも、はるかに簡単な体験を提供する
  • 静的ページホスティング

    • GitHub Pages を使っていた場合は codeberg.page を代替として利用できる
      • 公式な 可用性保証(SLO) はないが、実際にはダウンタイムを経験していないと述べている
      • HTML をブランチに push する方式で、GitHub Pages に似た構造
      • 代替として grebedoc.devstatichost.eu も利用可能
  • CI(継続的インテグレーション)環境の難しさ

    • マイグレーションで最も厄介なのは CI 環境の構築
      • GitHub は 無料の macOS ランナー公開リポジトリ向けの無制限実行枠 を提供するが、Codeberg ではそれを諦める必要がある
      • 解決策として 言語ごとのクロスコンパイルForgejo Actions ランナーのセルフホスティング を活用できる
    • Forgejo Actions vs Woodpecker CI

      • Codeberg では Woodpecker CI のほうが安定している が、Forgejo Actions は GitHub Actions ユーザーにとってよりなじみやすい環境を提供する
      • UI と YAML 構文がほぼ同一 で、既存の GitHub Actions ワークフローの多くがそのまま動作する
      • 例として、GitHub Actions で uses: dtolnay/rust-toolchain を使っていた部分は、Forgejo Actions では uses: https://github.com/dtolnay/rust-toolchain に変更すればよい
      • 現在の Codeberg の Forgejo Actions ドキュメントは 最新ではなく、関連する PR が存在する
    • macOS ランナーが必要な場合

      • macOS ビルドがどうしても必要なら、GitHub Actions を引き続き使い、Codeberg リポジトリから GitHub へコミットをミラーリングする方法がある
      • Forgejo Actions が GitHub API をポーリングして CI 状態を Codeberg に同期 するよう設定できる
      • 他の macOS ビルドを提供する CI サービスも試したが、Codeberg との統合は GitHub Actions ほど単純ではなかった
  • GitHub リポジトリの扱い方

    • 移行後、GitHub リポジトリは README を修正してアーカイブ化 する
      • Codeberg から GitHub へコミットを push する設定も可能だが、その場合でもユーザーは引き続き PR の作成や Issue コメント ができてしまう
      • 一部では GitHub リポジトリの Issue 機能を無効化 するが、この場合はすべての Issue が 404 で消え、PR は無効化できない
      • 例として libvirt/libvirt リポジトリは、すべての PR を自動で閉じる GitHub Action を使っている
    • このようなアプローチは セルフホスティングやオープンソースエコシステム全体に悪影響 を与える可能性がある
      • ユーザーがビルド最適化やリリースファイルのダウンロード頻度改善に取り組む動機を失う可能性がある
      • 移行期間中は 読み取り専用ミラーの維持GitHub Pages・Actions の併用 も検討できる

1件のコメント

 
GN⁺ 2026-03-27
Hacker Newsのコメント
  • Codeberg自体は嫌いではないが、GitHubの完全な代替ではない
    個人用コードリポジトリや実験用スクリプトを置くには制約が多く、プライベートリポジトリは100MBに制限されている
    GitHub Pagesのようにホームページをホスティングすることもできない。こうした用途なら自分で Forgejo をセルフホスティングするほうが現実的な代替になる
    関連内容は Codeberg FAQ によく整理されている

    • Codebergでも Codeberg Pages 機能でホームページをホスティングできる
    • 私も自分のウェブサイトをCodeberg Pagesに載せて運用している。上の情報は誤り → Codeberg Pagesドキュメント
    • 「自分でgitサーバーを動かすのは負担が大きい」という意見には同意しにくい。単に コードをpushする場所 だけが欲しいなら、SSHサーバー1台で十分だ
    • Pierreが作った Code Storage プロジェクトは、こうした 運用負担を減らすAPI型gitサーバー として興味深い
    • (宣伝も兼ねて)私は Monohub というGitHub代替を開発中だ。プライベートリポジトリを標準提供し、PRにも対応している。公開リポジトリの例
  • 私がOSSプロジェクトをGitHubに置く理由は単純で、コミュニティがそこにいるから
    コードだけ置ければいいなら、SSHやSFTPで直接ホスティングする

    • コミュニティがGitHubにだけ留まっているのは 鶏が先か卵が先か の問題だ。結局、誰かが先に別のプラットフォームへ移らなければエコシステムも動かない
      私は自分の 個人Giteaインスタンス にしか置かず、スターや宣伝は気にしていない
    • GitHubに残っているのは クローズドな依存関係を受け入れているFOSSコミュニティ にすぎない。むしろGitHubの方針が人々を離れさせている
    • 一部のプロジェクトはGitHubアカウントがないと参加すらできない。たとえば crates.io issue は10年間未解決のままで、LeanのReservoir はGitHubスター2個以上を要求する。Microsoft依存の強化 に見える
    • GitHubは無料で CIリソース を多く提供してくれる。特にmacOSランナーは代替がほとんどない。そのおかげで多様な環境でテストできる
    • 私もGitHubから離れようと ホームサーバーでGitホスティング を始めたが、以前のようなコミットをpushするときの ドーパミン はなくなった。オープンソースが商業化されて魅力が薄れた感じがする
  • 私は Forgejoのセルフホスティング で個人プロジェクトをすべて管理している。GitHubが恋しくなることはまったくない
    Tailscaleでアクセスを制限して AIクローラーの遮断 もできる

    • 私も数年前からForgejoを自前で運用している。インストールチュートリアル も書いたし、最近はHetznerで Raspberry Piを2台 に移行した。GitHubより速くて安定している
    • 以前はGitLabを使っていたが、Forgejoははるかに 軽量なGo単一バイナリ なのでリソース消費が少ない。Dockerで簡単に動かせるし、機能を自分でハックする楽しさも大きい
    • GitHubで エージェントアカウントの作成をブロックされたとき にForgejoを入れたが、15分でPRレビューに「Viewedファイルを隠す」機能を自分で追加できた
    • 最近大規模なOSSプロジェクトがForgejoへ移行していて、私もそれに続いたが、今のところ とても満足している
    • 私もDockerでForgejoランナーを入れてCIを回している。独自の レジストリ があるので、アプリをDockerイメージとして配布している
  • 今後はGitHub代替を評価することがますます重要になりそうだ
    ただ、GitHubが CIとマルチアーキテクチャビルドの標準 を作ってしまったので、コミュニティ主導の代替が競争しにくい

    • CIが必ずしもGitHubに依存する必要はない。実際、多くのCIは 単なるコマンド実行機 にすぎない。小さなチームならCIなしでも十分運用できる
    • CIを自前運用するのがなぜ不合理なのかわからない。リポジトリとCIを分離 しても問題ない
    • 私にとって重要なのはCIより PRとコードレビューの体験 だ。GitHubにはまだ使いづらい点が多く、Issueシステムも20年前の水準だ
    • こうした中央集権的なレイヤーは結局 統制したい欲求 によるものだ。ローカル中心の分散ワークフローでも十分楽しく開発できる
  • GitHubは多くを「無料」で提供しているが、その代償として データ収集や学習 に利用される可能性が高い
    Codebergはプライベートリポジトリをサポートしていないので、Copilotが公開リポジトリをかき集めるのを防ぐこともできない
    Codeberg FAQ によれば、プライベートプロジェクトが必要なら Forgejoのセルフホスティング を推奨している

    • でも私のCodebergリポジトリはプライベート設定になっている。完全に不可能というわけではなさそうだ
  • 私たちの会社はGitHubから GitLabのセルフホスティング に完全移行した
    Tailscaleの背後に置いているのでSSOの負担がなく、CIランナーはEKSとGPUクラスターで動かしている。同じような移行を考えている人の助けになれると思う

    • Forgejoも検討したのか気になる。GitLabは エンタープライズ級のCI/CD に強いが、小規模プロジェクトならForgejoのほうが軽い選択肢かもしれない
    • セルフホスティングのGitLabで 自動ユーザープロビジョニング(SCIM) のような機能に対応しているのかも気になる
  • 単に「GitHubを置き換えよう」と言うだけでは意味がない。新しい習慣と価値提案 が必要だ
    GitHubがSourceForgeを置き換えたように、次世代のプラットフォームは コード作成とコラボレーションをリアルタイムで結びつける 必要がある
    たとえばGoogle Docsのように プロンプトごとにコミットが生成される構造 になるかもしれない

    • ただし 地政学的な理由 も大きい。米国技術への依存を避けようとする動きが欧州などで活発だ
    • 最近の Copilot論争 で信頼が揺らぎ、GitHubを離れようとする流れが生まれている
    • 私にとって重要なのは単なる機能ではなく 可用性(uptime) だ。最近のGitHubは99%にも満たない水準だ
  • Codebergは理想的だが、現実には 安定性の問題 が大きい
    Cloudflareなしで運営しているため DDoS攻撃 に弱く、ダウンタイムも多い。開発中にリモートリポジトリへアクセスできないと本当につらい

    • 私はGitHubもCodebergも単なる 非同期のコード共有用 としてしか使っていない。リモートが落ちていてもローカルで作業できるべきだ
    • Cloudflareは好きではないが、現実には ボットトラフィックや攻撃への防御 のために必須だ。代替サービスはむしろもっと頻繁にブロックされたり不安定だったりした。原則と現実のギャップを痛感する
    • GitHubの 稼働率モニタリング を見ると、直近90日間で90%水準だ。むしろCodebergのほうが安定している
    • 私の個人gitサーバーも AIクローラーによる無差別スクレイピング で性能が落ちた。結局、主要企業のIPをすべてブロックした
    • gitの核心は 分散性 だ。リモートが落ちてもローカルに最新バージョンがあるべきだ
  • Microsoftによる買収以降、GitHubはほとんど使っていない。Sourcehut のシンプルなメールベースのワークフローのほうがむしろ気に入っている
    CIも単に ローカルで実行可能なコマンドベース で十分だと思う

  • コードリポジトリは本質的に 分散・連合型の構造 であるべきだ
    gitの 暗号学的署名体系(GPG/SSH) によって、リポジトリの信頼とコミットの信頼を分離できる
    中央にはキーレジストリとネームスペース管理だけを置き、残りは分散させればいい

    • Radicle はまさにこうした 分散型gitホスティング を目指すプロジェクトだ
    • だが大半の開発者は 署名鍵の管理 をきちんとできない
    • こうした理由から TangledForgeFed のような連合プロトコルがForgejoに統合されつつある
    • git-bug も興味深いアプローチだ。まだ使ったことはないが、可能性はありそうだ