7つの最高の自己ホスト型Github代替案

Gitコミット履歴を表示するモニタ画面の写真です。

マイクロソフトがGithubを買収した後、多くの開発者がコードをホストするための代替案を模索しています。マイクロソフト(および他の多くの大企業)は、確立された技術、ウェブサイト、製品を購入してその影響力を拡大する習慣があります。Skypeがその一例であり、今ではGithubも同様です。

幸いなことに、選択肢がたくさん存在する他のバージョン管理システムがあります。すべてがGithubの機能を持っているわけではありませんが、必要に応じて選択肢はかなり良いです。この記事では、今日自分のマシンにインストールできるGithubの最高の自己ホスト型代替案について紹介します。

目次

    1. GitLab
    1. Gogs
    1. Trac
    1. GitBucket
    1. Gitea
    1. Mercurial
    1. Fossil

1. GitLab

マイクロソフトがGithubを買収する前から、GitLabはすでに人気のあるコード管理プラットフォームでした。これは、計画、テスト、パッケージ、そのリリース機能を備えたオープンソースのDevOpsライフサイクルツールです。また、ウィキや問題追跡機能も備えており、自己ホスト型の「Githubのような」体験をしたいユーザーにとって非常に魅力的です。

GitLabのランディングページのスクリーンショット。

GitLabは自己ホスト型のコード管理プラットフォームとして使用できますが、開発者は有料のプレミアムSaaSバージョンも提供しています。これは、LDAPサーバーへの同期機能や高度なCI/CDパイプラインなどの追加機能が含まれています。

とはいえ、自分のマシンや彼らのホスティングプラットフォームにGitLabを無料でデプロイすることができます。一方、プレミアムエディションは現在、ユーザー1人あたり月29ドルから始まります。

ヒント: GitLabがGithubと何が違うのかを学び、自分に最適なものを決定しましょう。

2. Gogs

Gogsは、ほぼすべてのハードウェアにデプロイできる軽量のGitホスティングプラットフォームです。Goで書かれており、開発者は外部依存関係をほとんど使わずにできるだけ迅速にプログラムを設計しました。たとえば、512 MBのRAMのみのシステムでGogsを実行することが可能です。

Gogsのデフォルトウェブページのスクリーンショット。

Gogsの最大のセールスポイントの1つは、仮想サーバー上でも非常に簡単に実行できることです。デフォルトで、Gogsはコードを管理し、問題を追跡し、変更を文書化するために必要なすべてのツールを提供します。このため、Gogsは「手間なし」のGithub代替を求めている場合に最適な選択肢です。

知っておくと良いこと: Gitリポジトリの管理の基礎を学びましょう。

3. Trac

Tracは、Linux用のシンプルで非常に柔軟なコード管理プラットフォームです。GitLabやGogsとは異なり、Tracはバックエンドのバージョン管理システムとして両方のSubversionとGitを使用できます。これにより、すでにそれらのシステムで作業しているプロジェクトがある場合に役立ちます。

Tracプロジェクトのランディングページのスクリーンショット。

柔軟なツールであるだけでなく、Tracはプロジェクト用の高度なウィキと問題追跡システムでもあります。さまざまなチケットを管理し、異なる役割を割り当て、リポジトリ内のすべての問題に優先度レベルを作成できます。

さらに、Tracは、インスタンスの動作をデフォルトで変更できる多くのプラグインも提供しています。たとえば、既存のGithubプロジェクトにTracを統合するプラグインがあります。その結果、Tracはプロジェクトの進捗を定期的かつ密接に監視する必要がある場合に良い選択肢です。

ヒント: Gitを使用したシンプルなペーストビンソリューションが必要な場合は、Opengistをチェックしてください。

4. GitBucket

GitBucketは、Scalaで書かれたJVMベースのGitHubクローンです。他のアプリのように多くの機能はありません。実際、その主な利点はGitHubに似ていることです。言い換えれば、GitHubが恋しい場合は、GitBucketを利用することができます。

GitBucketのランディングウェブページのスクリーンショット。

とはいえ、GitBucketには decentなリポジトリビューワ、問題トラッカー、プルリクエストをレビューして承認する機能、およびシンプルなウィキが含まれています。それに加えて、プラグインを使用してGitBucketの機能を拡張することもできます。これらは、新機能を追加したり、リポジトリの既存の機能を変更する小さなコードの部分です。たとえば、GitHub GistプラグインをGitBucketにインストールしたり、GitHub Pagesと似たカスタムウェブサイトを作成したりできます。

ヒント: リポジトリを最適化するために使用される最高のGitフックをいくつかチェックしてください。

5. Gitea

Giteaは、Linux向けの軽量でセキュリティに焦点を当てたコード管理プラットフォームです。Gogsを基にしており、システムリソースをほとんど消費せずに包括的なプラグアンドプレイのGithub代替を提供することを目指しています。

Giteaのランディングウェブページのスクリーンショット。

Giteaの特徴は、Gogsと比べて、内蔵のRSSフィード、CI/CDワークフローのサポート、およびリポジトリに対する複数のユーザーロールです。また、独自の拡張フレームワークも備えており、GitHubページに似たカスタムウェブサイトなどの機能を追加できます。Giteaは、軽量で自己ホスト型の高い拡張性を持つGithubの代替を探している場合に最適です。

FYI: Emacsユーザーですか? Magitを使用してEmacsにGitを統合する方法を学んでください。

6. Mercurial

このリストの以前のエントリーとは異なり、MercurialはGithubとはまったく異なるコード管理プラットフォームです。これは、コードを管理するためのクリーンで具体的な方法を提供し、新しいソフトウェア開発者にとって学びやすいです。Subversionと同様に、MercurialはLinuxシステムに似たコマンドを提供することで余分なものをカットしようとしています。

Mercurialのランディングウェブページのスクリーンショット。

Mercurialのセールスポイントの1つは、クロスプラットフォームで非常にモジュール式であることです。その結果、プラットフォームには多くの拡張機能が含まれており、Mercurialワークフローをカスタマイズするために使用できます。たとえば、hgnested拡張機能を使用すると、メインリポジトリ内に小さなサブリポジトリを作成できます。

7. Fossil

Fossilは、シンプルさと信頼性に焦点を当てたLinux用の非Gitのソースコード管理システムです。GitやMercurialとは異なり、Fossilはコードを他の人と開発し、共有するための完全なオールインワンプラットフォームを提供します。Fossilのインストールには、フォーラム、問題追跡システム、およびシンプルなIRCチャットが付属しています。

最高のGithub代替案 - Fossilのランディングウェブページ

Fossilのユニークなセールスポイントの1つは、デプロイが簡単で、マシンの要求に柔軟に対応できることです。sudo権限なしで単一のバイナリからFossilリポジトリを作成したり、DockerおよびDocker Composeを使用してコンテナとして実行したりできます。これにより、すでにサーバーを持っているユーザーにとって、ほぼどんな環境にでも簡単にデプロイできる適応可能なコード管理プラットフォームとして魅力的です。

自分のマシンにインストールできる最高のGithubの代替案を学ぶことは、オンラインでのデジタルプライバシーを取り戻す第一歩です。Shlinkを使用して独自のbit.ly代替を作成することで、この素晴らしい自己ホスティングの世界を探索してください。

画像クレジット: Yancy Min via Unsplash。すべての変更とスクリーンショットはRamces Redによるものです。