GitHub Pages
Page content
GitHub Pages は、GitHub が提供するサービスで、GitHub リポジトリにホストされているコードから静的なウェブサイトを公開できます。完全に無料で利用でき、ブログ、プロジェクトのドキュメント、個人サイトなどに広く使われています。
ここでは、GitHub Pages の基本的な使い方を、最も一般的な方法である「ユーザー/組織サイト」と「プロジェクトサイト」に分けて説明します。
1. 準備:GitHub アカウントとリポジトリ
GitHub Pages を利用するには、まず GitHub アカウントが必要です。そして、ウェブサイトのコードを保存するリポジトリを作成します。
2. GitHub Pages の2つの主要なタイプ
GitHub Pages には主に2つのタイプがあります。
A. ユーザーサイト / 組織サイト (User/Organization Site)
- 特徴: あなたの GitHub ユーザー名(または組織名)に紐づくサイトで、
https://<ユーザー名>.github.ioの形式のURLになります。 - リポジトリ名: 特定のリポジトリ名 (
<ユーザー名>.github.ioまたは<組織名>.github.io) にする必要があります。 - 内容: このリポジトリの
mainブランチのコンテンツがサイトとして公開されます。
B. プロジェクトサイト (Project Site)
- 特徴: 既存のプロジェクトリポジトリのサブディレクトリまたは別のブランチから公開するサイトです。URL は
https://<ユーザー名>.github.io/<リポジトリ名>の形式になります。 - リポジトリ名: 任意のリポジトリ名で構いません。
- 内容: 設定により、
mainブランチの/docsフォルダー、またはgh-pagesブランチのコンテンツがサイトとして公開されます。
3. 各タイプの具体的な設定方法
A. ユーザーサイト / 組織サイトの作成方法
-
リポジトリの作成:
- GitHub にログインし、新しいリポジトリを作成します。
- リポジトリ名を
あなたのユーザー名.github.ioに設定します。(例:your-username.github.io) - 「Public」を選択し、必要であれば README を追加します。
- 「Create repository」をクリックします。
-
ファイルの追加:
- 作成したリポジトリに
index.htmlファイルをアップロードまたは作成します。 - 簡単な内容で構いません。
<!DOCTYPE html> <html> <head> <title>My User Page</title> </head> <body> <h1>Hello from my User Page!</h1> <p>This is my personal website hosted on GitHub Pages.</p> </body> </html>
- 作成したリポジトリに
-
デプロイ (自動):
- このタイプのリポジトリは、
mainブランチにプッシュするだけで自動的に GitHub Pages が有効になります。 - 数分待ってから、
https://あなたのユーザー名.github.ioにアクセスしてみてください。
- このタイプのリポジトリは、
B. プロジェクトサイトの作成方法
プロジェクトサイトには、主に2つのデプロイ元があります。
方法1: main ブランチの /docs フォルダーを使用する
-
リポジトリの作成:
- プロジェクトの既存のリポジトリ、または新しく任意の名前でリポジトリを作成します。(例:
my-project)
- プロジェクトの既存のリポジトリ、または新しく任意の名前でリポジトリを作成します。(例:
-
docsフォルダーの作成とファイルの追加:- リポジトリのルートに
docsという名前のフォルダーを作成します。 - その
docsフォルダーの中にindex.htmlファイルを作成します。<!DOCTYPE html> <html> <head> <title>My Project Page</title> </head> <body> <h1>Hello from my Project Page!</h1> <p>This is the documentation for my project.</p> </body> </html>
- リポジトリのルートに
-
GitHub Pages の設定:
- リポジトリのページに移動し、「Settings」タブをクリックします。
- 左側のサイドバーで「Pages」をクリックします。
- 「Source」セクションで、
mainブランチを選択し、その横のドロップダウンで/docsフォルダーを選択します。 - 「Save」をクリックします。
-
デプロイ:
- 設定を保存後、数分待ってから、「Pages」ページの上部に表示されるURL(例:
https://あなたのユーザー名.github.io/my-project)にアクセスしてみてください。
- 設定を保存後、数分待ってから、「Pages」ページの上部に表示されるURL(例:
方法2: gh-pages ブランチを使用する
この方法は、静的サイトジェネレーター(Vite, React, Vue CLIなど)で生成されたビルド済みのファイルをホストするのに特に適しています。
-
リポジトリの作成:
- プロジェクトの既存のリポジトリ、または新しく任意の名前でリポジトリを作成します。(例:
my-vite-app)
- プロジェクトの既存のリポジトリ、または新しく任意の名前でリポジトリを作成します。(例:
-
gh-pagesブランチの作成とファイルの配置:- ローカル環境でプロジェクトをセットアップし、ビルドします。(例: Vite プロジェクトなら
npm run buildでdistフォルダーが生成されます) - 重要: ビルドされたコンテンツ(通常は
distフォルダーの中身)をgh-pagesという名前の新しいブランチにプッシュします。このブランチには、ビルド後のファイルのみをコミットするのが一般的です。または手動で:# 例: Viteプロジェクトの場合 # ビルド npm run build # gh-pagesブランチにデプロイするためのツールを使うと便利 (例: gh-pages npmパッケージ) npm install gh-pages --save-dev # package.json にスクリプトを追加 # "deploy": "gh-pages -d dist" # デプロイ実行 npm run deploy# gh-pages ブランチを新しく作成し、コミット履歴を共有しない git checkout --orphan gh-pages # .gitignore を無視して全てのファイルをステージング git add -f dist git commit -m "Initial gh-pages commit" # dist ディレクトリ以外を削除 git rm -rf . # dist ディレクトリの中身をルートに移動 mv dist/* . rm -rf dist # 再度コミット git add . git commit -m "Move built files to root" # gh-pages ブランチをプッシュ git push origin gh-pages
- ローカル環境でプロジェクトをセットアップし、ビルドします。(例: Vite プロジェクトなら
-
GitHub Pages の設定:
- リポジトリのページに移動し、「Settings」タブをクリックします。
- 左側のサイドバーで「Pages」をクリックします。
- 「Source」セクションで、
gh-pagesブランチを選択し、その横のドロップダウンで/ (root)を選択します。 - 「Save」をクリックします。
-
デプロイ:
- 設定を保存後、数分待ってから、「Pages」ページの上部に表示されるURL(例:
https://あなたのユーザー名.github.io/my-vite-app)にアクセスしてみてください。
- 設定を保存後、数分待ってから、「Pages」ページの上部に表示されるURL(例:
4. カスタムドメインの設定
GitHub Pages はカスタムドメイン(例: www.example.com)にも対応しています。
- ドメインの取得: ドメインレジストラ(お名前.com, GoDaddyなど)でドメインを取得します。
- DNS 設定:
- ドメインの DNS 設定で、
Aレコードを GitHub Pages のIPアドレス (185.199.108.153,185.199.109.153,185.199.110.153,185.199.111.153) に設定します。 CNAMEレコードをあなたのユーザー名.github.ioに設定します(wwwサブドメインを使用する場合など)。
- ドメインの DNS 設定で、
- GitHub Pages の設定:
- GitHub リポジトリの「Settings」→「Pages」に移動します。
- 「Custom domain」セクションに取得したドメイン名を入力し、「Save」をクリックします。
- リポジトリのルートに
CNAMEという名前のファイルが自動的に作成され、そこにドメイン名が記述されます。
注意点
- 静的サイトのみ: GitHub Pages は静的コンテンツ(HTML, CSS, JavaScript, 画像など)のみをホストできます。サーバーサイドの処理(PHP, Ruby, Node.jsの実行など)はできません。
- SSL (HTTPS) の自動適用: GitHub Pages は自動的に HTTPS を適用してくれます。
- ビルド時間: リポジトリへのプッシュからサイトが更新されるまで、数分かかる場合があります。
- プロジェクトのルートパス: プロジェクトサイト (
https://<ユーザー名>.github.io/<リポジトリ名>) の場合、サイトのルートパスが/ではなく/<リポジトリ名>/になるため、JavaScript フレームワークなどでパスを解決する際にbaseオプションなどの設定が必要になることがあります。(例: Vite のbase: '/<リポジトリ名>/')
GitHub Pages は非常に手軽で強力な静的サイトホスティングサービスです。ぜひ活用してみてください。