オープンソース

GitHubの代替オープンソースソフトウェア〜Forgejo〜

システムを開発する際に、javaやpythonといったプログラミング言語で書かれたソースコードの変更を追跡・管理することをソースコード管理といいます。開発環境でのコードベース共有による上書き問題などのトラブルを防いだり、過去のバージョンを復元できることや変更履歴が残ることで、エンジニアの業務効率化にも繋がります。チームでのソフトウェア開発環境において、ソースコード管理の導入はとても重要です。GitHubは世界中でさまざまなプロジェクトやプログラマーに使われている人気のバージョン管理システムで、クラウドサービスとして公開されています。ここでは、GitHubに代わるオープンソースソフトウェアのバージョン管理システムForgejoについて紹介します。

GitHubの利用状況

GitHubとは、世界中の人々がプログラムコードやデザインデータをWEB上で保存・公開できるバージョン管理システムです。GitHub社がプログラムのソースコードを管理するために開発されたGitを中核としてGitHubのサービスの提供を開始しました。GitHubは、WEB UI上でソースコードリポジトリの状態を確認できることや、ソースコード管理だけでなく、Wiki等のプロジェクト管理も行うことができます。Gitでコマンドラインでしか操作できなかった課題や複数人での開発する際の課題を解決し、WEB上で管理できる利便性から、今では、多くのソフトウェアの開発者がGitHubを利用しています。

GitHubの課題

すでに多くのユーザに利用されているGitHubですが、クラウドサービスであるということで、ビジネスにおいて機密情報にあたるファイルを扱えないといった機密性の部分での課題や、過去には無料プランではプライベートなリポジトリを作成できないというコスト面での課題がありました。また、リポジトリが十分に保護されていない場合には、ソースコードの改ざんや漏えい、消失等の懸念があることも大きなリスクとなります。そこで、代替となる製品やオープンソースのソフトウェアがいくつか開発されました。

代替となるソフトウェア

代替となるソフトウェアとしてその中でも有名なものでは、GitLabがあります。GitLabは、GitLab Inc.が提供するバージョン管理ツールです。Githubと仕様が似ているため、これまでGithubを使用したことのある方であれば、比較的スムーズに使うことができる、学習コストの低いツールです。GitLabは、更新のたびに多くの機能追加が行われていますが、機能が増えるにつれGitLabを構成するコンポーネントの数や要求スペックが増え、利用に多くのリソースが必要になっています。そのため、小規模な開発環境やファイルのバックアップ目的といった使い方にはあまり適していません。そこで、小規模向けでも利用でき、オープンソースソフトウェアであるため、比較的に価格を抑えて使用ができるForgejoを調査しました。

オープンソースソフトウェアのForgejoとは

Forgejoとは、オープンソースソフトウェアのソースコードのバージョン管理システムです。MIT Licenseで公開されており、Forgejoの前身は、個人開発のソフトウェアとして公開されたGogsというソフトウェアです。Gogsはその後、複数の運営を経て、コミュニティでの開発を重視している現在のForgejoというプロジェクトに繋がっています。 Forgejo単体で動作するわけではなく、内部では、Gitが使用されています。

Forgejo画面

Forgejoの特徴

Forgejoは、次のような特徴があります。

省リソースで導入ができる

Forgejoは、CPU2コア/メモリ512MBと小規模から利用を開始することができます。Forgejoの公式のサイトでは、最新のバイナリが公開されています。インストール方法も、利用するアーキテクチャに合わせて実行ファイルのダウンロードと配置を行い、起動する作業だけなので簡単です。省リソースで簡単に導入がおこなえるため、ソースコード管理システムの本導入の前の準備として、まずは試しに利用してみるという使い方にも適しています。実際のインストール方法はForgejo調査報告書に掲載しています。

シンプルかつ多機能

ForgejoのWebUIは、シンプルで使いやすいことが特徴です。また、GitLabに比べると機能に劣るところはありますが、利用する上で充分な機能が備わっています。バージョン管理で必要な基本的な機能はもちろん、課題管理やWikiなどの機能が追加されています。その他に、GitHubのようにリポジトリのフォークやプルリクエスト、マージなどの機能も備えています。Forgejoでソースコードの管理を網羅することが可能です。

日本語で利用が可能

Forgejoは多言語に対応しています。GitHubは英語表記ですが、Forgejoは、日本語表記でWEBインターフェースの利用が可能です。

Forgejoの基本的な機能

ここからは、Forgejoの機能を紹介します。Forgejoには、以下の機能が存在します。

WEB UIでのリポジトリ作成

リポジトリの作成では、名前や公開/非公開などの情報を登録することが可能です。ブランチの変更の反映や、履歴の確認、変更した差分の確認なども可能です。

