GitHub Pages について
GitHub Pages は、GitHub のリポジトリから HTML、CSS、および JavaScript ファイル を直接取得し、任意でビルドプロセスを通じてファイルを実行し、ウェブサイトを公開できる静的なサイトホスティングサービスです。 GitHub Pages サイトの例は、GitHub Pages サンプル コレクションで確認できます。
GitHub の github.io
ドメインまたは独自のカスタム ドメインでサイトをホストできます。 詳しくは、「GitHub Pages サイトのカスタムドメインを設定する」をご覧ください。
インターネット上で一般公開されている GitHub Pages サイトを作成できます。 GitHub Enterprise Cloud を使用する組織は、サイトのアクセス制御を管理することで、サイトを非公開で発行することもできます。 詳しい情報については、GitHub Enterprise Cloud の「GitHub Pages サイトの可視性を変更する」のドキュメントを参照してください
まず、「GitHub Pages サイトを作成する」を参照してください。
組織のリポジトリからの GitHub Pages サイトの公開を、組織所有者は無効にできるようになりました。 詳しくは、「組織の GitHub Pages サイトの公開を管理する」をご覧ください。
GitHub Pages サイトの種類
GitHub Pages サイトには、3 つの種類があります。プロジェクト、ユーザ、そして Organization です。 プロジェクトサイトは、JavaScript ライブラリやレシピ集など、GitHub の特定のプロジェクトに関するものです。 ユーザー サイトと organization サイトは、GitHub.com 上の特定のアカウントに接続されています。
ユーザー サイトを公開するには、自分の個人アカウントが所有する <username>.github.io
という名前のリポジトリを作成する必要があります。 組織サイトを公開するには、<organization>.github.io
という名前の組織が所有するリポジトリを作成する必要があります。 カスタム ドメインを使用している場合を除き、ユーザー サイトおよび organization サイトは http(s)://<username>.github.io
または http(s)://<organization>.github.io
で利用できます。
プロジェクトサイトのソースファイルは、プロジェクトと同じリポジトリに保存されます。 カスタム ドメインを使用している場合を除き、プロジェクト サイトは http(s)://<username>.github.io/<repository>
または http(s)://<organization>.github.io/<repository>
で利用できます。
カスタム ドメインがサイトの URL に与える影響の詳細については、「カスタムドメインとGitHub Pagesについて」を参照してください。
GitHub のアカウントごとに作成できるユーザまたは Organization サイトは 1 つだけです。 Organization または個人アカウントで所有するプロジェクト サイトの数には、制限がありません。
GitHub Pages サイトの公開元
Warning
GitHub Pages サイトは、そのサイトのリポジトリがプライベートであっても、インターネット上で一般に利用できます (プランまたは organization で許可されている場合)。 サイトのリポジトリにセンシティブなデータがあるなら、公開前にそのデータを取り除くのが良いでしょう。 詳しくは、「リポジトリについて」を参照してください。
変更が特定のブランチにプッシュされたときにサイトを公開できます。または、GitHub Actions ワークフローを記述してサイトを公開することもできます。
サイトのビルド プロセスを制御する必要がない場合は、変更が特定のブランチにプッシュされたときにサイトを公開することをお勧めします。 公開ソースとして使用するブランチとフォルダーを指定できます。 ソース ブランチにはリポジトリ内の任意のブランチを指定でき、ソース フォルダーにはソース ブランチのリポジトリ (/
) のルートまたはソース ブランチの /docs
フォルダーのいずれかを指定できます。 変更がソース ブランチにプッシュされるたびに、ソース フォルダー内の変更が GitHub Pages サイトに公開されます。
Jekyll 以外のビルド プロセスを使用する場合、または専用ブランチでコンパイル済みの静的ファイルを保持したくない場合は、GitHub Actions ワークフローを記述してサイトを公開することをお勧めします。 GitHub には、ワークフローの記述に役立つ一般的な公開シナリオ用のワークフロー テンプレートが用意されています。
詳しくは、「GitHub Pages サイトの公開元を設定する」をご覧ください。
静的サイト ジェネレーター
GitHub Pages は、リポジトリにプッシュされたあらゆる静的ファイルを公開します。 静的ファイルを自分で作成することも、静的サイトジェネレータでサイトをビルドすることも可能です。 ローカルまたは別のサーバー上で独自のビルドプロセスをカスタマイズすることもできます。
カスタム ビルド プロセスまたは Jekyll 以外の静的サイト ジェネレーターを使用する場合は、GitHub Actions を作成して、サイトをビルドして公開することができます。 GitHub では、いくつかの静的サイト ジェネレーターのワークフロー テンプレートが提供されます。 詳しくは、「GitHub Pages サイトの公開元を設定する」をご覧ください。
ソース ブランチからサイトを公開する場合、GitHub Pages では、既定で Jekyll を使用してサイトをビルドします。 Jekyll 以外の静的サイト ジェネレーターを使用する場合は、代わりに GitHub Actions を作成してサイトをビルドして公開することをお勧めします。 それ以外の場合は、公開元のルートに .nojekyll
という名前の空のファイルを作成して Jekyll ビルド プロセスを無効にし、静的サイト ジェネレーターの指示に従ってローカルでサイトをビルドします。
GitHub Pages は、PHP、Ruby、Python などのサーバーサイド言語はサポートしていません。
GitHub Pagesの利用上の制限
2016 年 6 月 15 日以降に作成され、github.io
ドメインを使用する GitHub Pages サイトは、HTTPS 経由で提供されます。 2016 年 6 月 15 日までにサイトを作成した場合は、サイトへのトラフィックに対して、HTTPS サポートを有効にすることができます。 詳しくは、「HTTPS で GitHub Pages サイトを保護する」をご覧ください。
禁止される用途
GitHub Pages は、オンライン ビジネス、eコマース サイト、主に商取引の円滑化またはサービスとしての商用ソフトウェア (SaaS) の提供のどちらかを目的とする、その他の Web サイトを運営するための無料の Web ホスティング サービスとしての使用を意図したものではなく、またそのような使用を許可するものでもありません。 GitHub Pages サイトは、パスワードやクレジットカード番号といった機密情報のやりとりに使うべきではありません。
さらに、GitHub Pages の使用には、一獲千金を狙った計画、わいせつなコンテンツ、暴力的あるいは脅迫的なコンテンツや活動に関する制限など、GitHub 利用規約が適用されます。
教育演習
学習演習として GitHub Pages を使用して既存の Web サイトのコピーを作成することは禁止されていません。 ただし、GitHub サービス使用条件の遵守に加えて、自分でコードを記述し、サイトでユーザー データを収集しないようにする必要があります。また、プロジェクトが元のプロジェクトに関連付けられていないことと、教育目的でのみ作成されたものであることを示す免責事項を目立つようにサイトに掲載する必要があります。
Usage limits (使用状況の制限)
GitHub Pages サイトには、次の使用制限があります:
-
GitHub Pages ソース リポジトリには、1 GB の上限をお勧めします。詳細については、「GitHub での大きいファイルについて」を参照してください
-
公開されたGitHub Pagesのサイトは1GB以上であってはなりません。
-
GitHub Pages のデプロイは、10 分を超えるとタイムアウトになります。
-
GitHub Pages サイトには、月当たり 100 GB の ソフトな 帯域幅制限があります。
-
GitHub Pages サイトには、時間当たり 10 ビルドの ソフトな 制限があります。 カスタム GitHub Actions ワークフローを使用してサイトをビルドして発行する場合、この制限は適用されません。
-
すべての GitHub Pages サイトに一貫したサービス品質を提供するために、レート制限が適用される場合があります。 これらのレート制限は、GitHub Pages の正当な使用を妨げるものではありません。 要求がレート制限をトリガーする場合は、説明を含む HTML 本文と共に、HTTP 状態コードを
429
伴う適切な応答を受け取ります。
あなたのサイトがこれらの使用割当量を超えている場合、あなたのサイトにサービスを提供できないか、GitHub Support から、あなたのサイトが当社のサーバーに与える影響を減らす方法を示唆するメールが届くことがあります。そうした方法の例としては、サードパーティのコンテンツ配信ネットワーク (CDN) をサイトの前に配置したり、リリースなどの他の GitHub 機能を利用したり、ニーズに合った別のホスティングサービスに移行したりすることなどが挙げられます。
GitHub Pages での MIME タイプ
MIME タイプとは、ブラウザがリクエストするファイルの性質やフォーマットに関する情報を提供するため、サーバーがブラウザに送信するヘッダのことです。 GitHub Pages は、数千のファイル拡張子にわたり、750 を超える MIME タイプをサポートしています。 サポートされている MIME の種類の一覧は、mime-db プロジェクトから生成されます。
ファイルごと、リポジトリごとにカスタム MIME タイプを指定することはできませんが、GitHub Pages で使う MIME タイプを追加や変更することは可能です。 詳細については、mime-db のコントリビューション ガイドラインを参照してください。
データ コレクション
GitHub Pagesサイトにアクセスされると、セキュリティを目的として、アクセス者がGitHubにサインインしているか否かに関わらず、アクセス者のIPアドレスは記録され、保存されます。 GitHub のセキュリティ プラクティスについて詳しくは、「GitHub のプライバシーについての声明」を参照してください。
参考資料
- GitHub Skills の GitHub Pages
- リポジトリの REST API エンドポイント