GitHub Pages について
GitHub Pages は、GitHub Enterprise Server のリポジトリから HTML、CSS、および JavaScript ファイル を直接取得し、任意でビルドプロセスを通じてファイルを実行し、ウェブサイトを公開できる静的なサイトホスティングサービスです。 GitHub Pages サイトの例は、GitHub Pages サンプル コレクションで確認できます。
始めるには、「GitHub Pages サイトを作成する」をご覧ください。
組織のリポジトリからの GitHub Pages サイトの公開を、組織所有者は無効にできるようになりました。 詳しくは、「組織の GitHub Pages サイトの公開を管理する」を参照してください。
GitHub Pages サイトの種類
GitHub Pages サイトには、3 つの種類があります。プロジェクト、ユーザ、そして Organization です。 プロジェクトサイトは、JavaScript ライブラリやレシピ集など、GitHub Enterprise Server の特定のプロジェクトに関するものです。 ユーザー サイトと organization サイトは、お使いの GitHub Enterprise Server インスタンス 上の特定のアカウントに接続されています。
ユーザー サイトを公開するには、自分の個人アカウントが所有する <username>.<hostname>
という名前のリポジトリを作成する必要があります。 組織サイトを公開するには、<organization>.<hostname>
という名前の組織が所有するリポジトリを作成する必要があります。
プロジェクトサイトのソースファイルは、プロジェクトと同じリポジトリに保存されます。
GitHub Enterprise Server のアカウントごとに作成できるユーザまたは Organization サイトは 1 つだけです。 Organization または個人アカウントで所有するプロジェクト サイトの数には、制限がありません。
サイトを利用できる URL は、お使いの GitHub Enterprise Server インスタンス でサブドメインの分離が有効になっているかどうかで異なります。
サイトの種類 | Subdomain Isolation が有効 | Subdomain isolation が無効 |
---|---|---|
User | http(s)://pages.<hostname>/<username> | http(s)://<hostname>/pages/<username> |
Organization | http(s)://pages.<hostname>/<organization> | http(s)://<hostname>/pages/<organization> |
個人アカウントが所有するプロジェクト サイト | http(s)://pages.<hostname>/<username>/<repository>/ | http(s)://<hostname>/pages/<username>/<repository>/ |
組織アカウントが所有するプロジェクト サイト | http(s)://pages.<hostname>/<orgname>/<repository>/ | http(s)://<hostname>/pages/<orgname>/<repository>/ |
詳しくは、「Subdomain Isolationの有効化」をご覧いただくか、サイト管理者にお問い合わせください。
GitHub Pages サイトの公開元
Warning
サイト管理者が Public Pages を有効にしている場合、サイトのリポジトリがプライベートまたは内部であっても、GitHub Pages のサイトはインターネット上で一般公開されます。 サイトのリポジトリにセンシティブなデータがあるなら、公開前にそのデータを取り除くのが良いでしょう。 詳細については、「Enterprise 向けの GitHub Pages を設定する」および「リポジトリについて」を参照してください。
変更が特定のブランチにプッシュされたときにサイトを公開できます。または、GitHub Actions ワークフローを記述してサイトを公開することもできます。 GitHub Actions を GitHub Pages の発行元として使用するには、サイト管理者が GitHub Actions を GitHub Enterprise Server に対して有効にする必要があります。 詳しくは、「GitHub Enterprise Server の GitHub Actions を有効化する」をご覧ください。
サイトのビルド プロセスを制御する必要がない場合は、変更が特定のブランチにプッシュされたときにサイトを公開することをお勧めします。 公開ソースとして使用するブランチとフォルダーを指定できます。 ソース ブランチにはリポジトリ内の任意のブランチを指定でき、ソース フォルダーにはソース ブランチのリポジトリ (/
) のルートまたはソース ブランチの /docs
フォルダーのいずれかを指定できます。 変更がソース ブランチにプッシュされるたびに、ソース フォルダー内の変更が GitHub Pages サイトに公開されます。
Jekyll 以外のビルド プロセスを使用する場合、または専用ブランチでコンパイル済みの静的ファイルを保持したくない場合は、GitHub Actions ワークフローを記述してサイトを公開することをお勧めします。 GitHub Enterprise Server には、ワークフローの記述に役立つ一般的な公開シナリオ用のワークフロー テンプレートが用意されています。
詳しくは、「GitHub Pages サイトの公開元を設定する」を参照してください。
静的サイト ジェネレーター
GitHub Pages は、リポジトリにプッシュされたあらゆる静的ファイルを公開します。 静的ファイルを自分で作成することも、静的サイトジェネレータでサイトをビルドすることも可能です。 ローカルまたは別のサーバー上で独自のビルドプロセスをカスタマイズすることもできます。
カスタム ビルド プロセスまたは Jekyll 以外の静的サイト ジェネレーターを使用する場合は、GitHub Actions を作成して、サイトをビルドして公開することができます。 GitHub Enterprise Server では、いくつかの静的サイト ジェネレーターのワークフロー テンプレートが提供されます。 詳しくは、「GitHub Pages サイトの公開元を設定する」を参照してください。
ソース ブランチからサイトを公開する場合、GitHub Pages では、既定で Jekyll を使用してサイトをビルドします。 Jekyll 以外の静的サイト ジェネレーターを使用する場合は、代わりに GitHub Actions を作成してサイトをビルドして公開することをお勧めします。 それ以外の場合は、公開元のルートに .nojekyll
という名前の空のファイルを作成して Jekyll ビルド プロセスを無効にし、静的サイト ジェネレーターの指示に従ってローカルでサイトをビルドします。
GitHub Pages は、PHP、Ruby、Python などのサーバーサイド言語はサポートしていません。
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 Pagesのサイトは1GB以上であってはなりません。
- GitHub Pages のデプロイは、10 分を超えるとタイムアウトになります。
GitHub Pages での MIME タイプ
MIME タイプとは、ブラウザがリクエストするファイルの性質やフォーマットに関する情報を提供するため、サーバーがブラウザに送信するヘッダのことです。 GitHub Pages は、数千のファイル拡張子にわたり、750 を超える MIME タイプをサポートしています。 サポートされている MIME の種類の一覧は、mime-db プロジェクトから生成されます。
ファイルごと、リポジトリごとにカスタム MIME タイプを指定することはできませんが、GitHub Pages で使う MIME タイプを追加や変更することは可能です。 詳細については、mime-db のコントリビューション ガイドラインを参照してください。
参考資料
- GitHub Skills の GitHub Pages
- リポジトリの REST API エンドポイント