ファイルの一覧

ファイルの一覧

履歴の参照

履歴の参照

バージョンの変更箇所

バージョンの変更箇所を表示

コラボレーション機能

コラボレーション機能を利用することで、他のユーザと共同編集をすることができます。Forgejoは、リポジトリ毎に編集可能なユーザを追加することが可能です。操作する人に合わせて、ファイルの読み込みのみを可能にすることや、読み書きどちらとも可能にするなど、権限を分けることができます。

共同編集者の追加

共同編集者の追加

リポジトリのフォーク・プルリクエスト・マージ

Forgejoは、Githubと同様に他のユーザが管理しているリポジトリを、自分のリポジトリとしてコピーするフォークという機能があります。フォークすると、そのユーザのリポジトリとして操作が可能です。フォークしたリポジトリは、フォークしたユーザが自由に編集することができます。その他に、フォークしたリポジトリの変更点を、オリジナルのリポジトリへ反映してほしい場合にリクエストを送信するプルリクエストという機能や、プルリクエストをオリジナルのリポジトリに反映するマージ機能もあります。

プルリクエスト

プルリクエスト

リリース管理

リリースとは、特定のバージョンをリリース版として登録する機能です。リリースされた情報を開示したり、特定バージョンのソフトウェアのダウンロードを行わせることができます。

リリース管理

リリース管理

パッケージ管理

Forgejoは、RPMやDPKGなど、様々なソフトウェア管理システムのパッケージを管理することができます。

パッケージ管理

パッケージ管理

課題管理

Githubのissueのような機能として、リポジトリの課題をリスト化したり、ユーザー同士で話し合うことができます。課題ひとつひとつにラベルを付与して分類を行うことや、新しいプロジェクトの進行のためのマイルストーンとして登録することも可能です。

課題管理

課題管理

Wiki

リポジトリの内容についてのWikiを作成することができます。WikiはWeb上の共同作業スペースです。知識や情報を共有するためにWikiへの投稿を行います。しかし、Forgejoのwiki機能は、非常に簡素になっており、目次やページの自動表示や、リンク機能はありません。より多機能なWikiが必要な場合は、Forgejoのリポジトリの設定で、外部のWikiにリダイレクトさせることができます。

Wiki

Wiki

ユーザ認証

Forgejoは、Forgejoのデータベースでユーザを管理する以外にもさまざまな認証バックエンドを利用することができます。Forgejoで対応している認証は以下になります。

  • LDAP
  • SMTP
  • OAuth2
  • SPNECGO with SSPI

ユーザ認証のすべてをWEBから設定をすることができ、現在利用している認証をそのまま利用することができます。

デージーネットの取り組み

デージーネットでは、Github代替としてこれまでGitLabを推奨してきました。今回Forgejoを調査検証し、スペックの高いマシンも不要で優れた点も多く、充分に利用できることがわかりました。デージーネットでは、お客様の利用用途に合わせ、GithubやForgejoを選択し、バージョン管理システムの導入および独自の保守サービスを行っています。さらにForgejoは、省リソースであるため、他のシステムとも連携し、よりシステムが使いやすくなる提案を行っていきます。Forgejoのインストール方法や基本の手順、ガイドなど詳しい情報は、Forgejo調査報告書に掲載しています。

「関連情報の一覧」

Forgejo調査報告書

無料資料ダウンロード

Forgejoとは、ソースコード管理システムGitのフロントエンドのソフトウェアです。単一バイナリで動作するGitHubの代替ソフトウェアとして利用が可能です。この記事では、オープンソースのForgejoについて調査した内容を説明しています。

GitLab〜Dockerのプロジェクト管理とレジストリ〜

WireGuard

GitLabは、ウェブ型のGitリポジトリマネージャーです。Dockerコンテナのプライベートレジストリとして使用できるコンテナレジストリ機能や、プロジェクト計画、ソースコード管理、CI/CD、監視、セキュリティ、ドキュメント管理等の機能が含まれています。

サーバ仮想化とは?仮想基盤で使えるソフトウェアまとめ

仮想化比較

仮想化環境を構築すると、物理リソースの削減による社内スペースの確保、リソースの効率的な管理、運用コストの削減などが実現できます。この記事では、仮想化に関連したソフトウェアを、4つのカテゴリでご紹介します。

デモのお申込み

もっと使い方が知りたい方へ
操作方法や操作性をデモにてご確認いただけます。使い方のイメージを把握したい、使えるか判断したい場合にご活用下さい。デモをご希望の方は、下記よりお申込みいただけます。

デモをご希望の方

デモの申し込みイメージ

GitHubの代替オープンソースソフトウェア〜Forgejo〜の先頭へ